From fceaac48a6fa5e3d54ed05fee33257752fcc8303 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Tue, 11 Apr 2023 17:49:49 +0000 Subject: [RV64_DYNAREC] Added 0F 14/15 opcodes --- src/dynarec/rv64/dynarec_rv64_0f.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src') 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) { -- cgit 1.4.1