about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-05-26 18:02:11 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-05-26 18:02:11 +0200
commitbfea73d5d8003ab48f078d64c5836b7691fc8fd3 (patch)
tree11f65b3f58681d38a3e369e44dc2e06880bdaad7 /src
parent2ae1713ac1a75c548e59b09e5a244a2a56038fad (diff)
downloadbox64-bfea73d5d8003ab48f078d64c5836b7691fc8fd3.tar.gz
box64-bfea73d5d8003ab48f078d64c5836b7691fc8fd3.zip
[DYNAREC] Fix an issue with LOCK ADD Ew, Iw opcode
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_66f0.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_66f0.c b/src/dynarec/arm64/dynarec_arm64_66f0.c
index 0bd95f48..c041febc 100644
--- a/src/dynarec/arm64/dynarec_arm64_66f0.c
+++ b/src/dynarec/arm64/dynarec_arm64_66f0.c
@@ -83,7 +83,7 @@ uintptr_t dynarec64_66F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                     if(opcode==0x81) {
                         INST_NAME("LOCK ADD Ew, Iw");
                     } else {
-                        INST_NAME("LOCK ADD Ew, Iw");
+                        INST_NAME("LOCK ADD Ew, Ib");
                     }
                     SETFLAGS(X_ALL, SF_SET_PENDING);
                     if(MODREG) {
@@ -95,7 +95,7 @@ uintptr_t dynarec64_66F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                         BFIx(ed, x6, 0, 16);
                     } else {
                         addr = geted(dyn, addr, ninst, nextop, &wback, x2, &fixedaddress, 0, 0, rex, 0, (opcode==0x81)?2:1);
-                        if(opcode==0x81) i32 = F32S; else i32 = F8S;
+                        if(opcode==0x81) i32 = F16S; else i32 = F8S;
                         MOV32w(x5, i32);
                         TSTx_mask(wback, 1, 0, 0);    // mask=1
                         B_MARK(cNE);
@@ -116,7 +116,7 @@ uintptr_t dynarec64_66F0(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
                     }
                     break;
                 case 1: //OR
-                    if(opcode==0x81) {INST_NAME("LOCK OR Ew, Iw");} else {INST_NAME("LOCK OR Ew, Iw");}
+                    if(opcode==0x81) {INST_NAME("LOCK OR Ew, Iw");} else {INST_NAME("LOCK OR Ew, Ib");}
                     SETFLAGS(X_ALL, SF_SET_PENDING);
                     if(MODREG) {
                         if(opcode==0x81) i32 = F16S; else i32 = F8S;