[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 13/13] tcg: rework TCG ops flags
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH 13/13] tcg: rework TCG ops flags |
Date: |
Thu, 27 Sep 2012 22:37:11 +0200 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Sep 27, 2012 at 12:56:11PM -0700, Richard Henderson wrote:
> On 09/27/2012 10:15 AM, Aurelien Jarno wrote:
> > - TCG_OPF_CALL_CLOBBER: The op clobber the call registers. They are
> > freed before emitting the op.
> > - TCG_OPF_SIDE_EFFECTS: The op is not removed if the returned value
> > if not used. It can trigger exception and thus globals are
> > synchronized before emitting the op.
> > - TCG_OPF_READ_GLOBALS: The op can read globals but not write them,
> > and thus globals are synchronized before emitting the op.
> > - TCG_OPF_WRITE_GLOBALS: The op can read and write globals, and thus
> > globals are saved back to their canonical location before emitting
> > the op.
>
> This is more or less exactly the flag breakup I was talking about for calls.
>
> I don't agree with SIDE_EFFECTS implying exceptions. How can "br" cause an
> exception? Or for that matter "st_i32", recalling that we're not storing
> to guest memory.
That's exactly why SIDE_EFFECTS has been removed from this op in the
previous patch.
I think it implies exception, because I don't see why an op shouldn't be
removed otherwise (remember ops without outputs are never removed).
> > Note: While this is restoring the possibility to map a memory address
> > using both a global and accessing it through ld/st, this reduces the
> > performances of targets generating a lot of ld/st op. Given it is
> > currently technically not allowed, we might instead change the TCG
> > documentation to make that clear.
>
> Yes, I think we should. I can't see that this is something that we
> should *ever* do.
>
Ok, then the documentation should be fixed.
--
Aurelien Jarno GPG: 1024D/F1BCDB73
address@hidden http://www.aurel32.net
[Qemu-devel] [PATCH 11/13] tcg: sync globals for pure helpers instead of saving them, Aurelien Jarno, 2012/09/27
[Qemu-devel] [PATCH 09/13] tcg: start with local temps in TEMP_VAL_MEM state, Aurelien Jarno, 2012/09/27
[Qemu-devel] [PATCH 10/13] tcg: don't explicitely save globals and temps, Aurelien Jarno, 2012/09/27