aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2012-08-19 22:37:43 +0200
committerMike Pall <mike>2012-08-19 22:37:43 +0200
commitaf2cb0254217c2959da19cdfa382601b22eb3297 (patch)
tree2e22c91270c6a1abbf01f6621de009be9bbf9005 /src
parent1fef2df3e876a33c98afd38899bfa165ec2beaba (diff)
downloadluajit-af2cb0254217c2959da19cdfa382601b22eb3297.tar.gz
luajit-af2cb0254217c2959da19cdfa382601b22eb3297.tar.bz2
luajit-af2cb0254217c2959da19cdfa382601b22eb3297.zip
ARM: Fix hard-float lj_vm_trunc() (used by compiled math.modf).
Diffstat (limited to 'src')
-rw-r--r--src/vm_arm.dasc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/vm_arm.dasc b/src/vm_arm.dasc
index 355a53e6..b9193213 100644
--- a/src/vm_arm.dasc
+++ b/src/vm_arm.dasc
@@ -2210,13 +2210,13 @@ static void build_subroutines(BuildCtx *ctx)
2210 | vcmp.f64 d1, d2 // |x| >= 2^52 or NaN? 2210 | vcmp.f64 d1, d2 // |x| >= 2^52 or NaN?
2211 | vmrs 2211 | vmrs
2212 |.if "func" == "trunc" 2212 |.if "func" == "trunc"
2213 | vadd.f64 d0, d1, d2
2214 | bxpl lr // Return argument unchanged. 2213 | bxpl lr // Return argument unchanged.
2214 | vadd.f64 d0, d1, d2
2215 | vsub.f64 d0, d0, d2 // (|x| + 2^52) - 2^52 2215 | vsub.f64 d0, d0, d2 // (|x| + 2^52) - 2^52
2216 | vldr d2, <9 // +1.0 2216 | vldr d2, <9 // +1.0
2217 | vcmp.f64 d1, d0 // |x| < result: subtract +1.0 2217 | vcmp.f64 d1, d0 // |x| < result: subtract +1.0
2218 | vmrs 2218 | vmrs
2219 | vsubmi.f64 d0, d1, d2 2219 | vsubmi.f64 d0, d0, d2
2220 | cmp CARG2, #0 2220 | cmp CARG2, #0
2221 | vnegmi.f64 d0, d0 // Merge sign bit back in. 2221 | vnegmi.f64 d0, d0 // Merge sign bit back in.
2222 |.else 2222 |.else