diff options
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_00.c | 9 | ||||
| -rw-r--r-- | src/dynarec/la64/dynarec_la64_660f.c | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/dynarec/la64/dynarec_la64_00.c b/src/dynarec/la64/dynarec_la64_00.c index 22310ce1..e428ee3f 100644 --- a/src/dynarec/la64/dynarec_la64_00.c +++ b/src/dynarec/la64/dynarec_la64_00.c @@ -2477,6 +2477,15 @@ uintptr_t dynarec64_00(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni DEFAULT; } break; + case 0xF8: + INST_NAME("CLC"); + SETFLAGS(X_CF, SF_SUBSET); + SET_DFNONE(); + if (la64_lbt) + X64_SET_EFLAGS(xZR, X_CF); + else + BSTRINS_D(xFlags, xZR, F_CF, F_CF); + break; case 0xFC: INST_NAME("CLD"); BSTRINS_D(xFlags, xZR, F_DF, F_DF); diff --git a/src/dynarec/la64/dynarec_la64_660f.c b/src/dynarec/la64/dynarec_la64_660f.c index 2037e460..47f9d1c0 100644 --- a/src/dynarec/la64/dynarec_la64_660f.c +++ b/src/dynarec/la64/dynarec_la64_660f.c @@ -417,6 +417,13 @@ uintptr_t dynarec64_660F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int VEXTRINS_D(q0, v1, VEXTRINS_IMM_4_0(1, 0)); } break; + case 0x30: + INST_NAME("PMOVZXBW Gx, Ex"); + nextop = F8; + GETEX(q1, 0, 0); + GETGX_empty(q0); + VEXT2XV_HU_BU(q0, q1); + break; case 0x3A: INST_NAME("PMINUW Gx, Ex"); // SSE4 opcode! nextop = F8; |