Fixed displacement size bug.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 22 Jul 2007 02:23:03 +0000 (02:23 +0000)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 22 Jul 2007 02:23:03 +0000 (02:23 +0000)
--HG--
extra : convert_revision : c39249ef598c1bd555098d688381dc62541a07c0

src/arch/x86/predecoder.cc

index b6c488e454e6eeafe977ef61731ba5fdb3334e76..2c997f34b295a37299ed0741123dbbe48b8ca4f3 100644 (file)
@@ -340,6 +340,8 @@ namespace X86ISA
         emi.sib = nextByte;
         DPRINTF(Predecoder, "Found SIB byte %#x.\n", nextByte);
         consumeByte();
+        if(emi.modRM.mod == 0 && emi.sib.base == 5)
+            displacementSize = 4;
         if(displacementSize) {
             nextState = DisplacementState;
         } else if(immediateSize) {