diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-06-24 13:43:36 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-06-24 13:43:36 +0200 |
| commit | e8cd8ca8c029fa38713960072a65f11dbcb5cefb (patch) | |
| tree | 64e3ef1490dcbc0c0b2360a6fa165e57f21f6c40 /src | |
| parent | 179015a05004740594b509a8b552f914ddb6d64e (diff) | |
| download | box64-e8cd8ca8c029fa38713960072a65f11dbcb5cefb.tar.gz box64-e8cd8ca8c029fa38713960072a65f11dbcb5cefb.zip | |
[ARM64_DYNAREC] Added 67 66 89 opcode
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_67.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c index 58a959f1..be397617 100755 --- a/src/dynarec/arm64/dynarec_arm64_67.c +++ b/src/dynarec/arm64/dynarec_arm64_67.c @@ -628,6 +628,31 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } break; + case 0x66: + opcode=F8; + switch(opcode) { + + case 0x89: + INST_NAME("MOV Ew, Gw"); + nextop = F8; + GETGD; // don't need GETGW here + if(MODREG) { + ed = xRAX+(nextop&7)+(rex.b<<3); + if(ed!=gd) { + BFIx(ed, gd, 0, 16); + } + } else { + addr = geted32(dyn, addr, ninst, nextop, &ed, x2, &fixedaddress, &unscaled, 0xfff<<1, 1, rex, &lock, 0, 0); + STH(gd, ed, fixedaddress); + SMWRITELOCK(lock); + } + break; + + default: + DEFAULT; + } + break; + case 0x81: case 0x83: nextop = F8; |