about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-06-12 15:18:56 +0800
committerGitHub <noreply@github.com>2025-06-12 09:18:56 +0200
commite0067667f73bcf65bc0bc8636f8e2f5bbc32ea6d (patch)
treea42de41d5709e0606b91c7572d1d319ace18bf87
parent44669935dae4ca780417c877981c3ca9390758c9 (diff)
downloadbox64-e0067667f73bcf65bc0bc8636f8e2f5bbc32ea6d.tar.gz
box64-e0067667f73bcf65bc0bc8636f8e2f5bbc32ea6d.zip
[INTERP] Fixed 64/65 67 64bit rex decoding (#2729)
-rw-r--r--src/emu/x64run6764.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/emu/x64run6764.c b/src/emu/x64run6764.c
index e8d22ea9..af83db93 100644
--- a/src/emu/x64run6764.c
+++ b/src/emu/x64run6764.c
@@ -52,6 +52,11 @@ uintptr_t Run6764(x64emu_t *emu, rex_t rex, int rep, int seg, uintptr_t addr)
         opcode = F8;
     }
 
+    while (opcode >= 0x40 && opcode <= 0x4f) {
+        rex.rex = opcode;
+        opcode = F8;
+    }
+
     switch(opcode) {
 
         case 0x89:                      /* MOV FS:Ed, Gd */