mirror of
https://github.com/ptitSeb/box64.git
synced 2025-05-08 16:18:30 +08:00
[ARM64_DYNAREC] Small rework on VFMAD*S[S/D] opcodes
This commit is contained in:
parent
f5e93a14a2
commit
56982e4c05
@ -1547,12 +1547,13 @@ uintptr_t dynarec64_AVX_66_0F38(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip
|
||||
nextop = F8;
|
||||
GETGX(v0, 1);
|
||||
GETVX(v2, 0);
|
||||
if(rex.w) {GETEXSD(v1, 0, 0);} else {GETEXSS(v1, 0, 0);}
|
||||
q0 = fpu_get_scratch(dyn, ninst);
|
||||
if(rex.w) {
|
||||
GETEXSD(v1, 0, 0);
|
||||
FMADD_64(q0, v2, v1, v0);
|
||||
VMOVeD(v0, 0, q0, 0);
|
||||
} else {
|
||||
GETEXSS(v1, 0, 0);
|
||||
FMADD_32(q0, v2, v1, v0);
|
||||
VMOVeS(v0, 0, q0, 0);
|
||||
}
|
||||
@ -1670,12 +1671,13 @@ uintptr_t dynarec64_AVX_66_0F38(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip
|
||||
nextop = F8;
|
||||
GETGX(v0, 1);
|
||||
GETVX(v2, 0);
|
||||
if(rex.w) {GETEXSD(v1, 0, 0);} else {GETEXSS(v1, 0, 0);}
|
||||
q0 = fpu_get_scratch(dyn, ninst);
|
||||
if(rex.w) {
|
||||
GETEXSD(v1, 0, 0);
|
||||
FMADD_64(q0, v1, v0, v2);
|
||||
VMOVeD(v0, 0, q0, 0);
|
||||
} else {
|
||||
GETEXSS(v1, 0, 0);
|
||||
FMADD_32(q0, v1, v0, v2);
|
||||
VMOVeS(v0, 0, q0, 0);
|
||||
}
|
||||
@ -1842,12 +1844,13 @@ uintptr_t dynarec64_AVX_66_0F38(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip
|
||||
nextop = F8;
|
||||
GETGX(v0, 1);
|
||||
GETVX(v2, 0);
|
||||
if(rex.w) {GETEXSD(v1, 0, 0);} else {GETEXSS(v1, 0, 0);}
|
||||
q0 = fpu_get_scratch(dyn, ninst);
|
||||
if(rex.w) {
|
||||
GETEXSD(v1, 0, 0);
|
||||
FMADD_64(q0, v0, v1, v2);
|
||||
VMOVeD(v0, 0, q0, 0);
|
||||
} else {
|
||||
GETEXSS(v1, 0, 0);
|
||||
FMADD_32(q0, v0, v1, v2);
|
||||
VMOVeS(v0, 0, q0, 0);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user