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

Diff for /OpenXM_contrib/gmp/mpn/powerpc32/Attic/rshift.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_rshift -- Shift a number right.  dnl PowerPC-32 mpn_rshift -- Shift a number right.
   
 dnl Copyright (C) 1995, 2000 Free Software Foundation, Inc.  dnl Copyright 1995, 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 19  dnl along with the GNU MP Library; see the file COPYIN
Line 19  dnl along with the GNU MP Library; see the file COPYIN
 dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,  dnl the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 dnl MA 02111-1307, USA.  dnl MA 02111-1307, USA.
   
   include(`../config.m4')
   
   
   C      cycles/limb
   C 604e:    5.0
   C 750:     4.0
   
   
 dnl INPUT PARAMETERS  dnl INPUT PARAMETERS
 dnl res_ptr     r3  dnl res_ptr     r3
 dnl s1_ptr      r4  dnl s1_ptr      r4
 dnl size        r5  dnl size        r5
 dnl cnt         r6  dnl cnt         r6
   
 include(`../config.m4')  
   
 ASM_START()  ASM_START()
 PROLOGUE(mpn_rshift)  PROLOGUE(mpn_rshift)
         mtctr   r5              C copy size into CTR          mtctr   r5              C copy size into CTR
Line 35  PROLOGUE(mpn_rshift)
Line 40  PROLOGUE(mpn_rshift)
         subfic  r8,r6,32          subfic  r8,r6,32
         lwz     r11,0(r4)       C load first s1 limb          lwz     r11,0(r4)       C load first s1 limb
         slw     r3,r11,r8       C compute function return value          slw     r3,r11,r8       C compute function return value
         bdz     .Lend1          bdz     L(end1)
   
 .Loop:  lwzu    r10,4(r4)  L(oop): lwzu    r10,4(r4)
         srw     r9,r11,r6          srw     r9,r11,r6
         slw     r12,r10,r8          slw     r12,r10,r8
         or      r9,r9,r12          or      r9,r9,r12
         stwu    r9,4(r7)          stwu    r9,4(r7)
         bdz     .Lend2          bdz     L(end2)
         lwzu    r11,4(r4)          lwzu    r11,4(r4)
         srw     r9,r10,r6          srw     r9,r10,r6
         slw     r12,r11,r8          slw     r12,r11,r8
         or      r9,r9,r12          or      r9,r9,r12
         stwu    r9,4(r7)          stwu    r9,4(r7)
         bdnz    .Loop          bdnz    L(oop)
   
 .Lend1: srw     r0,r11,r6  L(end1):
           srw     r0,r11,r6
         stw     r0,4(r7)          stw     r0,4(r7)
         blr          blr
   
 .Lend2: srw     r0,r10,r6  L(end2):
           srw     r0,r10,r6
         stw     r0,4(r7)          stw     r0,4(r7)
         blr          blr
 EPILOGUE(mpn_rshift)  EPILOGUE(mpn_rshift)

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

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