about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorYang Liu <liuyang22@iscas.ac.cn>2025-02-09 02:16:22 +0800
committerGitHub <noreply@github.com>2025-02-08 19:16:22 +0100
commit1a01adb2efae4510c1efe46311071a4a121b206a (patch)
tree8decdc84331a29f12924994c0c82fb2ed29fc550 /src
parent797731e9e25c656def00350643c3cfdc6dd8e4e6 (diff)
downloadbox64-1a01adb2efae4510c1efe46311071a4a121b206a.tar.gz
box64-1a01adb2efae4510c1efe46311071a4a121b206a.zip
[ARM64_DYNAREC] Minor simplifications with the usage of GETEX (#2332)
Diffstat (limited to 'src')
-rw-r--r--src/dynarec/arm64/dynarec_arm64_f20f.c16
1 files changed, 2 insertions, 14 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_f20f.c b/src/dynarec/arm64/dynarec_arm64_f20f.c
index e4a64507..b62fd4d9 100644
--- a/src/dynarec/arm64/dynarec_arm64_f20f.c
+++ b/src/dynarec/arm64/dynarec_arm64_f20f.c
@@ -405,26 +405,14 @@ uintptr_t dynarec64_F20F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
             INST_NAME("HADDPS Gx, Ex");

             nextop = F8;

             GETGX(v0, 1);

-            if(MODREG) {

-                v1 = sse_get_reg(dyn, ninst, x1, (nextop&7)+(rex.b<<3), 0);

-            } else {

-                addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 15, rex, NULL, 0, 0);

-                v1 = fpu_get_scratch(dyn, ninst);

-                VLD128(v1, ed, fixedaddress);

-            }

+            GETEX(v1, 0, 1);

             VFADDPQS(v0, v0, v1);

             break;

         case 0x7D:

             INST_NAME("HSUBPS Gx, Ex");

             nextop = F8;

             GETGX(v0, 1);

-            if(MODREG) {

-                v1 = sse_get_reg(dyn, ninst, x1, (nextop&7)+(rex.b<<3), 0);

-            } else {

-                addr = geted(dyn, addr, ninst, nextop, &ed, x1, &fixedaddress, &unscaled, 0xfff<<4, 15, rex, NULL, 0, 0);

-                v1 = fpu_get_scratch(dyn, ninst);

-                VLD128(v1, ed, fixedaddress);

-            }

+            GETEX(v1, 0, 1);

             d0 = fpu_get_scratch(dyn, ninst);

             VUZP1Q_32(d0, v0, v1);

             VUZP2Q_32(v0, v0, v1);