[LA64_DYNAREC] Added 2 more opcodes (#1680)

This commit is contained in:
Yang Liu 2024-07-16 05:44:56 +08:00 committed by GitHub
parent b7ae79514f
commit b52ff061b4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 0 deletions

View File

@ -2003,6 +2003,13 @@ uintptr_t dynarec64_00(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int ni
UFLAG_RES(x1);
BSTRINS_D(xRAX, x1, 15, 0);
break;
case 6:
INST_NAME("DIV Eb");
MESSAGE(LOG_DUMP, "Need Optimization\n");
SETFLAGS(X_ALL, SF_SET_DF);
GETEB(x1, 0);
CALL(div8, -1);
break;
default:
DEFAULT;
}

View File

@ -51,6 +51,20 @@ uintptr_t dynarec64_660F(dynarec_la64_t* dyn, uintptr_t addr, uintptr_t ip, int
MAYUSE(j64);
switch (opcode) {
case 0x10:
INST_NAME("MOVUPD Gx,Ex");
nextop = F8;
GETG;
v0 = sse_get_reg_empty(dyn, ninst, x1, gd);
if (MODREG) {
v1 = sse_get_reg(dyn, ninst, x1, (nextop & 7) + (rex.b << 3), 0);
VOR_V(v0, v1, v1);
} else {
SMREAD();
addr = geted(dyn, addr, ninst, nextop, &ed, x2, x3, &fixedaddress, rex, NULL, 1, 0);
VLD(v0, ed, fixedaddress);
}
break;
case 0x11:
INST_NAME("MOVUPD Ex,Gx");
nextop = F8;