diff options
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_64.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_64.c b/src/dynarec/arm64/dynarec_arm64_64.c index 8fb4cc56..046c08d3 100644 --- a/src/dynarec/arm64/dynarec_arm64_64.c +++ b/src/dynarec/arm64/dynarec_arm64_64.c @@ -428,6 +428,24 @@ uintptr_t dynarec64_64(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } break; + case 0x70: + case 0x71: + case 0x72: + case 0x73: + case 0x74: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x7A: + case 0x7B: + case 0x7C: + case 0x7D: + case 0x7E: + case 0x7F: + // just use regular conditional jump + return dynarec64_00(dyn, addr-1, ip, ninst, rex, rep, ok, need_epilog); case 0x80: nextop = F8; switch((nextop>>3)&7) { @@ -969,6 +987,10 @@ uintptr_t dynarec64_64(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } break; + case 0xEB: + // just use regular inconditional jump + return dynarec64_00(dyn, addr-1, ip, ninst, rex, rep, ok, need_epilog); + case 0xF7: nextop = F8; grab_segdata(dyn, addr, ninst, x6, seg); |