[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] cpu: Move tcg_exit_req to the end of CPUState
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH] cpu: Move tcg_exit_req to the end of CPUState |
Date: |
Wed, 19 Mar 2014 14:04:16 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 |
Ping? This is a significant TCG code size regression
for ARM, AArch64, and Sparc hosts. It helps x86 too,
though that's not as severe.
r~
On 03/14/2014 03:30 PM, Richard Henderson wrote:
> Reverse an increase in the size of generated code.
>
> Cc: Andreas Färber <address@hidden>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> include/qom/cpu.h | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/include/qom/cpu.h b/include/qom/cpu.h
> index 06ee263..f99885a 100644
> --- a/include/qom/cpu.h
> +++ b/include/qom/cpu.h
> @@ -227,7 +227,6 @@ struct CPUState {
> bool stop;
> bool stopped;
> volatile sig_atomic_t exit_request;
> - volatile sig_atomic_t tcg_exit_req;
> uint32_t interrupt_request;
> int singlestep_enabled;
> int64_t icount_extra;
> @@ -272,6 +271,12 @@ struct CPUState {
> } icount_decr;
> uint32_t can_do_io;
> int32_t exception_index; /* used by m68k TCG */
> +
> + /* Note that this is accessed at the start of every TB via a negative
> + offset from AREG0. Leave this field at the end so as to make the
> + (absolute value) offset as small as possible. This reduces code
> + size, especially for hosts without large memory offsets. */
> + volatile sig_atomic_t tcg_exit_req;
> };
>
> QTAILQ_HEAD(CPUTailQ, CPUState);
>