diff options
Diffstat (limited to 'src/vm_ppc.dasc')
-rw-r--r-- | src/vm_ppc.dasc | 56 |
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 | |//----------------------------------------------------------------------- |