X86: Don't treat the REX prefixes as prefixes in 32 bit modes. These are inc/dec...
authorGabe Black <gblack@eecs.umich.edu>
Fri, 27 Feb 2009 17:26:09 +0000 (09:26 -0800)
committerGabe Black <gblack@eecs.umich.edu>
Fri, 27 Feb 2009 17:26:09 +0000 (09:26 -0800)
src/arch/x86/predecoder.cc

index 9d60089e39e4ff9add9ef29c8eea1422e2c19c28..620ab89eaa64ccfe3dab03722fabd50aeb9f10ab 100644 (file)
@@ -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)
         {