338
338
#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
339
339
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
340
340
__asm__ ("addl %5,%1\n\tadcl %3,%0" \
341
: "=r" ((USItype) (sh)), \
342
"=&r" ((USItype) (sl)) \
343
343
: "%0" ((USItype) (ah)), \
344
344
"g" ((USItype) (bh)), \
345
345
"%1" ((USItype) (al)), \
346
346
"g" ((USItype) (bl)))
347
347
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
348
348
__asm__ ("subl %5,%1\n\tsbbl %3,%0" \
349
: "=r" ((USItype) (sh)), \
350
"=&r" ((USItype) (sl)) \
351
351
: "0" ((USItype) (ah)), \
352
352
"g" ((USItype) (bh)), \
353
353
"1" ((USItype) (al)), \
354
354
"g" ((USItype) (bl)))
355
355
#define umul_ppmm(w1, w0, u, v) \
356
356
__asm__ ("mull %3" \
357
: "=a" ((USItype) (w0)), \
358
"=d" ((USItype) (w1)) \
359
359
: "%0" ((USItype) (u)), \
360
360
"rm" ((USItype) (v)))
361
361
#define udiv_qrnnd(q, r, n1, n0, dv) \
362
362
__asm__ ("divl %4" \
363
: "=a" ((USItype) (q)), \
364
"=d" ((USItype) (r)) \
365
365
: "0" ((USItype) (n0)), \
366
366
"1" ((USItype) (n1)), \
367
367
"rm" ((USItype) (dv)))
1038
1038
&& W_TYPE_SIZE == 64
1039
1039
#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
1040
1040
__asm__ ("addcc %r4,%5,%1\n\t" \
1041
"add %r2,%3,%0\n\t" \
1042
"bcs,a,pn %%xcc, 1f\n\t" \
1041
"add %r2,%3,%0\n\t" \
1042
"bcs,a,pn %%xcc, 1f\n\t" \
1045
: "=r" ((UDItype)(sh)), \
1046
"=&r" ((UDItype)(sl)) \
1047
: "%rJ" ((UDItype)(ah)), \
1048
"rI" ((UDItype)(bh)), \
1049
"%rJ" ((UDItype)(al)), \
1050
"rI" ((UDItype)(bl)) \
1045
: "=r" ((UDItype)(sh)), \
1046
"=&r" ((UDItype)(sl)) \
1047
: "%rJ" ((UDItype)(ah)), \
1048
"rI" ((UDItype)(bh)), \
1049
"%rJ" ((UDItype)(al)), \
1050
"rI" ((UDItype)(bl)) \
1053
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
1053
#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
1054
1054
__asm__ ("subcc %r4,%5,%1\n\t" \
1055
"sub %r2,%3,%0\n\t" \
1056
"bcs,a,pn %%xcc, 1f\n\t" \
1057
"sub %0, 1, %0\n\t" \
1055
"sub %r2,%3,%0\n\t" \
1056
"bcs,a,pn %%xcc, 1f\n\t" \
1057
"sub %0, 1, %0\n\t" \
1059
: "=r" ((UDItype)(sh)), \
1060
"=&r" ((UDItype)(sl)) \
1061
: "rJ" ((UDItype)(ah)), \
1062
"rI" ((UDItype)(bh)), \
1063
"rJ" ((UDItype)(al)), \
1064
"rI" ((UDItype)(bl)) \
1059
: "=r" ((UDItype)(sh)), \
1060
"=&r" ((UDItype)(sl)) \
1061
: "rJ" ((UDItype)(ah)), \
1062
"rI" ((UDItype)(bh)), \
1063
"rJ" ((UDItype)(al)), \
1064
"rI" ((UDItype)(bl)) \
1067
1067
#define umul_ppmm(wh, wl, u, v) \