Remove not needed __builtin_expect due to malloc predictor.
[official-gcc.git] / gcc / testsuite / gcc.target / mips / abi-main.h
blobf47a2e30492c8a0fc82747c42dd0a31c01cd6b4c
1 #define FOR_EACH_SCALAR(F) \
2 F(sc, signed char) \
3 F(uc, unsigned char) \
4 F(ss, short) \
5 F(us, unsigned short) \
6 F(si, int) \
7 F(ui, unsigned int) \
8 F(sl, long) \
9 F(ul, unsigned long) \
10 F(sll, long long) \
11 F(ull, unsigned long long) \
12 F(f, float) \
13 F(d, double) \
14 F(ld, long double) \
15 F(ptr, void *)
17 #define EXTERN(SUFFIX, TYPE) extern TYPE x##SUFFIX;
18 #define STATIC(SUFFIX, TYPE) static TYPE s##SUFFIX;
19 #define COMMON(SUFFIX, TYPE) TYPE c##SUFFIX;
21 #define GETADDR(SUFFIX, TYPE) \
22 TYPE *get##SUFFIX (int which) \
23 { \
24 return (which == 0 ? &c##SUFFIX \
25 : which == 1 ? &s##SUFFIX \
26 : &x##SUFFIX); \
29 #define COPY(SUFFIX, TYPE) c##SUFFIX = s##SUFFIX; s##SUFFIX = x##SUFFIX;
31 FOR_EACH_SCALAR (EXTERN)
32 FOR_EACH_SCALAR (STATIC)
33 FOR_EACH_SCALAR (COMMON)
35 FOR_EACH_SCALAR (GETADDR)
37 void
38 copy (void)
40 FOR_EACH_SCALAR (COPY);
43 extern void foo (int);
45 void
46 sibcall1 (void)
48 foo (1);
51 void
52 sibcall2 (void)
54 foo (csi + ssi + xsi);
57 static void
58 sibcall3 (void)
60 foo (1);
61 foo (2);
62 foo (3);
65 extern void bar (void (*) (void));
67 int
68 nested (int x)
70 void sub (void) { foo (x); }
71 bar (sub);
72 bar (sibcall3);
73 return 1;