From 0751aed1f040d5596d37966732bccccc7bef7b2f Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 21 Mar 2021 18:56:50 +0100 Subject: [DYNAREC] Small optim on MOVD type SSE opcodes --- src/dynarec/dynarec_arm64_660f.c | 4 ++-- src/dynarec/dynarec_arm64_f20f.c | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'src') 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: -- cgit 1.4.1