diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-09-24 15:17:56 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-09-24 15:17:56 +0200 |
| commit | 73b3aec3ed479ca1599816c3fa9558dcb383d302 (patch) | |
| tree | cc8f79d9982e4afdd32ca22567741f502f01571b /src | |
| parent | 9568cbac0a8f12eaabf42e3119cf9b49356e06d6 (diff) | |
| download | box64-73b3aec3ed479ca1599816c3fa9558dcb383d302.tar.gz box64-73b3aec3ed479ca1599816c3fa9558dcb383d302.zip | |
[ARM64_DYNAREC] Fixed reset of rex on 67 prefixed opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_67.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_67.c b/src/dynarec/arm64/dynarec_arm64_67.c index 50fdf824..117e090a 100644 --- a/src/dynarec/arm64/dynarec_arm64_67.c +++ b/src/dynarec/arm64/dynarec_arm64_67.c @@ -55,12 +55,13 @@ uintptr_t dynarec64_67(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin return addr; } - GETREX(); while(opcode==0x67) opcode = F8; + // reset rex after 67 + GETREX(); + rep = 0; - rex.rex = 0; // reset rex after 67 while((opcode==0xF2) || (opcode==0xF3) || (opcode>=0x40 && opcode<=0x4F)) { if((opcode==0xF2) || (opcode==0xF3)) rep = opcode-0xF1; |