target-arm: Don't use TCGv when we mean TCGv_i32
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 23 May 2013 11:59:55 +0000 (12:59 +0100)
committerBlue Swirl <blauwirbel@gmail.com>
Sun, 26 May 2013 10:04:54 +0000 (10:04 +0000)
commit39d5492a186d156d4acc306ae258d7e04f8a6c29
treefa968b2dae88179ae1d4d808d9387a3c318db099
parentfd469df97ab4277411ecdd4032a2f045a3a87b2a
target-arm: Don't use TCGv when we mean TCGv_i32

TCGv changes size depending on the compile time value of
TARGET_LONG_BITS.  This is useful for generating code for MIPS style
"instructions are the same but the register width changes" CPUs, and
also for the generic bits of QEMU which operate on "width of a
virtual address" values, but mostly in the ARM target code we were
using it purely as a shorthand for "any 32 bit value".

This needs to change in preparation for AArch64 support, since an
AArch64-capable v8 core will have 64 bit virtual addresses but still
use 32 bit values for the 32 bit instruction set.

This patch mechanically converts all the occurrences of TCGv,
tcg_temp_new(), tcg_temp_free(), tcg_temp_local_new() and
TCGV_UNUSED() to their explicitly 32 bit counterparts.  This is
correct for everything except the arguments to tcg_gen_qemu_{ld,st}*,
which really do need to be TCGv and so will require a 32-to-64
conversion when building the 32 bit code for AArch64.  Those changes
will be in a separate patch for easier review.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
target-arm/translate.c