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

Diff for /OpenXM_contrib/gmp/mpn/x86/Attic/aors_n.asm between version 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2000/09/09 14:12:42 version 1.1.1.2, 2003/08/25 16:06:27
Line 1 
Line 1 
 dnl  x86 mpn_add_n/mpn_sub_n -- mpn addition and subtraction.  dnl  x86 mpn_add_n/mpn_sub_n -- mpn addition and subtraction.
   
 dnl  Copyright (C) 1992, 1994, 1995, 1996, 1999, 2000 Free Software  dnl  Copyright 1992, 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
 dnl  Foundation, Inc.  dnl  Foundation, Inc.
 dnl  dnl
 dnl  This file is part of the GNU MP Library.  dnl  This file is part of the GNU MP Library.
Line 20  dnl  License along with the GNU MP Library; see the fi
Line 20  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     cycles/limb
   C P5:   3.375
   C P6:   3.7
   C K6:   3.5
   C K7:   2.25
   C P4:   8.75
   
   
 ifdef(`OPERATION_add_n',`  ifdef(`OPERATION_add_n',`
         define(M4_inst,        adcl)          define(M4_inst,        adcl)
         define(M4_function_n,  mpn_add_n)          define(M4_function_n,  mpn_add_n)
Line 51  defframe(PARAM_SRC2, 12)
Line 58  defframe(PARAM_SRC2, 12)
 defframe(PARAM_SRC1, 8)  defframe(PARAM_SRC1, 8)
 defframe(PARAM_DST,  4)  defframe(PARAM_DST,  4)
   
         .text          TEXT
         ALIGN(8)          ALIGN(8)
   
 PROLOGUE(M4_function_nc)  PROLOGUE(M4_function_nc)
Line 69  deflit(`FRAME',0)
Line 76  deflit(`FRAME',0)
         shrl    $3,%ecx                 C compute count for unrolled loop          shrl    $3,%ecx                 C compute count for unrolled loop
         negl    %eax          negl    %eax
         andl    $7,%eax                 C get index where to start loop          andl    $7,%eax                 C get index where to start loop
         jz      LF(M4_function_n,oopgo) C necessary special case for 0          jz      L(oopgo)                C necessary special case for 0
         incl    %ecx                    C adjust loop count          incl    %ecx                    C adjust loop count
         shll    $2,%eax                 C adjustment for pointers...          shll    $2,%eax                 C adjustment for pointers...
         subl    %eax,%edi               C ... since they are offset ...          subl    %eax,%edi               C ... since they are offset ...
Line 83  ifdef(`PIC',`
Line 90  ifdef(`PIC',`
         call    L(0a)          call    L(0a)
 L(0a):  leal    (%eax,%eax,8),%eax  L(0a):  leal    (%eax,%eax,8),%eax
         addl    (%esp),%eax          addl    (%esp),%eax
         addl    $LF(M4_function_n,oop)-L(0a)-3,%eax          addl    $L(oop)-L(0a)-3,%eax
         addl    $4,%esp          addl    $4,%esp
 ',`  ',`
         C Calculate start address in loop for non-PIC.          C Calculate start address in loop for non-PIC.
         leal    LF(M4_function_n,oop)-3(%eax,%eax,8),%eax          leal    L(oop)-3(%eax,%eax,8),%eax
 ')  ')
   
         C These lines initialize carry from the 5th parameter.  Should be          C These lines initialize carry from the 5th parameter.  Should be

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

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