[BACK]Return to lshift.asm CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp / mpn / x86 / pentium / mmx

Diff for /OpenXM_contrib/gmp/mpn/x86/pentium/mmx/Attic/lshift.asm between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2000/09/09 14:12:44 version 1.1.1.2, 2003/08/25 16:06:30
Line 1 
Line 1 
 dnl  Intel P5 mpn_lshift -- mpn left shift.  dnl  Intel P5 mpn_lshift -- mpn left shift.
 dnl  
 dnl  P5: 1.75 cycles/limb.  
   
   dnl  Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
 dnl  Copyright (C) 2000 Free Software Foundation, Inc.  
 dnl  dnl
 dnl  This file is part of the GNU MP Library.  dnl  This file is part of the GNU MP Library.
 dnl  dnl
Line 22  dnl  License along with the GNU MP Library; see the fi
Line 19  dnl  License along with the GNU MP Library; see the fi
 dnl  not, write to the Free Software Foundation, Inc., 59 Temple Place -  dnl  not, write to the Free Software Foundation, Inc., 59 Temple Place -
 dnl  Suite 330, Boston, MA 02111-1307, USA.  dnl  Suite 330, Boston, MA 02111-1307, USA.
   
   
 include(`../config.m4')  include(`../config.m4')
   
   
   C P5: 1.75 cycles/limb.
   
   
 C mp_limb_t mpn_lshift (mp_ptr dst, mp_srcptr src, mp_size_t size,  C mp_limb_t mpn_lshift (mp_ptr dst, mp_srcptr src, mp_size_t size,
 C                       unsigned shift);  C                       unsigned shift);
 C  C
Line 44  deflit(`FRAME',0)
Line 43  deflit(`FRAME',0)
 dnl  minimum 5, because the unrolled loop can't handle less  dnl  minimum 5, because the unrolled loop can't handle less
 deflit(UNROLL_THRESHOLD, 5)  deflit(UNROLL_THRESHOLD, 5)
   
         .text          TEXT
         ALIGN(8)          ALIGN(8)
   
 PROLOGUE(mpn_lshift)  PROLOGUE(mpn_lshift)
Line 263  L(unroll_loop):
Line 262  L(unroll_loop):
         C          C
         C mm0          C mm0
         C mm1          C mm1
         C mm2   src qword from 48(%ebx,%eax,4)          C mm2   src qword from 16(%ebx,%eax,4)
         C mm3   dst qword ready to store to 56(%edx,%eax,4)          C mm3   dst qword ready to store to 24(%edx,%eax,4)
         C          C
         C mm5   return value          C mm5   return value
         C mm6   lshift          C mm6   lshift
Line 318  L(finish_no_two):
Line 317  L(finish_no_two):
   
         C eax   -4 or -3 representing respectively 0 or 1 limbs remaining          C eax   -4 or -3 representing respectively 0 or 1 limbs remaining
         C          C
         C mm2   src prev qword, from 48(%ebx,%eax,4)          C mm2   src prev qword, from 16(%ebx,%eax,4)
         C mm3   dst qword, for 56(%edx,%eax,4)          C mm3   dst qword, for 24(%edx,%eax,4)
   
         testb   $1, %al          testb   $1, %al
         movd    %mm5, %eax      C retval          movd    %mm5, %eax      C retval

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

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