From 4141748f9a7b8088cd2f72d6e66363d682894f22 Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sun, 19 May 2024 14:15:30 +0200 Subject: [PATCH] [DYNAREC] Fixed previous commit --- src/dynarec/dynarec_arm_00.c | 4 ++-- src/dynarec/dynarec_arm_0f.c | 2 +- src/dynarec/dynarec_arm_66.c | 4 ++-- src/dynarec/dynarec_arm_660f.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/dynarec/dynarec_arm_00.c b/src/dynarec/dynarec_arm_00.c index 9b40cba6d..efe419fbd 100755 --- a/src/dynarec/dynarec_arm_00.c +++ b/src/dynarec/dynarec_arm_00.c @@ -1239,7 +1239,7 @@ uintptr_t dynarec00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, break; case 0x9D: INST_NAME("POPF"); - SETFLAGS(X_ALL, SF_SET_DF); + SETFLAGS(X_ALL, SF_SET_NODF); POP1(xFlags); MOV32(x1, 0x3F7FD7); AND_REG_LSL_IMM5(xFlags, xFlags, x1, 0); @@ -1765,7 +1765,7 @@ uintptr_t dynarec00(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, case 0xCF: INST_NAME("IRET"); - SETFLAGS(X_ALL, SF_SET_DF); // Not a hack, EFLAGS are restored + SETFLAGS(X_ALL, SF_SET_NODF); // Not a hack, EFLAGS are restored BARRIER(BARRIER_FLOAT); iret_to_epilog(dyn, ninst); *need_epilog = 0; diff --git a/src/dynarec/dynarec_arm_0f.c b/src/dynarec/dynarec_arm_0f.c index 3903d70b7..3f858d5f7 100755 --- a/src/dynarec/dynarec_arm_0f.c +++ b/src/dynarec/dynarec_arm_0f.c @@ -444,7 +444,7 @@ uintptr_t dynarec0F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, // no special check... case 0x2F: if(opcode==0x2F) {INST_NAME("COMISS Gx, Ex");} else {INST_NAME("UCOMISS Gx, Ex");} - SETFLAGS(X_ALL, SF_SET_DF); + SETFLAGS(X_ALL, SF_SET_NODF); nextop = F8; GETGX(v0, 0); if(MODREG) { diff --git a/src/dynarec/dynarec_arm_66.c b/src/dynarec/dynarec_arm_66.c index 578812eec..8a357e035 100755 --- a/src/dynarec/dynarec_arm_66.c +++ b/src/dynarec/dynarec_arm_66.c @@ -637,7 +637,7 @@ uintptr_t dynarec66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, break; case 0x9D: INST_NAME("POPF (16b)"); - SETFLAGS(X_ALL, SF_SET_DF); // lower 16bits is all flags handled in dynarec + SETFLAGS(X_ALL, SF_SET_NODF); // lower 16bits is all flags handled in dynarec LDRHA_IMM8(x2, xESP, 2); MOV32(x1, 0x7FD7); AND_REG_LSL_IMM5(x2, x2, x1, 0); @@ -1161,7 +1161,7 @@ uintptr_t dynarec66(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int ninst, INST_NAME("DIV Ew"); if(arm_div) { GETEW(x1); - SETFLAGS(X_ALL, SF_SET_DF); + SETFLAGS(X_ALL, SF_SET_NODF); SET_DFNONE(x2); UXTH(x2, xEAX, 0); ORR_REG_LSL_IMM5(x2, x2, xEDX, 16); diff --git a/src/dynarec/dynarec_arm_660f.c b/src/dynarec/dynarec_arm_660f.c index 7c486d0b1..82416ad5f 100755 --- a/src/dynarec/dynarec_arm_660f.c +++ b/src/dynarec/dynarec_arm_660f.c @@ -276,7 +276,7 @@ uintptr_t dynarec660F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int nins // no special check... case 0x2F: if(opcode==0x2F) {INST_NAME("COMISD Gx, Ex");} else {INST_NAME("UCOMISD Gx, Ex");} - SETFLAGS(X_ALL, SF_SET_DF); + SETFLAGS(X_ALL, SF_SET_NODF); nextop = F8; gd = (nextop&0x38)>>3; v0 = sse_get_reg(dyn, ninst, x1, gd, 0);