=================================================================== RCS file: /home/cvs/OpenXM_contrib/gmp/mpn/x86/k6/mmx/Attic/popham.asm,v retrieving revision 1.1.1.2 retrieving revision 1.1.1.3 diff -u -p -r1.1.1.2 -r1.1.1.3 --- OpenXM_contrib/gmp/mpn/x86/k6/mmx/Attic/popham.asm 2000/12/01 05:45:00 1.1.1.2 +++ OpenXM_contrib/gmp/mpn/x86/k6/mmx/Attic/popham.asm 2003/08/25 16:06:28 1.1.1.3 @@ -1,12 +1,7 @@ dnl AMD K6-2 mpn_popcount, mpn_hamdist -- mpn bit population count and dnl hamming distance. -dnl -dnl popcount hamdist -dnl K6-2: 9.0 11.5 cycles/limb -dnl K6: 12.5 13.0 - -dnl Copyright (C) 2000 Free Software Foundation, Inc. +dnl Copyright 2000, 2001, 2002 Free Software Foundation, Inc. dnl dnl This file is part of the GNU MP Library. dnl @@ -25,10 +20,14 @@ dnl License along with the GNU MP Library; see the fi dnl not, write to the Free Software Foundation, Inc., 59 Temple Place - dnl Suite 330, Boston, MA 02111-1307, USA. - include(`../config.m4') +C popcount hamdist +C K6-2: 9.0 11.5 cycles/limb +C K6: 12.5 13.0 + + C unsigned long mpn_popcount (mp_srcptr src, mp_size_t size); C unsigned long mpn_hamdist (mp_srcptr src, mp_srcptr src2, mp_size_t size); C @@ -67,31 +66,27 @@ MULFUNC_PROLOGUE(mpn_popcount mpn_hamdist) ifdef(`PIC',,` dnl non-PIC - DATA + RODATA ALIGN(8) -define(LS, -m4_assert_numargs(1) -`LF(M4_function,`$1')') - -LS(rodata_AAAAAAAAAAAAAAAA): +L(rodata_AAAAAAAAAAAAAAAA): .long 0xAAAAAAAA .long 0xAAAAAAAA -LS(rodata_3333333333333333): +L(rodata_3333333333333333): .long 0x33333333 .long 0x33333333 -LS(rodata_0F0F0F0F0F0F0F0F): +L(rodata_0F0F0F0F0F0F0F0F): .long 0x0F0F0F0F .long 0x0F0F0F0F -LS(rodata_000000FF000000FF): +L(rodata_000000FF000000FF): .long 0x000000FF .long 0x000000FF ') - .text + TEXT ALIGN(32) POP(`ifdef(`PIC', ` @@ -102,8 +97,6 @@ PROLOGUE(M4_function) deflit(`FRAME',0) movl PARAM_SIZE, %ecx - orl %ecx, %ecx - jz L(zero) ifdef(`PIC',` movl $0xAAAAAAAA, %eax @@ -125,10 +118,10 @@ ifdef(`PIC',` punpckldq %mm4, %mm4 ',` - movq LS(rodata_AAAAAAAAAAAAAAAA), %mm7 - movq LS(rodata_3333333333333333), %mm6 - movq LS(rodata_0F0F0F0F0F0F0F0F), %mm5 - movq LS(rodata_000000FF000000FF), %mm4 + movq L(rodata_AAAAAAAAAAAAAAAA), %mm7 + movq L(rodata_3333333333333333), %mm6 + movq L(rodata_0F0F0F0F0F0F0F0F), %mm5 + movq L(rodata_000000FF000000FF), %mm4 ') define(REG_AAAAAAAAAAAAAAAA, %mm7) @@ -229,10 +222,6 @@ HAM(` nop C code alignment') movd %mm2, %eax emms_or_femms - ret - -L(zero): - movl $0, %eax ret EPILOGUE()