]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
ARM: Fix hard-float lj_vm_trunc() (used by compiled math.modf).
authorMike Pall <mike>
Sun, 19 Aug 2012 20:37:43 +0000 (22:37 +0200)
committerMike Pall <mike>
Sun, 19 Aug 2012 20:37:43 +0000 (22:37 +0200)
src/vm_arm.dasc

index 355a53e683fa1ad5730797d33e97cfe5352b16da..b9193213747b5b75322979f8e5bbf8ae5fff2057 100644 (file)
@@ -2210,13 +2210,13 @@ static void build_subroutines(BuildCtx *ctx)
   |  vcmp.f64 d1, d2                   // |x| >= 2^52 or NaN?
   |  vmrs
   |.if "func" == "trunc"
-  |  vadd.f64 d0, d1, d2
   |  bxpl lr                           // Return argument unchanged.
+  |  vadd.f64 d0, d1, d2
   |  vsub.f64 d0, d0, d2               // (|x| + 2^52) - 2^52
   |  vldr d2, <9                       // +1.0
   |  vcmp.f64 d1, d0                   // |x| < result: subtract +1.0
   |  vmrs
-  |  vsubmi.f64 d0, d1, d2
+  |  vsubmi.f64 d0, d0, d2
   |  cmp CARG2, #0
   |  vnegmi.f64 d0, d0                 // Merge sign bit back in.
   |.else