⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 copyi.asm

📁 GMP是计算任意精度的数学库, 包括支持整数,有理数和浮点. GMP包括大量的接口函数.
💻 ASM
字号:
dnl  Pentium-4 mpn_copyi -- copy limb vector, incrementing.dnldnl  Copyright 1999, 2000, 2001 Free Software Foundation, Inc.dnldnl  This file is part of the GNU MP Library.dnldnl  The GNU MP Library is free software; you can redistribute it and/ordnl  modify it under the terms of the GNU Lesser General Public License asdnl  published by the Free Software Foundation; either version 3 of thednl  License, or (at your option) any later version.dnldnl  The GNU MP Library is distributed in the hope that it will be useful,dnl  but WITHOUT ANY WARRANTY; without even the implied warranty ofdnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUdnl  Lesser General Public License for more details.dnldnl  You should have received a copy of the GNU Lesser General Public Licensednl  along with the GNU MP Library.  If not, see http://www.gnu.org/licenses/.dnl  The rep/movsl is very slow for small blocks on pentium4.  Its startupdnl  time seems to be about 110 cycles.  It then copies at a rate of onednl  limb per cycle.  We therefore fall back to an open-coded 2 c/l copyingdnl  loop for smaller sizes.dnl  Ultimately, we may want to use 64-bit movd or 128-bit movdqu in somednl  nifty unrolled arrangement.  Clearly, that could reach much higherdnl  speeds, at least for large blocks.include(`../config.m4')defframe(PARAM_SIZE, 12)defframe(PARAM_SRC, 8)defframe(PARAM_DST,  4)	TEXT	ALIGN(8)PROLOGUE(mpn_copyi)deflit(`FRAME',0)	movl	PARAM_SIZE, %ecx	cmpl	$150, %ecx	jg	L(replmovs)	movl	PARAM_SRC, %eax	movl	PARAM_DST, %edx	movl	%ebx, PARAM_SIZE	testl	%ecx, %ecx	jz	L(end)L(loop):	movl	(%eax), %ebx	leal	4(%eax), %eax	addl	$-1, %ecx	movl	%ebx, (%edx)	leal	4(%edx), %edx	jnz	L(loop)L(end):	movl	PARAM_SIZE, %ebx	retL(replmovs):	cld	C better safe than sorry, see mpn/x86/README	movl	%esi, %eax	movl	PARAM_SRC, %esi	movl	%edi, %edx	movl	PARAM_DST, %edi	rep	movsl	movl	%eax, %esi	movl	%edx, %edi	retEPILOGUE()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -