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

📄 idigitvecmultadd.s

📁 Arithmetic for integers of almost unlimited size for C and C++. Developed and copyrighted by Ra
💻 S
字号:
#include <config.h>/*  Alpha assembly support for libI  Written by Thomas Papanikolaou, June 2 1998  internal version for John Cremona*/	.set noreorder        .set noat.text	.align 3	.globl DigitVecMultAdd	.ent DigitVecMultAddDigitVecMultAdd:	.frame $30,0,$26,0	.prologue 0	bis $31,$31,$0		# carry = 0	ble $19,.Lend		# if (l < 0) return carry	.align 5.Loop:	ldq $4,0($17)		# $4 = aa = *a	mulq $4,$18,$2		# $2 = lo = low_digit(a * m)	addq $17,8,$17		# a++	ldq $1,0($16)		# $1 = x = *res	subl $19,1,$19		# l--;	addq $2,$0,$2		# lo += carry	cmpult $2,$0,$3		# tmp = (lo < carry)	addq $2,$1,$2		# lo += x;	stq $2,0($16)		# *res = x	addq $16,8,$16		# res++	cmpult $2,$1,$2		# lo = (lo < x);	umulh $4,$18,$1		# x = high_digit(a * m)	addq $1,$3,$0		# carry = x + (lo < carry)	addq $0,$2,$0		# carry = x + (lo < carry) + (lo < x) 	bgt $19,.Loop		# if (l > 0) goto .Loop.Lend:	ret $31,($26),1	.end DigitVecMultAdd

⌨️ 快捷键说明

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