On Sun, 17 Apr 2022 at 18:50, Richard Henderson <richard.hender...@linaro.org> wrote: > > Currently we assume all fields are 32-bit. > Prepare for fields of a single byte, using sizeof. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > target/arm/translate-a32.h | 13 +++++-------- > target/arm/translate.c | 21 ++++++++++++++++++++- > 2 files changed, 25 insertions(+), 9 deletions(-) > > diff --git a/target/arm/translate-a32.h b/target/arm/translate-a32.h > index 5be4b9b834..f593740a88 100644 > --- a/target/arm/translate-a32.h > +++ b/target/arm/translate-a32.h > @@ -61,17 +61,14 @@ static inline TCGv_i32 load_cpu_offset(int offset) > > #define load_cpu_field(name) load_cpu_offset(offsetof(CPUARMState, name)) > > -static inline void store_cpu_offset(TCGv_i32 var, int offset) > -{ > - tcg_gen_st_i32(var, cpu_env, offset); > - tcg_temp_free_i32(var); > -} > +void store_cpu_offset(TCGv_i32 var, int offset, int size); > > -#define store_cpu_field(var, name) \ > - store_cpu_offset(var, offsetof(CPUARMState, name)) > +#define store_cpu_field(var, name) \ > + store_cpu_offset(var, offsetof(CPUARMState, name), \ > + sizeof(((CPUARMState *)NULL)->name))
compiler.h defines sizeof_field, so you can write sizeof_field(CPUARMState, name) here. Otherwise Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM