Re: [Qemu-devel] [PATCH 07/20] target/arm: Fix is_a64 for user-only

2018-08-17 Thread Peter Maydell
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

2018-08-17 Thread Peter Maydell
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

2018-08-17 Thread Laurent Desnogues
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

2018-08-08 Thread Richard Henderson
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