| /* APPLE LOCAL file CW asm blocks */ |
| /* { dg-do assemble { target i?86*-*-darwin* } } */ |
| /* { dg-options { -fasm-blocks -O } } */ |
| /* Radar 4527214 */ |
| |
| inline int foo(int x, int y) { |
| int result; |
| __asm { |
| MOV EAX, x |
| IMUL y |
| MOV result, EDX |
| } |
| return result; |
| } |
| |
| inline int bar(int mhigh) { |
| int temp = foo(mhigh, 3); |
| return temp; |
| } |
| |
| typedef struct S { |
| long a; |
| int c; |
| } S; |
| |
| void bee(S *fill) { |
| int a, top = 2; |
| int b = 1; |
| int i = 0; |
| int c = fill->c; |
| int bottom = 30; |
| |
| if (b < top) |
| i = (fill->a - b) / c; |
| |
| while (i < bottom - top) { |
| bar(a); |
| bar(a); |
| i++; |
| } |
| } |