diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-04-11 17:49:49 +0000 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-04-11 17:49:49 +0000 |
| commit | fceaac48a6fa5e3d54ed05fee33257752fcc8303 (patch) | |
| tree | eefa57ece3149dcdc681a8e078dda061c1150ee5 /src | |
| parent | 4330b61217e80d127644e849c52124bde5c6e711 (diff) | |
| download | box64-fceaac48a6fa5e3d54ed05fee33257752fcc8303.tar.gz box64-fceaac48a6fa5e3d54ed05fee33257752fcc8303.zip | |
[RV64_DYNAREC] Added 0F 14/15 opcodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/rv64/dynarec_rv64_0f.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/dynarec/rv64/dynarec_rv64_0f.c b/src/dynarec/rv64/dynarec_rv64_0f.c index bb8e7834..40a15310 100644 --- a/src/dynarec/rv64/dynarec_rv64_0f.c +++ b/src/dynarec/rv64/dynarec_rv64_0f.c @@ -136,6 +136,33 @@ uintptr_t dynarec64_0F(dynarec_rv64_t* dyn, uintptr_t addr, uintptr_t ip, int ni if(!MODREG) SMWRITE2(); break; + + case 0x14: + INST_NAME("UNPCKLPS Gx,Ex"); + nextop = F8; + GETGX(x1); + GETEX(x2, 0); + LWU(x5, gback, 1*4); + LWU(x3, wback, fixedaddress+0); + LWU(x4, wback, fixedaddress+4); + SW(x4, gback, 3*4); + SW(x5, gback, 2*4); + SW(x3, gback, 1*4); + break; + case 0x15: + INST_NAME("UNPCKHPS Gx,Ex"); + nextop = F8; + GETGX(x1); + GETEX(x2, 0); + LWU(x3, wback, fixedaddress+2*4); + LWU(x4, wback, fixedaddress+3*4); + LWU(x5, gback, 2*4); + LWU(x6, gback, 3*4); + SW(x5, gback, 0*4); + SW(x3, gback, 1*4); + SW(x6, gback, 2*4); + SW(x4, gback, 3*4); + break; case 0x16: nextop = F8; if(MODREG) { |