mirror of
https://github.com/LuaJIT/LuaJIT.git
synced 2025-02-07 23:24:09 +00:00
ARM: Fix code generation for integer math.min/math.max.
This commit is contained in:
parent
ee748dd029
commit
41738e371a
@ -1642,13 +1642,13 @@ static void asm_intmin_max(ASMState *as, IRIns *ir, int cc)
|
||||
kcmp = 0;
|
||||
right = ra_alloc1(as, ir->op2, rset_exclude(RSET_GPR, left));
|
||||
}
|
||||
if (dest != right) {
|
||||
if (kmov || dest != right) {
|
||||
emit_dm(as, ARMF_CC(ARMI_MOV, cc)^kmov, dest, right);
|
||||
cc ^= 1; /* Must use opposite conditions for paired moves. */
|
||||
} else {
|
||||
cc ^= (CC_LT^CC_GT); /* Otherwise may swap CC_LT <-> CC_GT. */
|
||||
}
|
||||
if (dest != left) emit_dm(as, ARMF_CC(ARMI_MOV, cc)^kmov, dest, left);
|
||||
if (dest != left) emit_dm(as, ARMF_CC(ARMI_MOV, cc), dest, left);
|
||||
emit_nm(as, ARMI_CMP^kcmp, left, right);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user