qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 13/13] tcg: rework TCG ops flags


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH 13/13] tcg: rework TCG ops flags
Date: Thu, 27 Sep 2012 12:56:11 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120911 Thunderbird/15.0.1

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.

> 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.


r~



reply via email to

[Prev in Thread] Current Thread [Next in Thread]