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