]> Git Repo - qemu.git/commitdiff
tcg-i386: Add and use tcg_out64
authorRichard Henderson <[email protected]>
Thu, 25 Jul 2013 19:42:17 +0000 (09:42 -1000)
committerRichard Henderson <[email protected]>
Mon, 26 Aug 2013 20:31:53 +0000 (13:31 -0700)
No point in splitting the write into 32-bit pieces.

Reviewed-by: Aurelien Jarno <[email protected]>
Signed-off-by: Richard Henderson <[email protected]>
tcg/i386/tcg-target.c
tcg/tcg.c

index 87eeab3d301bf3d17214cc3e588e67a08ac82071..841bd750e4a665d6776785faa5086d2fae36309e 100644 (file)
@@ -552,8 +552,7 @@ static void tcg_out_movi(TCGContext *s, TCGType type,
         tcg_out32(s, arg);
     } else {
         tcg_out_opc(s, OPC_MOVL_Iv + P_REXW + LOWREGMASK(ret), 0, ret, 0);
-        tcg_out32(s, arg);
-        tcg_out32(s, arg >> 31 >> 1);
+        tcg_out64(s, arg);
     }
 }
 
index 42c95af66dd26d9f53464cccf4bd06f6f67f38c0..19bd5a39bf893c929f78002020a6744dccdede5f 100644 (file)
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -133,6 +133,13 @@ static inline void tcg_out32(TCGContext *s, uint32_t v)
     s->code_ptr = p + 4;
 }
 
+static inline void tcg_out64(TCGContext *s, uint64_t v)
+{
+    uint8_t *p = s->code_ptr;
+    *(uint64_t *)p = v;
+    s->code_ptr = p + 8;
+}
+
 /* label relocation processing */
 
 static void tcg_out_reloc(TCGContext *s, uint8_t *code_ptr, int type,
This page took 0.03297 seconds and 4 git commands to generate.