diff options
author | Mike Pall <mike> | 2012-08-19 22:37:43 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-08-19 22:37:43 +0200 |
commit | af2cb0254217c2959da19cdfa382601b22eb3297 (patch) | |
tree | 2e22c91270c6a1abbf01f6621de009be9bbf9005 /src | |
parent | 1fef2df3e876a33c98afd38899bfa165ec2beaba (diff) | |
download | luajit-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.dasc | 4 |
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 |