]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
tcg/i386: Always use %ebp for TCG_AREG0
authorRichard Henderson <richard.henderson@linaro.org>
Tue, 30 Oct 2018 21:52:44 +0000 (21:52 +0000)
committerRichard Henderson <richard.henderson@linaro.org>
Mon, 17 Dec 2018 03:04:43 +0000 (06:04 +0300)
For x86_64, this can remove a REX prefix resulting in smaller code
when manipulating globals of type i32, as we move them between backing
store via cpu_env, aka TCG_AREG0.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Emilio G. Cota <cota@braap.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/i386/tcg-target.h

index 9fdf37f23c211c13e57dbc040fa018428d82eeac..7488c3d8696040c366dd87aa6c2996ecfa6e8365 100644 (file)
@@ -84,6 +84,8 @@ typedef enum {
     TCG_REG_RBP = TCG_REG_EBP,
     TCG_REG_RSI = TCG_REG_ESI,
     TCG_REG_RDI = TCG_REG_EDI,
+
+    TCG_AREG0 = TCG_REG_EBP,
 } TCGReg;
 
 /* used for function call generation */
@@ -194,12 +196,6 @@ extern bool have_avx2;
 #define TCG_TARGET_extract_i64_valid(ofs, len) \
     (((ofs) == 8 && (len) == 8) || ((ofs) + (len)) == 32)
 
-#if TCG_TARGET_REG_BITS == 64
-# define TCG_AREG0 TCG_REG_R14
-#else
-# define TCG_AREG0 TCG_REG_EBP
-#endif
-
 static inline void flush_icache_range(uintptr_t start, uintptr_t stop)
 {
 }