diff options
Diffstat (limited to 'gcc/testsuite/g++.apple/asm-block-50.C')
-rw-r--r-- | gcc/testsuite/g++.apple/asm-block-50.C | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.apple/asm-block-50.C b/gcc/testsuite/g++.apple/asm-block-50.C new file mode 100644 index 00000000000..bb5f064d8b0 --- /dev/null +++ b/gcc/testsuite/g++.apple/asm-block-50.C @@ -0,0 +1,38 @@ +/* APPLE LOCAL file CW asm blocks */ +/* { dg-do assemble { target i?86*-*-darwin* } } */ +/* { 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" } */ + } +} |