about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2021-04-18 13:24:08 +0200
committerptitSeb <sebastien.chev@gmail.com>2021-04-18 13:24:08 +0200
commitd1497e98dbb025ab610805377eb6b1d10c6435a9 (patch)
treef3eb0c4a644937021acc54e9de554e34955814d0 /src
parent7925a8e1b3a473aa94991272eb3367f91412c433 (diff)
downloadbox64-d1497e98dbb025ab610805377eb6b1d10c6435a9.tar.gz
box64-d1497e98dbb025ab610805377eb6b1d10c6435a9.zip
Added handling of 3E prefix ([DYNAREC] too)
Diffstat (limited to 'src')
-rwxr-xr-xsrc/dynarec/dynarec_arm64_pass.c4
-rwxr-xr-xsrc/emu/x64run.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_pass.c b/src/dynarec/dynarec_arm64_pass.c
index 9abeaf6a..a3d235cd 100755
--- a/src/dynarec/dynarec_arm64_pass.c
+++ b/src/dynarec/dynarec_arm64_pass.c
@@ -75,6 +75,10 @@ uintptr_t arm_pass(dynarec_arm_t* dyn, uintptr_t addr)
             ++addr;
             pk = PK(0);
         }
+        while(pk==0x3E) {   //Branch Taken Hint ignored
+            ++addr;
+            pk = PK(0);
+        }
         rex.rex = 0;
         while(pk>=0x40 && pk<=0x4f) {
             rex.rex = pk;
diff --git a/src/emu/x64run.c b/src/emu/x64run.c
index 3ccdb786..17a7da6e 100755
--- a/src/emu/x64run.c
+++ b/src/emu/x64run.c
@@ -70,6 +70,8 @@ x64emurun:
             rep = opcode-0xF1;
             opcode = F8;
         }
+        while((opcode==0x3E))   //Branch Taken Hint ignored
+            opcode = F8;
         rex.rex = 0;
         while(opcode>=0x40 && opcode<=0x4f) {
             rex.rex = opcode;