diff options
Diffstat (limited to 'src/dynarec/arm64/dynarec_arm64_660f.c')
| -rw-r--r-- | src/dynarec/arm64/dynarec_arm64_660f.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/dynarec/arm64/dynarec_arm64_660f.c b/src/dynarec/arm64/dynarec_arm64_660f.c index 0013517e..89f38a12 100644 --- a/src/dynarec/arm64/dynarec_arm64_660f.c +++ b/src/dynarec/arm64/dynarec_arm64_660f.c @@ -963,7 +963,20 @@ uintptr_t dynarec64_660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n VMOVeS(q0, i, q1, i); } break; - + case 0x0D: + INST_NAME("PBLENDPD Gx, Ex, Ib"); + nextop = F8; + GETGX(q0, 1); + GETEX(q1, 0, 1); + u8 = F8&0b11; + if(u8==0b01) { + VMOVeD(q0, 0, q1, 0); + } else if(u8==0b10) { + VMOVeD(q0, 1, q1, 1); + } else if(u8==0b11) { + VMOVQ(q0, q1); + } + break; case 0x0E: INST_NAME("PBLENDW Gx, Ex, Ib"); nextop = F8; |