summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-08-04 20:17:31 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-08-04 20:17:31 -0700
commitfc6b2cceb4c16b8b33390b779d1ed64c84b1e954 (patch)
tree7bcb47b10269dd14a04c70428d9d4d7fd81ec163
parent6f3bb03a3fff61de8c8dc53b01d9b48186021d21 (diff)
downloadgem5-fc6b2cceb4c16b8b33390b779d1ed64c84b1e954.tar.xz
X86: Make fixed register operands ignore register index extensions from the REX prefix.
The only cases where this was the correct behavior are now handled with the "B" operand type, and doing things this way was breaking some instructions, notably a shift. --HG-- extra : convert_revision : 072346d4f541edaceba7aecc26ba8d2cd756e481
-rw-r--r--src/arch/x86/isa/specialize.isa4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86/isa/specialize.isa b/src/arch/x86/isa/specialize.isa
index b5f51ab58..690061de7 100644
--- a/src/arch/x86/isa/specialize.isa
+++ b/src/arch/x86/isa/specialize.isa
@@ -138,9 +138,9 @@ let {{
#Figure out what to do with fixed register operands
#This is the index to use, so we should stick it some place.
if opType.reg in ("A", "B", "C", "D"):
- env.addReg("INTREG_R%sX | (REX_B << 3)" % opType.reg)
+ env.addReg("INTREG_R%sX" % opType.reg)
else:
- env.addReg("INTREG_R%s | (REX_B << 3)" % opType.reg)
+ env.addReg("INTREG_R%s" % opType.reg)
Name += "_R"
elif opType.tag == "B":
# This refers to registers whose index is encoded as part of the opcode