diff options
| author | Leslie Zhai <zhaixiang@loongson.cn> | 2024-12-19 16:34:54 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-19 09:34:54 +0100 |
| commit | 4d377de5abe2ebf614b9fc41da9c54dd81a5ce20 (patch) | |
| tree | b445d09b14b7780a5c4218af4c304ba60008f0d5 | |
| parent | 956f6ffc1521be3b678aa3a3b45309ccb87a31f1 (diff) | |
| download | box64-4d377de5abe2ebf614b9fc41da9c54dd81a5ce20.tar.gz box64-4d377de5abe2ebf614b9fc41da9c54dd81a5ce20.zip | |
[LA64_DYNAREC] Added CLC and PMOVZXBW opcodes (#2172)
| -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; |