From 14ae5ba40c3217f7410c377bf36e21509b01eb8f Mon Sep 17 00:00:00 2001 From: xleroy Date: Wed, 3 Jul 2013 11:28:17 +0000 Subject: powerpc: faster implementation of long division modeled on that for IA32 test: add one test (2^64-1) / (2^32+3) to exercise a special case of this long division. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2288 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- runtime/powerpc/i64_udiv.s | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'runtime/powerpc/i64_udiv.s') diff --git a/runtime/powerpc/i64_udiv.s b/runtime/powerpc/i64_udiv.s index 7bca760e..9443d59b 100644 --- a/runtime/powerpc/i64_udiv.s +++ b/runtime/powerpc/i64_udiv.s @@ -41,11 +41,13 @@ .balign 16 .globl __i64_udiv __i64_udiv: - mflr r11 # save return address in r11 + mflr r0 + stw r0, 4(r1) # save return address in caller's frame bl __i64_udivmod # unsigned divide - mtlr r11 # restore return address - mr r3, r7 # R = quotient - mr r4, r8 + lwz r0, 4(r1) + mtlr r0 # restore return address + mr r3, r5 # result = quotient + mr r4, r6 blr .type __i64_udiv, @function .size __i64_udiv, .-__i64_udiv -- cgit