[BACK]Return to submul_1.asm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpn / powerpc32

Diff for /OpenXM_contrib/gmp/mpn/powerpc32/Attic/submul_1.asm between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2000/09/09 14:12:38 version 1.1.1.2, 2003/08/25 16:06:24
Line 1 
Line 1 
 dnl PowerPC-32 mpn_submul_1 -- Multiply a limb vector with a limb and subtract  dnl PowerPC-32 mpn_submul_1 -- Multiply a limb vector with a limb and subtract
 dnl the result from a second limb vector.  dnl the result from a second limb vector.
   
 dnl Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.  dnl Copyright 1995, 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
   
 dnl This file is part of the GNU MP Library.  dnl This file is part of the GNU MP Library.
   
Line 35  include(`../config.m4')
Line 35  include(`../config.m4')
 ASM_START()  ASM_START()
 PROLOGUE(mpn_submul_1)  PROLOGUE(mpn_submul_1)
         cmpi    cr0,r5,9        C more than 9 limbs?          cmpi    cr0,r5,9        C more than 9 limbs?
         bgt     cr0,.Lbig       C branch if more than 9 limbs          bgt     cr0,L(big)      C branch if more than 9 limbs
   
         mtctr   r5          mtctr   r5
         lwz     r0,0(r4)          lwz     r0,0(r4)
Line 45  PROLOGUE(mpn_submul_1)
Line 45  PROLOGUE(mpn_submul_1)
         subfc   r8,r7,r9          subfc   r8,r7,r9
         addc    r7,r7,r8        C invert cy (r7 is junk)          addc    r7,r7,r8        C invert cy (r7 is junk)
         addi    r3,r3,-4          addi    r3,r3,-4
         bdz     .Lend          bdz     L(end)
 .Lloop:  L(loop):
         lwzu    r0,4(r4)          lwzu    r0,4(r4)
         stwu    r8,4(r3)          stwu    r8,4(r3)
         mullw   r8,r0,r6          mullw   r8,r0,r6
Line 56  PROLOGUE(mpn_submul_1)
Line 56  PROLOGUE(mpn_submul_1)
         addze   r10,r10          addze   r10,r10
         subfc   r8,r7,r9          subfc   r8,r7,r9
         addc    r7,r7,r8        C invert cy (r7 is junk)          addc    r7,r7,r8        C invert cy (r7 is junk)
         bdnz    .Lloop          bdnz    L(loop)
 .Lend:  stw     r8,4(r3)  L(end): stw     r8,4(r3)
         addze   r3,r10          addze   r3,r10
         blr          blr
   
 .Lbig:  stmw    r30,-32(r1)  L(big): stmw    r30,-32(r1)
         addi    r5,r5,-1          addi    r5,r5,-1
         srwi    r0,r5,2          srwi    r0,r5,2
         mtctr   r0          mtctr   r0
Line 74  PROLOGUE(mpn_submul_1)
Line 74  PROLOGUE(mpn_submul_1)
         addc    r8,r8,r7          addc    r8,r8,r7
         stw     r7,0(r3)          stw     r7,0(r3)
   
 .LloopU:  L(loopU):
         lwz     r7,4(r4)          lwz     r7,4(r4)
         lwz     r12,8(r4)          lwz     r12,8(r4)
         lwz     r30,12(r4)          lwz     r30,12(r4)
Line 106  PROLOGUE(mpn_submul_1)
Line 106  PROLOGUE(mpn_submul_1)
         stwu    r31,16(r3)          stwu    r31,16(r3)
         subfe   r11,r11,r11     C invert ...          subfe   r11,r11,r11     C invert ...
         addic   r11,r11,1       C ... carry          addic   r11,r11,1       C ... carry
         bdnz    .LloopU          bdnz    L(loopU)
   
         andi.   r31,r5,3          andi.   r31,r5,3
         mtctr   r31          mtctr   r31
         beq     cr0,.Lendx          beq     cr0,L(endx)
   
 .LloopE:  L(loopE):
         lwzu    r7,4(r4)          lwzu    r7,4(r4)
         mullw   r8,r7,r6          mullw   r8,r7,r6
         adde    r8,r8,r0        C add cy_limb          adde    r8,r8,r0        C add cy_limb
Line 122  PROLOGUE(mpn_submul_1)
Line 122  PROLOGUE(mpn_submul_1)
         subfc   r7,r8,r7          subfc   r7,r8,r7
         addc    r8,r8,r7          addc    r8,r8,r7
         stwu    r7,4(r3)          stwu    r7,4(r3)
         bdnz    .LloopE          bdnz    L(loopE)
 .Lendx:  L(endx):
         addze   r3,r0          addze   r3,r0
         lmw     r30,-32(r1)          lmw     r30,-32(r1)
         blr          blr

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>