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 |
