summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/microops
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2007-08-29 20:39:41 -0700
committerGabe Black <gblack@eecs.umich.edu>2007-08-29 20:39:41 -0700
commitf67cd046731f07cc76ec63d0614be81d2e212ac4 (patch)
treedea007345262df9f490150664d411334e6c7b2b5 /src/arch/x86/isa/microops
parentc1a776de8a89c624d3e047bf40863e05180a7958 (diff)
downloadgem5-f67cd046731f07cc76ec63d0614be81d2e212ac4.tar.xz
X86: Fix the sra microop to get the sign bit from the right operand.
--HG-- extra : convert_revision : 71e58dd6dd6918ee403f2e332c47e29acdace464
Diffstat (limited to 'src/arch/x86/isa/microops')
-rw-r--r--src/arch/x86/isa/microops/regop.isa2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/arch/x86/isa/microops/regop.isa b/src/arch/x86/isa/microops/regop.isa
index cacdc7144..eca640d35 100644
--- a/src/arch/x86/isa/microops/regop.isa
+++ b/src/arch/x86/isa/microops/regop.isa
@@ -590,7 +590,7 @@ let {{
// is not defined in the C/C++ standard, we have to sign extend
// them manually to be sure.
uint64_t arithMask =
- -bits(op2, dataSize * 8 - 1) << (dataSize * 8 - shiftAmt);
+ -bits(psrc1, dataSize * 8 - 1) << (dataSize * 8 - shiftAmt);
DestReg = merge(DestReg, (psrc1 >> shiftAmt) | arithMask, dataSize);
''')
defineMicroRegOp('Ror', '''