Procházet zdrojové kódy

ARM: Fix calls to hard-float floor/ceil/trunc.

Mike Pall před 13 roky
rodič
revize
f58a84d0bc
1 změnil soubory, kde provedl 2 přidání a 1 odebrání
  1. 2 1
      src/lj_asm_arm.h

+ 2 - 1
src/lj_asm_arm.h

@@ -1560,8 +1560,9 @@ static void asm_callid(ASMState *as, IRIns *ir, IRCallID id)
 static void asm_callround(ASMState *as, IRIns *ir, int id)
 {
   /* The modified regs must match with the *.dasc implementation. */
-  RegSet drop = RID2RSET(RID_D1)|RID2RSET(RID_D2)|
+  RegSet drop = RID2RSET(RID_D0)|RID2RSET(RID_D1)|RID2RSET(RID_D2)|
 		RID2RSET(RID_R0)|RID2RSET(RID_R1);
+  if (ra_hasreg(ir->r)) rset_clear(drop, ir->r);
   ra_evictset(as, drop);
   ra_destreg(as, ir, RID_FPRET);
   emit_call(as, id == IRFPM_FLOOR ? (void *)lj_vm_floor_hf :