OSDN Git Service

2005-09-27 Uros Bizjak <uros@kss-loka.si>
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.target / i386 / pr21291.c
1 /* { dg-do compile } */
2 /* { dg-options "-O" } */
3
4 typedef unsigned long bngdigit;
5 typedef bngdigit *bng;
6 typedef unsigned int bngcarry;
7 typedef unsigned long bngsize;
8
9 bngdigit
10 bng_ia32_mult_sub_digit (bng a, bngsize alen, bng b, bngsize blen, bngdigit d)
11 {
12   bngdigit out, tmp;
13   bngcarry carry;
14   bngdigit a11;
15
16   alen -= blen;
17   out = 0;
18   asm (""
19        : "+r" (a), "+r" (b), "+mr" (blen), "+mr" (out), "=&r" (tmp)
20        : "mr" (d)
21        : "eax", "edx");
22   if (alen == 0)
23     {
24       a11 = out;
25       goto t;
26     }
27
28   a11 = 1;
29  t:
30   return a11;
31 }