OSDN Git Service

* gcc.dg/20020103-1.c: Fix typo in target selector.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.dg / 20020103-1.c
1 /* Verify that constant equivalences get reloaded properly, either by being
2    spilled to the stack, or regenerated, but not dropped to memory.  */
3 /* { dg-do compile { target i?86-*-* powerpc-*-* alpha*-*-* } } */
4 /* { dg-options "-O2 -fpic -fno-omit-frame-pointer" } */
5 /* { dg-final { scan-assembler-not "LC" } } */
6
7 /* Clobber all call-saved registers that can hold a pointer value.  */
8 #if defined(__i386__)
9 #define clobber \
10   asm volatile("#asm" : : : "si", "di")
11 #elif defined(__powerpc__)
12 #define clobber \
13   asm volatile("#asm" : : : "14", "15", "16", "17", "18", "19", "20", \
14                "21", "22", "23", "24", "25", "26", "27", "28", "29")
15 #elif defined(__alpha__)
16 #define clobber \
17   asm volatile("#asm" : : : "$9", "$10", "$11", "$12", "$13", "$14", \
18                "$f2", "$f3", "$f4", "$f5", "$f6", "$f7", "$f8", "$f9")
19 #else
20 #error no clobber macro defined
21 #endif
22
23 extern void f1(int, int, int);
24 extern void f2(int*, int*, int*);
25
26 extern int ext;
27 static int loc_small;
28 static int loc_big[100];
29
30 void bar(void)
31 {
32   f1(ext, loc_small, loc_big[0]);
33   clobber;
34   f2(&ext, &loc_small, &loc_big[0]);
35 }