Changeset 724
 Timestamp:
 Nov 28, 2010, 2:51:31 PM (8 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/lib/block_carry.h
r723 r724 91 91 92 92 93 #define double_int64_advance(x1, x2, rslt1, rslt2, carry) \ 94 __asm__ (\ 95 "cmp $0, %[carry]\n\t" \ 96 "adc %[z1], %[z1]\n\t" \ 97 "adc %[z2], %[z2]\n\t" \ 98 "mov $0, %[carryout]\n\t" \ 99 "adc $0, %[carryout]\n\t" \ 100 : [z1] "=r" (rslt1), [z2] "=r" (rslt2), [carryout] "=r" (carry) \ 101 : "[z1]" (x1), "[z2]" (x2), \ 102 "[carryin]" "2" (carry) \ 103 : "cc") 104 105 93 106 #define advance_with_carry(cursor, carry, rslt)\ 94 adc128(cursor, cursor, carry, rslt) 107 do {\ 108 BitBlock_int64 x, z;\ 109 x.bitblock = cursor;\ 110 double_int64_advance(x.int64[0], x.int64[1], z.int64[0], z.int64[1], carry);\ 111 rslt = z.bitblock;\ 112 } while(0) 113 114 95 115 96 116
Note: See TracChangeset
for help on using the changeset viewer.