diff options
Diffstat (limited to 'src')
| -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: |