tcg/i386: remove hardcoded P_REXW value
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 <aurelien@aurel32.net> Signed-off-by: Richard Henderson <rth@twiddle.net>
This commit is contained in:
parent
ba00599cc3
commit
c9d78213b8
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user