From 27b751ec46e59166867cedbf6da3ee19453671bd Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 27 Feb 2009 09:26:09 -0800 Subject: X86: Don't treat the REX prefixes as prefixes in 32 bit modes. These are inc/dec instructions. --- src/arch/x86/predecoder.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/arch/x86/predecoder.cc') diff --git a/src/arch/x86/predecoder.cc b/src/arch/x86/predecoder.cc index 9d60089e3..620ab89ea 100644 --- a/src/arch/x86/predecoder.cc +++ b/src/arch/x86/predecoder.cc @@ -136,7 +136,10 @@ namespace X86ISA { uint8_t prefix = Prefixes[nextByte]; State nextState = PrefixState; - if(prefix) + // REX prefixes are only recognized in 64 bit mode. + if (prefix == RexPrefix && emi.mode.submode != SixtyFourBitMode) + prefix = 0; + if (prefix) consumeByte(); switch(prefix) { -- cgit v1.2.3