summaryrefslogtreecommitdiff
path: root/src/vm_ppc.dasc
diff options
context:
space:
mode:
Diffstat (limited to 'src/vm_ppc.dasc')
-rw-r--r--src/vm_ppc.dasc56
1 files changed, 0 insertions, 56 deletions
diff --git a/src/vm_ppc.dasc b/src/vm_ppc.dasc
index d2d10b3e..bf46f694 100644
--- a/src/vm_ppc.dasc
+++ b/src/vm_ppc.dasc
@@ -2474,62 +2474,6 @@ static void build_subroutines(BuildCtx *ctx)
2474 | mcrxr cr0 // Clear SO for -2147483648 % -1 and return 0. 2474 | mcrxr cr0 // Clear SO for -2147483648 % -1 and return 0.
2475 | blr 2475 | blr
2476 | 2476 |
2477 |// Callable from C: double lj_vm_foldarith(double x, double y, int op)
2478 |// Compute x op y for basic arithmetic operators (+ - * / % ^ and unary -)
2479 |// and basic math functions. ORDER ARITH
2480 |->vm_foldarith:
2481 | cmplwi CARG1, 1
2482 | beq >1; bgt >2
2483 | fadd FARG1, FARG1, FARG2; blr
2484 |1:
2485 | fsub FARG1, FARG1, FARG2; blr
2486 |2:
2487 | cmplwi CARG1, 3; beq >1; bgt >2
2488 | fmul FARG1, FARG1, FARG2; blr
2489 |1:
2490 | fdiv FARG1, FARG1, FARG2; blr
2491 |2:
2492 | cmplwi CARG1, 5; beq >1; bgt >2
2493 | // NYI: Use internal implementation of floor and avoid spills.
2494 | stwu sp, -32(sp); stfd f14, 16(sp); stfd f15, 24(sp)
2495 | mflr r0
2496 | fmr f14, FARG1
2497 | fdiv FARG1, FARG1, FARG2
2498 | stw r0, 36(sp)
2499 | fmr f15, FARG2
2500 | bl extern floor
2501 | lwz r0, 36(sp)
2502 | fmul FARG1, FARG1, f15
2503 | mtlr r0
2504 | fsub FARG1, f14, FARG1
2505 | lfd f14, 16(sp); lfd f15, 24(sp); addi sp, sp, 32; blr
2506 |1:
2507 | b extern pow
2508 |2:
2509 | cmplwi CARG1, 7; beq >1; bgt >2
2510 | fneg FARG1, FARG1; blr
2511 |1:
2512 | fabs FARG1, FARG1; blr
2513 |2:
2514 |.if JIT
2515 | cmplwi CARG1, 9; beq >9; bgt >2
2516 | b extern atan2
2517 | // No support needed for IR_LDEXP.
2518 |2:
2519 | cmplwi CARG1, 11; bgt >9
2520 | fsub f0, FARG1, FARG2
2521 | beq >1
2522 | fsel FARG1, f0, FARG2, FARG1 // IR_MAX
2523 | blr
2524 |1:
2525 | fsel FARG1, f0, FARG1, FARG2 // IR_MIN
2526 | blr
2527 |9:
2528 | NYI // Bad op.
2529 |.else
2530 | NYI // Other operations only needed by JIT compiler.
2531 |.endif
2532 |
2533 |//----------------------------------------------------------------------- 2477 |//-----------------------------------------------------------------------
2534 |//-- Miscellaneous functions -------------------------------------------- 2478 |//-- Miscellaneous functions --------------------------------------------
2535 |//----------------------------------------------------------------------- 2479 |//-----------------------------------------------------------------------