| /* APPLE LOCAL file CW asm blocks */ |
| /* { dg-do assemble { target i?86*-*-darwin* } } */ |
| /* { dg-require-effective-target ilp32 } */ |
| /* { dg-options { -fasm-blocks -msse3 } } */ |
| /* Radar 4505741 */ |
| |
| static int c[5]; |
| void foo(int pa[5], int j) { |
| unsigned int *ptr = (unsigned int *)0x12345678; |
| static int b[5]; |
| int i; |
| int a[5]; |
| _asm { |
| mov esi, [ptr][0] |
| mov esi, [ptr] |
| mov esi, [esi][eax] |
| mov esi, [esi+eax] |
| mov esi, [esi+eax+4] |
| mov esi, [esi][eax][4] |
| mov esi, [a][4] |
| mov esi, [pa] |
| mov esi, [j] |
| mov esi, [i] |
| mov esi, i |
| mov esi, [b][4] /* { dg-warning "non-pic addressing form not suitible for pic code" } */ |
| mov esi, [c][4] /* { dg-warning "non-pic addressing form not suitible for pic code" } */ |
| mov esi, [b] /* { dg-warning "non-pic addressing form not suitible for pic code" } */ |
| mov esi, [c] /* { dg-warning "non-pic addressing form not suitible for pic code" } */ |
| mov esi, [ptr][4] /* { dg-warning "will consume extra register" } */ |
| mov esi, [ptr+4] /* { dg-warning "will consume extra register" } */ |
| mov esi, [ptr][eax] /* { dg-warning "will consume extra register" } */ |
| mov esi, [ptr+eax] /* { dg-warning "will consume extra register" } */ |
| mov esi, [-4][pa+esi] /* { dg-warning "will consume extra register" } */ |
| mov esi, [-4][j+esi] /* { dg-warning "will consume extra register" } */ |
| mov esi, [pa-4+esi] /* { dg-warning "will consume extra register" } */ |
| mov esi, [a][3] /* { dg-warning "will consume extra register" } */ |
| jmp [a+4*ebx] /* { dg-warning "will consume extra register" } */ |
| } |
| } |