# Changeset 447

Ignore:
Timestamp:
Jul 7, 2010, 6:15:39 PM (9 years ago)
Message:

Remove duplicate addc/sbb definitions.

File:
1 edited

Unmodified
Removed
• ## proto/parabix2/compiled/template.c

 r442 } \ #define double_int64_adc(x1, x2, y1, y2, rslt1, rslt2, carry) \ __asm__  ("sahf\n\t" \ "adc %[e1], %[z1]\n\t" \ "adc %[e2], %[z2]\n\t" \ "lahf\n\t" \ : [z1] "=r" (rslt1), [z2] "=r" (rslt2), [carryflag] "=a" (carry) \ : "[z1]" (x1), "[z2]" (x2), \ [e1] "r" (y1), [e2] "r" (y2), \ "[carryflag]" (carry) \ : "cc") #define adc128(first, second, carry, sum) \ do\ {\ union {__m128i bitblock;\ uint64_t int64[2];} rslt;\ \ union {__m128i bitblock;\ uint64_t int64[2];} x;\ \ union {__m128i bitblock;\ uint64_t int64[2];} y;\ \ x.bitblock = first;\ y.bitblock = second;\ \ double_int64_adc(x.int64[0], x.int64[1], y.int64[0], y.int64[1], rslt.int64[0], rslt.int64[1], carry);\ sum = rslt.bitblock;\ }while(0) #define double_int64_sbb(x1, x2, y1, y2, rslt1, rslt2, carry) \ __asm__  ("sahf\n\t" \ "sbb %[e1], %[z1]\n\t" \ "sbb %[e2], %[z2]\n\t" \ "lahf\n\t" \ : [z1] "=r" (rslt1), [z2] "=r" (rslt2), [carryflag] "=a" (carry) \ : "[z1]" (x1), "[z2]" (x2), \ [e1] "r" (y1), [e2] "r" (y2), \ "[carryflag]" (carry) \ : "cc") #define sbb128(first, second, carry, sum) \ do\ { union {__m128i bitblock;\ uint64_t int64[2];} rslt;\ \ union {__m128i bitblock;\ uint64_t int64[2];} x;\ \ union {__m128i bitblock;\ uint64_t int64[2];} y;\ \ x.bitblock = first;\ y.bitblock = second;\ \ double_int64_sbb(x.int64[0], x.int64[1], y.int64[0], y.int64[1], \ rslt.int64[0], rslt.int64[1], carry);\ sum = rslt.bitblock;\ }while(0) #define BUFFER_SIZE 12800
Note: See TracChangeset for help on using the changeset viewer.