diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_660f.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 408ebade..b6450d96 100644 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -2751,6 +2751,16 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n } break; + case 0xD0: + INST_NAME("ADDSUBPD Gx,Ex"); + nextop = F8; + GETGX(q0, 1); + GETEX(q1, 0, 0); + v0 = fpu_get_scratch(dyn, ninst); + VFSUBQD(v0, q0, q1); + VFADDQD(q0, q0, q1); + VMOVeD(q0, 0, v0, 0); + break; case 0xD1: INST_NAME("PSRLW Gx,Ex"); nextop = F8; @@ -2765,16 +2775,6 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n VDUPQ_16(v0, v0, 0); // only the low 8bits will be used anyway USHLQ_16(q0, q0, v0); // SHR x8 break; - case 0xD0: - INST_NAME("ADDSUBPD Gx,Ex"); - nextop = F8; - GETGX(q0, 1); - GETEX(q1, 0, 0); - v0 = fpu_get_scratch(dyn, ninst); - VFSUBQD(v0, q0, q1); - VFADDQD(q0, q0, q1); - VMOVeD(q0, 0, v0, 0); - break; case 0xD2: INST_NAME("PSRLD Gx,Ex"); nextop = F8; |