diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_660f.c | 10 | ||||
| -rw-r--r-- | src/emu/x64run660f.c | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/dynarec/dynarec_arm64_660f.c b/src/dynarec/dynarec_arm64_660f.c index f0a91740..b1049e96 100755 --- a/src/dynarec/dynarec_arm64_660f.c +++ b/src/dynarec/dynarec_arm64_660f.c @@ -525,6 +525,16 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n VEXTQ_8(q0, q1, q0, u8); } break; + + case 0x22: + INST_NAME("PINSRD Gx, ED, Ib"); + nextop = F8; + GETGX(q0); + GETED(1); + u8 = F8; + VMOVQSfrom(q0, (u8&3), ed); + break; + default: DEFAULT; } diff --git a/src/emu/x64run660f.c b/src/emu/x64run660f.c index 676656b7..6d92cd5e 100644 --- a/src/emu/x64run660f.c +++ b/src/emu/x64run660f.c @@ -641,6 +641,13 @@ int Run660F(x64emu_t *emu, rex_t rex) if(tmp8u&(1<<i)) GX->ud[i] = 0; break; + case 0x22: // PINSRD GX, ED, u8 + nextop = F8; + GETED(1); + GETGX; + tmp8u = F8; + GX->ud[tmp8u&0x3] = ED->dword[0]; + break; case 0xDF: // AESKEYGENASSIST Gx, Ex, u8 nextop = F8; |