From 3b6dac34161bc0a342336072643c2f6d17e0ec45 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 2 Jun 2010 17:26:55 -0700 Subject: tcg: Add TYPE parameter to tcg_out_mov. Mirror tcg_out_movi in having a TYPE parameter. This allows x86_64 to perform the move at the proper width, which may elide a REX prefix. Introduce a TCG_TYPE_REG enumerator to represent the "native width" of the host register, and to distinguish the usage from "pointer data" as represented by the existing TCG_TYPE_PTR. Update all targets to match. Signed-off-by: Richard Henderson Signed-off-by: Aurelien Jarno --- tcg/tcg.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'tcg/tcg.h') diff --git a/tcg/tcg.h b/tcg/tcg.h index 5853823..d6cb9e7 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -101,11 +101,18 @@ typedef enum TCGType { TCG_TYPE_I64, TCG_TYPE_COUNT, /* number of different types */ + /* An alias for the size of the host register. */ #if TCG_TARGET_REG_BITS == 32 - TCG_TYPE_PTR = TCG_TYPE_I32, + TCG_TYPE_REG = TCG_TYPE_I32, #else - TCG_TYPE_PTR = TCG_TYPE_I64, + TCG_TYPE_REG = TCG_TYPE_I64, #endif + + /* An alias for the size of the native pointer. We don't currently + support any hosts with 64-bit registers and 32-bit pointers. */ + TCG_TYPE_PTR = TCG_TYPE_REG, + + /* An alias for the size of the target "long", aka register. */ #if TARGET_LONG_BITS == 64 TCG_TYPE_TL = TCG_TYPE_I64, #else -- cgit v1.1