diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-04-25 11:20:09 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-04-25 11:20:09 +0200 |
| commit | 9bb42fc5bf70394780eaf5a7e43bde90e882fe73 (patch) | |
| tree | eb22fb18c893888dfe5f1df661a088182282ec3b /src | |
| parent | 5d93fc58b30e4d3bbf4e35a4da98e4d9310a2b3a (diff) | |
| download | box64-9bb42fc5bf70394780eaf5a7e43bde90e882fe73.tar.gz box64-9bb42fc5bf70394780eaf5a7e43bde90e882fe73.zip | |
Small fixes for a few sse opcodes
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_0f.c | 6 | ||||
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_660f.c | 12 | ||||
| -rwxr-xr-x | src/dynarec/arm64/dynarec_arm64_f30f.c | 4 |
3 files changed, 11 insertions, 11 deletions
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); |