On Tue, 23 Jun 2020 at 20:37, Richard Henderson <richard.hender...@linaro.org> wrote: > > Introduce an lvalue macro to wrap target_tlb_bit0. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > +/* Helper for the macros below, validating the argument type. */ > +static inline MemTxAttrs *typecheck_memtxattrs(MemTxAttrs *x) > +{ > + return x; > +} > + > +/* > + * Lvalue macros for ARM TLB bits that we must cache in the TCG TLB. > + * Using these should be a bit more self-documenting than using the > + * generic target bits directly. > + */ > +#define arm_tlb_bti_gp(x) (typecheck_memtxattrs(x)->target_tlb_bit0)
It seems unlikely that we wouldn't get a compile failure if we passed something other than a MemTxAttrs* to this macro, given the specificity of the field name, but I guess it gives us a less confusing compiler error ? Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM