1 /* The asm has 2 "r" in/out operands, 1 earlyclobber "r" output, 1 "r"
2 input and 2 fixed "r" clobbers (eax and edx), so there are a total of
3 6 registers that must not conflict. Add to that the PIC register,
4 the frame pointer, and the stack pointer, and we've run out of
5 registers on 32-bit targets. */
6 /* { dg-do compile { target { { ! ilp32 } || nonpic } } } */
7 /* { dg-options "-O" } */
9 typedef unsigned long bngdigit
;
10 typedef bngdigit
*bng
;
11 typedef unsigned int bngcarry
;
12 typedef unsigned long bngsize
;
15 bng_ia32_mult_sub_digit (bng a
, bngsize alen
, bng b
, bngsize blen
, bngdigit d
)
24 : "+r" (a
), "+r" (b
), "+mr" (blen
), "+mr" (out
), "=&r" (tmp
)