Fix register hints for arithmetic helper functions.

This commit is contained in:
Mike Pall 2011-10-22 02:00:15 +02:00
parent c805a49d30
commit c01aaad890

View File

@ -1556,6 +1556,9 @@ static void asm_setup_regsp(ASMState *as)
if (inloop)
as->modset = RSET_SCRATCH;
break;
#if !LJ_TARGET_X86ORX64 && !LJ_SOFTFP
case IR_ATAN2: case IR_LDEXP:
#endif
case IR_POW:
if (!LJ_SOFTFP && irt_isnum(ir->t)) {
#if LJ_TARGET_X86ORX64
@ -1571,14 +1574,12 @@ static void asm_setup_regsp(ASMState *as)
}
/* fallthrough for integer POW */
case IR_DIV: case IR_MOD:
#if LJ_64 && LJ_HASFFI
if (!irt_isnum(ir->t)) {
ir->prev = REGSP_HINT(RID_RET);
if (inloop)
as->modset |= (RSET_SCRATCH & RSET_GPR);
continue;
}
#endif
break;
case IR_FPMATH:
#if LJ_TARGET_X86ORX64