On 16 September 2014 10:46, Richard Henderson <r...@twiddle.net> wrote: > Instead of using structures, which imply some amount of overhead > on certain ABIs, use pointer types. > > This actually reduces the size of the binaries vs a NON-debug > build on ppc64 and x86_64, due to a reduction in the number of > sign-extension insns.
It's good to have this typechecking enabled unconditionally. > Signed-off-by: Richard Henderson <r...@twiddle.net> > --- > tcg/tcg.h | 89 > ++++++++++++++++++++++++--------------------------------------- > 1 file changed, 34 insertions(+), 55 deletions(-) > > diff --git a/tcg/tcg.h b/tcg/tcg.h > index 997a704..7285f71 100644 > --- a/tcg/tcg.h > +++ b/tcg/tcg.h > @@ -274,75 +274,54 @@ typedef enum TCGMemOp { > > typedef tcg_target_ulong TCGArg; > > -/* Define a type and accessor macros for variables. Using a struct is > - nice because it gives some level of type safely. Ideally the compiler > - be able to see through all this. However in practice this is not true, > - especially on targets with braindamaged ABIs (e.g. i386). > - We use plain int by default to avoid this runtime overhead. > - Users of tcg_gen_* don't need to know about any of this, and should > - treat TCGv as an opaque type. > +/* Define a type and accessor macros for variables. Using pointer types > + is nice because it gives some level of type safely. Converting to and "safety". Otherwise Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> -- PMM