diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-08-30 22:38:38 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-08-30 22:38:38 +0200 |
| commit | 1cb55b26335bf4efa551bf618900a456c3a30364 (patch) | |
| tree | d91cf6f34dac9b20291655d08601b2ab36f4b1dc /src | |
| parent | 823c6a138aca56b74ae54dd4654c9fbc86164c20 (diff) | |
| download | box64-1cb55b26335bf4efa551bf618900a456c3a30364.tar.gz box64-1cb55b26335bf4efa551bf618900a456c3a30364.zip | |
Added 66 0F 3A 22 SSE4.x opcode ([DYNAREC] too) (for #106)
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; |