Skip to content

Commit

Permalink
[ARM64_DYNAREC] Fixed and improved flags for F3 0F B8 opcode
Browse files Browse the repository at this point in the history
  • Loading branch information
ptitSeb committed Dec 28, 2024
1 parent c0829b8 commit 4aaa0b5
Showing 1 changed file with 12 additions and 4 deletions.
16 changes: 12 additions & 4 deletions src/dynarec/arm64/dynarec_arm64_f30f.c
Original file line number Diff line number Diff line change
Expand Up @@ -480,10 +480,18 @@ uintptr_t dynarec64_F30F(dynarec_arm_t* dyn, uintptr_t addr, uintptr_t ip, int n
UADDLV_8(v1, v1);
VMOVQDto(gd, v1, 0);
IFX(X_ALL) {
MOV32w(x1, (1<<F_OF) | (1<<F_SF) | (1<<F_ZF) | (1<<F_AF) | (1<<F_CF) | (1<<F_PF));
BICw(xFlags, xFlags, x1);
CBNZx(gd, 4+4);
BFIw(xFlags, xFlags, F_ZF, 1);
IFX(X_AF|X_PF|X_SF|X_OF|X_CF) {
MOV32w(x1, (1<<F_OF) | (1<<F_SF) | (1<<F_ZF) | (1<<F_AF) | (1<<F_CF) | (1<<F_PF));
BICw(xFlags, xFlags, x1);
}
IFX(X_ZF) {
CMPSw_U12(gd, 0);
IFNATIVE(NF_EQ) {}
else {
CSETw(x1, cEQ);
BFIw(xFlags, x1, F_ZF, 1);
}
}
}
break;

Expand Down

0 comments on commit 4aaa0b5

Please sign in to comment.