diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-10-07 17:26:40 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-10-07 17:26:40 +0200 |
| commit | 3987e644a8e6bcce78ed9dd34941a22eecfe8fe8 (patch) | |
| tree | 18bd879aa596b9c515c99adb3ea71c6336da5765 | |
| parent | f073415510929646b7e2d5e254c4932b46b40233 (diff) | |
| download | box64-3987e644a8e6bcce78ed9dd34941a22eecfe8fe8.tar.gz box64-3987e644a8e6bcce78ed9dd34941a22eecfe8fe8.zip | |
Added 66 6A opcode ([ARM64_DYNAREC] too) (for #1911)
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_66.c | 6 | ||||
| -rw-r--r-- | src/emu/x64run66.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_66.c b/src/dynarec/arm64/dynarec_arm64_66.c index 3be6dac2..aa1333e9 100644 --- a/src/dynarec/arm64/dynarec_arm64_66.c +++ b/src/dynarec/arm64/dynarec_arm64_66.c @@ -450,6 +450,12 @@ uintptr_t dynarec64_66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin GWBACK; UFLAG_DF(x1, d_imul16); break; + case 0x6A: + INST_NAME("PUSH Ib"); + u16 = (uint16_t)F8S; + MOV32w(x2, u16); + PUSH1_16(x2); + break; case 0x70: case 0x71: diff --git a/src/emu/x64run66.c b/src/emu/x64run66.c index b3fffe37..e1abf3b7 100644 --- a/src/emu/x64run66.c +++ b/src/emu/x64run66.c @@ -291,7 +291,10 @@ uintptr_t Run66(x64emu_t *emu, rex_t rex, int rep, uintptr_t addr) GW->word[0] = imul16(emu, EW->word[0], tmp16u); } break; - + case 0x6A: /* PUSH u8 */ + tmp16s = F8S; + Push16(emu, tmp16s); + break; case 0x6B: /* IMUL Gw,Ew,Ib */ nextop = F8; GETEW(1); |