idigitvecmultsub.s

来自「Arithmetic for integers of almost unlimi」· S 代码 · 共 41 行

S
41
字号
#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 DigitVecMultSub	.ent DigitVecMultSubDigitVecMultSub:	.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,$1		# $1 = lo = aa * m	addq $17,8,$17		# a++	ldq $2,0($16)		# $2 = x = *res	subl $19,1,$19		# l--	addq $1,$0,$1		# lo += x	cmpult $1,$0,$3		# tmp = (low < x)	subq $2,$1,$1		# lo = x - lo	stq $1,0($16)		# *res = lo	addq $16,8,$16		# res++	cmpult $2,$1,$2		# x = (x < lo) 	umulh $4,$18,$1		# hi = aa * m	addq $1,$3,$0		# hi = aa * m + (low < x)	addq $0,$2,$0		# hi = aa * m + (low < x) + (x < lo)	bgt $19,.Loop		# if (l > 0) goto .Loop.Lend:	ret $31,($26),1	.end DigitVecMultSub

⌨️ 快捷键说明

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