From 9bb42fc5bf70394780eaf5a7e43bde90e882fe73 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Mon, 25 Apr 2022 11:20:09 +0200 Subject: Small fixes for a few sse opcodes --- src/dynarec/arm64/dynarec_arm64_0f.c | 6 +++--- src/dynarec/arm64/dynarec_arm64_660f.c | 12 ++++++------ src/dynarec/arm64/dynarec_arm64_f30f.c | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/dynarec/arm64/dynarec_arm64_0f.c b/src/dynarec/arm64/dynarec_arm64_0f.c index 23ef668f..2b1926b3 100755 --- a/src/dynarec/arm64/dynarec_arm64_0f.c +++ b/src/dynarec/arm64/dynarec_arm64_0f.c @@ -834,7 +834,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } break; case 4: - INST_NAME("PSRAW Ex, Ib"); + INST_NAME("PSRAW Em, Ib"); GETEM(q0, 1); u8 = F8; if(u8>15) u8=15; @@ -846,7 +846,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin } break; case 6: - INST_NAME("PSLLW Ex, Ib"); + INST_NAME("PSLLW Em, Ib"); GETEM(q0, 1); u8 = F8; if(u8) { @@ -1856,7 +1856,7 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin break; case 0xF5: - INST_NAME("PMADDWD Gx, Ex"); + INST_NAME("PMADDWD Gm, Em"); nextop = F8; GETGM(v0); GETEM(v1, 0); diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 3e756a26..11e4d2be 100755 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -141,7 +141,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n GETGX(v0, 1); VMOVeD(v0, 0, v0, 1); if(MODREG) { - v1 = sse_get_reg(dyn, ninst, x1, (nextop&7)+(rex.b<<3), 1); + v1 = sse_get_reg(dyn, ninst, x1, (nextop&7)+(rex.b<<3), 0); VMOVeD(v0, 1, v1, 1); } else { addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, 0, 0, rex, 0, 0); @@ -443,7 +443,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n INST_NAME("PMINSD Gx, Ex"); // SSE4 opcode! nextop = F8; GETEX(q1, 0, 0); - GETGX(q0,1); + GETGX(q0, 1); SMINQ_32(q0, q0, q1); break; @@ -715,7 +715,7 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n case 0x54: INST_NAME("ANDPD Gx, Ex"); nextop = F8; - GETEX(q0, 0,0); + GETEX(q0, 0, 0); GETGX(v0, 1); VANDQ(v0, v0, q0); break; @@ -936,21 +936,21 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n INST_NAME("PUNPCKHBW Gx,Ex"); nextop = F8; GETGX(q0, 1); - GETEX(q1, 0, 1); + GETEX(q1, 0, 0); VZIP2Q_8(q0, q0, q1); break; case 0x69: INST_NAME("PUNPCKHWD Gx,Ex"); nextop = F8; GETGX(q0, 1); - GETEX(q1, 0, 1); + GETEX(q1, 0, 0); VZIP2Q_16(q0, q0, q1); break; case 0x6A: INST_NAME("PUNPCKHDQ Gx,Ex"); nextop = F8; GETGX(q0, 1); - GETEX(q1, 0, 1); + GETEX(q1, 0, 0); VZIP2Q_32(q0, q0, q1); break; case 0x6B: diff --git a/src/dynarec/arm64/dynarec_arm64_f30f.c b/src/dynarec/arm64/dynarec_arm64_f30f.c index d0996f6e..773555a7 100755 --- a/src/dynarec/arm64/dynarec_arm64_f30f.c +++ b/src/dynarec/arm64/dynarec_arm64_f30f.c @@ -83,9 +83,9 @@ uintptr_t dynarec64_F30F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n INST_NAME("MOVSS Ex, Gx"); nextop = F8; GETG; - v0 = sse_get_reg(dyn, ninst, x1, gd, 1); + v0 = sse_get_reg(dyn, ninst, x1, gd, 0); if(MODREG) { - q0 = sse_get_reg(dyn, ninst, x1, (nextop&7) + (rex.b<<3), 0); + q0 = sse_get_reg(dyn, ninst, x1, (nextop&7) + (rex.b<<3), 1); VMOVeS(q0, 0, v0, 0); } else { addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, 0xfff<<2, 3, rex, 0, 0); -- cgit 1.4.1