diff options
| author | Yang Liu <liuyang22@iscas.ac.cn> | 2025-10-13 16:19:01 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-13 10:19:01 +0200 |
| commit | 80610037cd41b1a613b08c74e17b43af9fd8d961 (patch) | |
| tree | 39f9f976223d5b6868c38b1e9160696b59daeb9a | |
| parent | bbd22d76bed388be541dd160db15161300ea6306 (diff) | |
| download | box64-80610037cd41b1a613b08c74e17b43af9fd8d961.tar.gz box64-80610037cd41b1a613b08c74e17b43af9fd8d961.zip | |
[LA64_DYNAREC] Fixed some oversized load (#3065)
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_0f.c | 6 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_avx_66_0f38.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/dynarec/la64/dynarec_la64_0f.c b/src/dynarec/la64/dynarec_la64_0f.c index 39f1ac74..c0609dec 100644 --- a/src/dynarec/la64/dynarec_la64_0f.c +++ b/src/dynarec/la64/dynarec_la64_0f.c @@ -166,8 +166,10 @@ uintptr_t dynarec64_0F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni INST_NAME("MOVLPS Gx, Ex"); GETGX(v0, 1); SMREAD(); - GETEX(q1, 0, 0); - VEXTRINS_D(v0, q1, 0); + v1 = fpu_get_scratch(dyn); + addr = geted(dyn, addr, ninst, nextop, &ed, x2, x3, &fixedaddress, rex, NULL, 1, 0); + FLD_D(v1, ed, fixedaddress); + VEXTRINS_D(v0, v1, 0); } break; case 0x13: diff --git a/src/dynarec/la64/dynarec_la64_avx_66_0f38.c b/src/dynarec/la64/dynarec_la64_avx_66_0f38.c index 0a04c586..25fa1ca0 100644 --- a/src/dynarec/la64/dynarec_la64_avx_66_0f38.c +++ b/src/dynarec/la64/dynarec_la64_avx_66_0f38.c @@ -330,7 +330,8 @@ uintptr_t dynarec64_AVX_66_0F38(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t i case 0x1A: INST_NAME("VBROADCASTF128 Gx, Ex"); nextop = F8; - GETGY_empty_EY_xy(q0, q2, 0); + GETEYx(q2, 0, 0); + GETGYxy_empty(q0); XVREPLVE0_Q(q0, q2); break; case 0x1C: @@ -787,7 +788,8 @@ uintptr_t dynarec64_AVX_66_0F38(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t i case 0x5A: INST_NAME("VBROADCASTI128 Gx, Ex"); nextop = F8; - GETGY_empty_EY_xy(q0, q2, 0); + GETEYx(q2, 0, 0); + GETGYxy_empty(q0); XVREPLVE0_Q(q0, q2); break; case 0x78: |