5 * mpvecsub(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *diff)
7 * diff[0:alen-1] = a[0:alen-1] - b[0:blen-1]
9 * prereq: alen >= blen, diff has room for alen digits
25 SUB R6, R4 /* calculate counter for second loop (alen > blen) */
26 SUB $4, R3 /* pre decrement for MOVWU's */
27 SUB $4, R5 /* pre decrement for MOVWU's */
28 SUBC $4, R7 /* pre decrement for MOVWU's and set carry */
30 /* skip subraction if b is zero */
34 /* diff[0:blen-1],borrow = a[0:blen-1] - b[0:blen-1] */
44 /* skip subtraction if a is zero */
48 /* diff[blen:alen-1] = a[blen:alen-1] - 0 + carry */