diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-21 18:56:50 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-21 18:56:50 +0100 |
| commit | 0751aed1f040d5596d37966732bccccc7bef7b2f (patch) | |
| tree | 74ad027b093afee89ccc836b9b334648c33fbba6 /src | |
| parent | 4f2ed9ba621ff0d479523d5dabedbd4ab332533f (diff) | |
| download | box64-0751aed1f040d5596d37966732bccccc7bef7b2f.tar.gz box64-0751aed1f040d5596d37966732bccccc7bef7b2f.zip | |
[DYNAREC] Small optim on MOVD type SSE opcodes
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_660f.c | 4 | ||||
| -rwxr-xr-x | src/dynarec/dynarec_arm64_f20f.c | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/src/dynarec/dynarec_arm64_660f.c b/src/dynarec/dynarec_arm64_660f.c index 4ecb8f1c..de463681 100755 --- a/src/dynarec/dynarec_arm64_660f.c +++ b/src/dynarec/dynarec_arm64_660f.c @@ -135,10 +135,10 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n gd = ((nextop&0x38)>>3)+(rex.r<<3); GETED(0); v0 = sse_get_reg_empty(dyn, ninst, x1, gd); - VEORQ(v0, v0, v0); // RAZ vector if(rex.w) { - VMOVQDfrom(v0, 0, ed); + FMOVDx(v0, ed); } else { + VEORQ(v0, v0, v0); // RAZ vector VMOVQSfrom(v0, 0, ed); } break; diff --git a/src/dynarec/dynarec_arm64_f20f.c b/src/dynarec/dynarec_arm64_f20f.c index 23a23be4..906f8bc8 100755 --- a/src/dynarec/dynarec_arm64_f20f.c +++ b/src/dynarec/dynarec_arm64_f20f.c @@ -80,8 +80,7 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n v0 = sse_get_reg_empty(dyn, ninst, x1, gd); addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, 0xfff<<3, 7, rex, 0, 0); LDRx_U12(x2, ed, fixedaddress); - VEORQ(v0, v0, v0); - VMOVQDfrom(v0, 0, x2); + FMOVDx(v0, x2); // upper part reseted } break; case 0x11: |