diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-04-20 09:41:42 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-04-20 09:41:42 +0000 |
commit | 1aa06c816cc48767db0546b1671f7a3c2a55d4c5 (patch) | |
tree | 2dc47eb0f79ed570d3392fd195c4a485e2cbd2cd /runtime/powerpc | |
parent | 34d015fde1fa0cf02a18a07fc362a75617d94e54 (diff) |
Remove __i64_{neg,add,sub,mul}, now handled directly by the compiler.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2204 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'runtime/powerpc')
-rw-r--r-- | runtime/powerpc/int64.s | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/runtime/powerpc/int64.s b/runtime/powerpc/int64.s index 34b65b5..247e3cd 100644 --- a/runtime/powerpc/int64.s +++ b/runtime/powerpc/int64.s @@ -45,56 +45,6 @@ .text -### Opposite - - .balign 16 - .globl __i64_neg -__i64_neg: - subfic r4, r4, 0 # RL = -XL and set borrow iff XL != 0 - subfze r3, r3 # RH = -XH - borrow - blr - .type __i64_neg, @function - .size __i64_neg, .-__i64_neg - -### Addition - - .balign 16 - .globl __i64_add -__i64_add: - addc r4, r4, r6 # RL = XL + YL and set carry if overflow - adde r3, r3, r5 # RH = XH + YH + carry - blr - .type __i64_add, @function - .size __i64_add, .-__i64_add - -### Subtraction - - .balign 16 - .globl __i64_sub -__i64_sub: - subfc r4, r6, r4 # RL = XL - YL and set borrow if underflow - subfe r3, r5, r3 # RH = XH - YH - borrow - blr - .type __i64_sub, @function - .size __i64_sub, .-__i64_sub - -### Multiplication - - .balign 16 - .globl __i64_mul -__i64_mul: - # Form intermediate products - mulhwu r7, r4, r6 # r7 = high half of XL * YL - mullw r8, r3, r6 # r8 = low half of XH * YL - mullw r9, r4, r5 # r9 = low half of XL * YH - mullw r4, r4, r6 # r4 = low half of XL * YL = low half of result - # Reconstruct high half of result - add r3, r7, r8 - add r3, r3, r9 - blr - .type __i64_mul, @function - .size __i64_mul, .-__i64_mul - ### Helper function for division and modulus. Not exported. # Input: numerator N in (r3,r4), divisor D in (r5,r6) # Output: quotient Q in (r7,r8), remainder R in (r3,r4) |