📄 idigitvecmultadd.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 + -