about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/dynarec_native_pass.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/dynarec/dynarec_native_pass.c b/src/dynarec/dynarec_native_pass.c
index b88cfb41..a90206fb 100644
--- a/src/dynarec/dynarec_native_pass.c
+++ b/src/dynarec/dynarec_native_pass.c
@@ -168,11 +168,16 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr, int alternate, int
         #endif
 
         rep = 0;
+        rex.is32bits = is32bits;
         uint8_t pk = PK(0);
-        while((pk==0xF2) || (pk==0xF3) || (pk==0x3E) || (pk==0x26)) {
+        while((pk==0xF2) || (pk==0xF3) || (pk==0x3E) || (pk==0x26)
+            || (is32bits && ((pk==0x2E) || (pk==0x36)))
+        ) {
             switch(pk) {
                 case 0xF2: rep = 1; break;
                 case 0xF3: rep = 2; break;
+                case 0x2E:
+                case 0x36:
                 case 0x3E:
                 case 0x26: /* ignored */ break;
             }
@@ -180,7 +185,6 @@ uintptr_t native_pass(dynarec_native_t* dyn, uintptr_t addr, int alternate, int
             pk = PK(0);
         }
         rex.rex = 0;
-        rex.is32bits = is32bits;
         if(!rex.is32bits)
             while(pk>=0x40 && pk<=0x4f) {
                 rex.rex = pk;