diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-05-26 18:02:11 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-05-26 18:02:11 +0200 |
| commit | bfea73d5d8003ab48f078d64c5836b7691fc8fd3 (patch) | |
| tree | 11f65b3f58681d38a3e369e44dc2e06880bdaad7 | |
| parent | 2ae1713ac1a75c548e59b09e5a244a2a56038fad (diff) | |
| download | box64-bfea73d5d8003ab48f078d64c5836b7691fc8fd3.tar.gz box64-bfea73d5d8003ab48f078d64c5836b7691fc8fd3.zip | |
[DYNAREC] Fix an issue with LOCK ADD Ew, Iw opcode
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_66f0.c | 6 |
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; |