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

Diff for /OpenXM_contrib/gmp/mpn/powerpc32/Attic/mul_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_mul_1 -- Multiply a limb vector with a limb and store  dnl PowerPC-32 mpn_mul_1 -- Multiply a limb vector with a limb and store
 dnl the result in a second limb vector.  dnl the result in a second limb vector.
   
 dnl Copyright (C) 1995, 1997, 2000 Free Software Foundation, Inc.  dnl Copyright 1995, 1997, 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 41  PROLOGUE(mpn_mul_1)
Line 41  PROLOGUE(mpn_mul_1)
         addic   r0,r0,0         C clear cy          addic   r0,r0,0         C clear cy
 C Start software pipeline  C Start software pipeline
         lwz     r8,0(r4)          lwz     r8,0(r4)
         bdz     .Lend3          bdz     L(end3)
         stmw    r30,-8(r1)      C save registers we are supposed to preserve  
         lwzu    r9,4(r4)          lwzu    r9,4(r4)
         mullw   r11,r8,r6          mullw   r11,r8,r6
         mulhwu  r0,r8,r6          mulhwu  r0,r8,r6
         bdz     .Lend1          bdz     L(end1)
 C Software pipelined main loop  C Software pipelined main loop
 .Loop:  lwz     r8,4(r4)  L(oop): lwz     r8,4(r4)
         mullw   r10,r9,r6          mullw   r10,r9,r6
         adde    r30,r11,r12          adde    r5,r11,r12
         mulhwu  r12,r9,r6          mulhwu  r12,r9,r6
         stw     r30,4(r3)          stw     r5,4(r3)
         bdz     .Lend2          bdz     L(end2)
         lwzu    r9,8(r4)          lwzu    r9,8(r4)
         mullw   r11,r8,r6          mullw   r11,r8,r6
         adde    r31,r10,r0          adde    r7,r10,r0
         mulhwu  r0,r8,r6          mulhwu  r0,r8,r6
         stwu    r31,8(r3)          stwu    r7,8(r3)
         bdnz    .Loop          bdnz    L(oop)
 C Finish software pipeline  C Finish software pipeline
 .Lend1: mullw   r10,r9,r6  L(end1):
         adde    r30,r11,r12          mullw   r10,r9,r6
           adde    r5,r11,r12
         mulhwu  r12,r9,r6          mulhwu  r12,r9,r6
         stw     r30,4(r3)          stw     r5,4(r3)
         adde    r31,r10,r0          adde    r7,r10,r0
         stwu    r31,8(r3)          stwu    r7,8(r3)
         addze   r3,r12          addze   r3,r12
         lmw     r30,-8(r1)      C restore registers from stack  
         blr          blr
 .Lend2: mullw   r11,r8,r6  L(end2):
         adde    r31,r10,r0          mullw   r11,r8,r6
           adde    r7,r10,r0
         mulhwu  r0,r8,r6          mulhwu  r0,r8,r6
         stwu    r31,8(r3)          stwu    r7,8(r3)
         adde    r30,r11,r12          adde    r5,r11,r12
         stw     r30,4(r3)          stw     r5,4(r3)
         addze   r3,r0          addze   r3,r0
         lmw     r30,-8(r1)      C restore registers from stack  
         blr          blr
 .Lend3: mullw   r11,r8,r6  L(end3):
           mullw   r11,r8,r6
         stw     r11,4(r3)          stw     r11,4(r3)
         mulhwu  r3,r8,r6          mulhwu  r3,r8,r6
         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>