diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/dynarec/dynarec_arm64_0f.c | 8 | ||||
| -rw-r--r-- | src/emu/x64run0f.c | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/dynarec/dynarec_arm64_0f.c b/src/dynarec/dynarec_arm64_0f.c index 5d465fb7..be7f194c 100755 --- a/src/dynarec/dynarec_arm64_0f.c +++ b/src/dynarec/dynarec_arm64_0f.c @@ -1341,7 +1341,13 @@ uintptr_t dynarec64_0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nin GETEM(q1, 0); UQSUB_16(q0, q0, q1); break; - + case 0xDA: + INST_NAME("PMINUB Gm, Em"); + nextop = F8; + GETGM(d0); + GETEM(d1, 0); + UMIN_8(d0, d0, d1); + break; case 0xDB: INST_NAME("PAND Gm, Em"); nextop = F8; diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index 6037f073..6ac0f0a6 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -1276,7 +1276,13 @@ int Run0F(x64emu_t *emu, rex_t rex) GM->uw[i] = (tmp32s < 0) ? 0 : tmp32s; } break; - + case 0xDA: /* PMINUB Gm,Em */ + nextop = F8; + GETEM(0); + GETGM; + for (int i=0; i<8; ++i) + GM->ub[i] = (GM->ub[i]<EM->ub[i])?GM->ub[i]:EM->ub[i]; + break; case 0xDB: /* PAND Gm,Em */ nextop = F8; GETEM(0); |