version 1.1.1.1, 2000/09/09 14:12:42 |
version 1.1.1.2, 2003/08/25 16:06:27 |
|
|
dnl x86 mpn_copyd -- copy limb vector, decrementing. |
dnl x86 mpn_copyd -- copy limb vector, decrementing. |
dnl |
|
dnl Future: On P6 an MMX loop should be able to go faster than this code. |
|
|
|
|
dnl Copyright 1999, 2000, 2001, 2002 Free Software Foundation, Inc. |
dnl Copyright (C) 1999, 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 cycles/limb startup (approx) |
|
C P5: 1.0 40 |
|
C P6 2.4 70 |
|
C K6 1.0 55 |
|
C K7: 1.3 75 |
|
C P4: 2.6 175 |
|
C |
|
C (Startup time includes some function call overheads.) |
|
|
|
|
C void mpn_copyd (mp_ptr dst, mp_srcptr src, mp_size_t size); |
C void mpn_copyd (mp_ptr dst, mp_srcptr src, mp_size_t size); |
C |
C |
C Copy src,size to dst,size, working from high to low addresses. |
C Copy src,size to dst,size, working from high to low addresses. |
C |
C |
C The code here is very generic and can be expected to be reasonable on all |
C The code here is very generic and can be expected to be reasonable on all |
C the x86 family. |
C the x86 family. |
C |
|
C P5 - 1.0 cycles/limb. |
|
C |
|
C P6 - 2.4 cycles/limb, approx 40 cycles startup. |
|
|
|
defframe(PARAM_SIZE,12) |
defframe(PARAM_SIZE,12) |
defframe(PARAM_SRC, 8) |
defframe(PARAM_SRC, 8) |
defframe(PARAM_DST, 4) |
defframe(PARAM_DST, 4) |
deflit(`FRAME',0) |
deflit(`FRAME',0) |
|
|
.text |
TEXT |
ALIGN(32) |
ALIGN(32) |
|
|
PROLOGUE(mpn_copyd) |
PROLOGUE(mpn_copyd) |