diff options
author | Mike Pall <mike> | 2010-10-05 19:37:56 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2010-10-05 19:37:56 +0200 |
commit | 8f5efb2c436373680385bb246b860a1cddde5f22 (patch) | |
tree | 52e3972981c65091b4ec2d890d4b6ced169ade56 /src | |
parent | 793fb4a9ad8bde602f06b0aaf4247aa6bf541211 (diff) | |
download | luajit-8f5efb2c436373680385bb246b860a1cddde5f22.tar.gz luajit-8f5efb2c436373680385bb246b860a1cddde5f22.tar.bz2 luajit-8f5efb2c436373680385bb246b860a1cddde5f22.zip |
PPC: Use own implementation for math.floor/ceil() fast functions.
Diffstat (limited to 'src')
-rw-r--r-- | src/buildvm_ppc.dasc | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/buildvm_ppc.dasc b/src/buildvm_ppc.dasc index 373492e2..d36cdeda 100644 --- a/src/buildvm_ppc.dasc +++ b/src/buildvm_ppc.dasc | |||
@@ -1267,8 +1267,23 @@ static void build_subroutines(BuildCtx *ctx) | |||
1267 | | b ->fff_restv | 1267 | | b ->fff_restv |
1268 | |.endmacro | 1268 | |.endmacro |
1269 | | | 1269 | | |
1270 | | math_extern floor | 1270 | |.macro math_round, func |
1271 | | math_extern ceil | 1271 | | .ffunc math_ .. func |
1272 | | cmplwi NARGS8:RC, 8 | ||
1273 | | evldd CARG2, 0(BASE) | ||
1274 | | blt ->fff_fallback | ||
1275 | | checknum CARG2 | ||
1276 | | evmergehi CARG1, CARG2, CARG2 | ||
1277 | | checkfail ->fff_fallback | ||
1278 | | lwz PC, FRAME_PC(BASE) | ||
1279 | | bl ->vm_..func.._hilo; | ||
1280 | | la RA, -8(BASE) | ||
1281 | | evstdd CRET2, 0(RA) | ||
1282 | | b ->fff_res1 | ||
1283 | |.endmacro | ||
1284 | | | ||
1285 | | math_round floor | ||
1286 | | math_round ceil | ||
1272 | | | 1287 | | |
1273 | | math_extern sqrt | 1288 | | math_extern sqrt |
1274 | | math_extern log | 1289 | | math_extern log |