2 * mpvecadd(mpdigit *a, int alen, mpdigit *b, int blen, mpdigit *sum)
4 * sum[0:alen] = a[0:alen-1] + b[0:blen-1]
6 * prereq: alen >= blen, sum has room for alen+1 digits
16 XORL BP,BP /* this also sets carry to 0 */
18 /* skip addition if b is zero */
22 /* sum[0:blen-1],carry = a[0:blen-1] + b[0:blen-1] */
31 /* jump if alen > blen */
36 /* sum[alen] = carry */
43 /* sum[blen:alen-1],carry = a[blen:alen-1] + 0 */