Hello,

Working on 16- and 20-bit targets using TARGET_LONG_BITS == 32, I found it too
easy to accidentally use, e.g., tcg_temp_free() in place of tcg_temp_free_i32().
In case of 78k0/rl78 it may not practically matter yet, but it complicates
going from a 32-bit target to 64 bits, as in the case of arm.

This series refactors TCG code to allow using a dedicated struct for TCGv,
to make variable type mismatches show up as compilation errors.

This series only adds the infrastructure but does not enable it by default.
A series adapting target-i386 will be posted independently as an RFC.

Regards,
Andreas

Cc: Peter Maydell <peter.mayd...@linaro.org>

Andreas Färber (4):
  tcg: Introduce {MAKE,GET}_TCGV_TL macros
  tcg: Convert *_tl*() macros to inline functions
  tcg: Update TCGV_{UNUSED,EQUAL}() macros
  tcg: Allow to detect TCGv misuses

 def-helper.h |   13 +-
 tcg/tcg-op.h | 1046 +++++++++++++++++++++++++++++++++++++++++++++++++---------
 tcg/tcg.h    |    1 +
 3 files changed, 896 insertions(+), 164 deletions(-)

-- 
1.7.7


Reply via email to