version 1.1.1.1, 2000/09/09 14:12:42 |
version 1.1.1.2, 2003/08/25 16:06:28 |
|
|
dnl AMD K6 mpn_mul_basecase -- multiply two mpn numbers. |
dnl AMD K6 mpn_mul_basecase -- multiply two mpn numbers. |
dnl |
|
dnl K6: approx 9.0 cycles per cross product on 30x30 limbs (with 16 limbs/loop |
|
dnl unrolling). |
|
|
|
|
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 23 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 K6: approx 9.0 cycles per cross product on 30x30 limbs (with 16 limbs/loop |
|
C unrolling). |
|
|
|
|
|
|
dnl K6: UNROLL_COUNT cycles/product (approx) |
dnl K6: UNROLL_COUNT cycles/product (approx) |
dnl 8 9.75 |
dnl 8 9.75 |
dnl 16 9.3 |
dnl 16 9.3 |
Line 69 defframe(PARAM_XSIZE,12) |
|
Line 69 defframe(PARAM_XSIZE,12) |
|
defframe(PARAM_XP, 8) |
defframe(PARAM_XP, 8) |
defframe(PARAM_WP, 4) |
defframe(PARAM_WP, 4) |
|
|
.text |
TEXT |
ALIGN(32) |
ALIGN(32) |
PROLOGUE(mpn_mul_basecase) |
PROLOGUE(mpn_mul_basecase) |
deflit(`FRAME',0) |
deflit(`FRAME',0) |
|
|
|
|
ifdef(`PIC',` |
ifdef(`PIC',` |
L(pic_calc): |
L(pic_calc): |
C See README.family about old gas bugs |
C See mpn/x86/README about old gas bugs |
leal (%ecx,%esi,1), %ecx |
leal (%ecx,%esi,1), %ecx |
addl $L(unroll_entry)-L(unroll_here), %ecx |
addl $L(unroll_entry)-L(unroll_here), %ecx |
addl (%esp), %ecx |
addl (%esp), %ecx |