Re: [Qemu-devel] [PATCH 07/20] target/arm: Fix is_a64 for user-only
On 17 August 2018 at 17:10, Laurent Desnogues wrote: > Hello, > > On Fri, Aug 17, 2018 at 6:04 PM Peter Maydell > wrote: >> And again. I don't want to pepper the code with ifdefs if >> we can do the right thing without them. > > FWIW I find it more readable with the ifdef's (here and in the > previous patches) and I guess that helps the compiler too. Hmm. I prefer to think of user-mode as a funny variant on system emulation where we make the minimal changes required, and mostly work just by having the CPU being in the state it would be for system-emulation EL0 and not being able to get out of it. thanks -- PMM
Re: [Qemu-devel] [PATCH 07/20] target/arm: Fix is_a64 for user-only
On 9 August 2018 at 05:21, Richard Henderson wrote: > Saves about 8k code size in qemu-aarch64. > > Signed-off-by: Richard Henderson > --- > target/arm/cpu.h | 8 > 1 file changed, 8 insertions(+) > > diff --git a/target/arm/cpu.h b/target/arm/cpu.h > index aedaf2631e..ed51a2f5aa 100644 > --- a/target/arm/cpu.h > +++ b/target/arm/cpu.h > @@ -918,7 +918,15 @@ void aarch64_sync_64_to_32(CPUARMState *env); > > static inline bool is_a64(CPUARMState *env) > { > +#ifdef CONFIG_USER_ONLY > +# ifdef TARGET_AARCH64 > +return true; > +# else > +return false; > +# endif > +#else > return env->aarch64; > +#endif > } And again. I don't want to pepper the code with ifdefs if we can do the right thing without them. thanks -- PMM
Re: [Qemu-devel] [PATCH 07/20] target/arm: Fix is_a64 for user-only
Hello, On Fri, Aug 17, 2018 at 6:04 PM Peter Maydell wrote: > > On 9 August 2018 at 05:21, Richard Henderson > wrote: > > Saves about 8k code size in qemu-aarch64. > > > > Signed-off-by: Richard Henderson > > --- > > target/arm/cpu.h | 8 > > 1 file changed, 8 insertions(+) > > > > diff --git a/target/arm/cpu.h b/target/arm/cpu.h > > index aedaf2631e..ed51a2f5aa 100644 > > --- a/target/arm/cpu.h > > +++ b/target/arm/cpu.h > > @@ -918,7 +918,15 @@ void aarch64_sync_64_to_32(CPUARMState *env); > > > > static inline bool is_a64(CPUARMState *env) > > { > > +#ifdef CONFIG_USER_ONLY > > +# ifdef TARGET_AARCH64 > > +return true; > > +# else > > +return false; > > +# endif > > +#else > > return env->aarch64; > > +#endif > > } > > And again. I don't want to pepper the code with ifdefs if > we can do the right thing without them. FWIW I find it more readable with the ifdef's (here and in the previous patches) and I guess that helps the compiler too. Thanks, Laurent
[Qemu-devel] [PATCH 07/20] target/arm: Fix is_a64 for user-only
Saves about 8k code size in qemu-aarch64. Signed-off-by: Richard Henderson --- target/arm/cpu.h | 8 1 file changed, 8 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index aedaf2631e..ed51a2f5aa 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -918,7 +918,15 @@ void aarch64_sync_64_to_32(CPUARMState *env); static inline bool is_a64(CPUARMState *env) { +#ifdef CONFIG_USER_ONLY +# ifdef TARGET_AARCH64 +return true; +# else +return false; +# endif +#else return env->aarch64; +#endif } /* you can call this signal handler from your SIGBUS and SIGSEGV -- 2.17.1