diff options
Diffstat (limited to 'src/dynarec')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_0f.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index b3b2ac34..79c0c916 100644 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -190,13 +190,24 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin case 0x0D: nextop = F8; switch((nextop>>3)&7) { + case 0: + INST_NAME("PREFETCH"); + addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, NULL, 0xfff, 7, rex, NULL, 0, 0); + PLD_L1_STREAM_U12(ed, fixedaddress); + break; case 1: INST_NAME("PREFETCHW"); addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, NULL, 0xfff, 7, rex, NULL, 0, 0); PST_L1_STREAM_U12(ed, fixedaddress); break; - default: //??? - DEFAULT; + case 2: + INST_NAME("PREFETCHWT1"); + addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, NULL, 0xfff, 7, rex, NULL, 0, 0); + PST_L1_STREAM_U12(ed, fixedaddress); + break; + default: //NOP + FAKEED; + break; } break; case 0x0E: |