[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/5] tcg/i386: remove hardcoded P_REXW value
From: |
Aurelien Jarno |
Subject: |
[Qemu-devel] [PATCH 2/5] tcg/i386: remove hardcoded P_REXW value |
Date: |
Sat, 21 Dec 2013 17:43:41 +0100 |
P_REXW is defined has a constant at the beginning of i386/tcg-target.c,
but the corresponding bit is later used in a harcoded way, which defeat
the purpose of a constant.
Fix that by using a conditional expression operator instead of a shift.
On x86 this actually makes the code slightly smaller as GCC does in
practice (opc >> 8) & 8 instead of (opc & 0x800) >> 8 so the constants
are smaller to load.
Signed-off-by: Aurelien Jarno <address@hidden>
---
tcg/i386/tcg-target.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c
index 495b901..753b3a1 100644
--- a/tcg/i386/tcg-target.c
+++ b/tcg/i386/tcg-target.c
@@ -381,7 +381,7 @@ static void tcg_out_opc(TCGContext *s, int opc, int r, int
rm, int x)
}
rex = 0;
- rex |= (opc & P_REXW) >> 8; /* REX.W */
+ rex |= (opc & P_REXW) ? 0x8 : 0x0; /* REX.W */
rex |= (r & 8) >> 1; /* REX.R */
rex |= (x & 8) >> 2; /* REX.X */
rex |= (rm & 8) >> 3; /* REX.B */
--
1.7.10.4
- [Qemu-devel] [PATCH 0/5] tcg/i386: use movbe instruction in qemu_ldst routines, Aurelien Jarno, 2013/12/21
- [Qemu-devel] [PATCH 3/5] tcg/i386: add support for three-byte opcodes, Aurelien Jarno, 2013/12/21
- [Qemu-devel] [PATCH 2/5] tcg/i386: remove hardcoded P_REXW value,
Aurelien Jarno <=
- [Qemu-devel] [PATCH 4/5] tcg/i386: use movbe instruction in qemu_ldst routines, Aurelien Jarno, 2013/12/21
- [Qemu-devel] [PATCH 1/5] disas/i386.c: disassemble movbe instruction, Aurelien Jarno, 2013/12/21
- [Qemu-devel] [PATCH 5/5] tcg/i386: cleanup useless #ifdef, Aurelien Jarno, 2013/12/21
- Re: [Qemu-devel] [PATCH 0/5] tcg/i386: use movbe instruction in qemu_ldst routines, Aurelien Jarno, 2013/12/22