diff options
Diffstat (limited to 'sysdeps/powerpc/submul_1.S')
-rw-r--r-- | sysdeps/powerpc/submul_1.S | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/sysdeps/powerpc/submul_1.S b/sysdeps/powerpc/submul_1.S index 80da8ec8c1..d9472dddbe 100644 --- a/sysdeps/powerpc/submul_1.S +++ b/sysdeps/powerpc/submul_1.S @@ -1,5 +1,5 @@ /* Multiply a limb vector by a single limb, for PowerPC. - Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc. + Copyright (C) 1993, 1994, 1995, 1997, 1999 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -24,29 +24,29 @@ Calculate res-s1*s2 and put result back in res; return carry. */ ENTRY(__mpn_submul_1) - mtctr %r5 - - lwz %r0,0(%r4) - mullw %r7,%r0,%r6 - mulhwu %r10,%r0,%r6 - lwz %r9,0(%r3) - subf %r8,%r7,%r9 - addc %r7,%r7,%r8 # invert cy (r7 is junk) - addi %r3,%r3,-4 # adjust res_ptr + mtctr r5 + + lwz r0,0(r4) + mullw r7,r0,r6 + mulhwu r10,r0,r6 + lwz r9,0(r3) + subf r8,r7,r9 + addc r7,r7,r8 # invert cy (r7 is junk) + addi r3,r3,-4 # adjust res_ptr bdz 1f -0: lwzu %r0,4(%r4) - stwu %r8,4(%r3) - mullw %r8,%r0,%r6 - adde %r7,%r8,%r10 - mulhwu %r10,%r0,%r6 - lwz %r9,4(%r3) - addze %r10,%r10 - subf %r8,%r7,%r9 - addc %r7,%r7,%r8 # invert cy (r7 is junk) +0: lwzu r0,4(r4) + stwu r8,4(r3) + mullw r8,r0,r6 + adde r7,r8,r10 + mulhwu r10,r0,r6 + lwz r9,4(r3) + addze r10,r10 + subf r8,r7,r9 + addc r7,r7,r8 # invert cy (r7 is junk) bdnz 0b -1: stw %r8,4(%r3) - addze %r3,%r10 +1: stw r8,4(r3) + addze r3,r10 blr END(__mpn_submul_1) |