Changeset 724


Ignore:
Timestamp:
Nov 28, 2010, 2:51:31 PM (8 years ago)
Author:
cameron
Message:

Make a single typedef for BitBlock?, uint64x2 union.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/block_carry.h

    r723 r724  
    9191
    9292
     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
    93106#define advance_with_carry(cursor, carry, rslt)\
    94     adc128(cursor, cursor, carry, rslt)
     107do {\
     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
    95115
    96116
Note: See TracChangeset for help on using the changeset viewer.