]>
Commit | Line | Data |
---|---|---|
c65ebc55 JW |
1 | /* Definitions for ia64-linux target. */ |
2 | #include "ia64/ia64.h" | |
3 | #include <linux.h> | |
4 | #include "sysv4.h" | |
5 | ||
6 | /* ??? Maybe this should be in sysv4.h? */ | |
7 | #define CPP_PREDEFINES "\ | |
8 | -D__ia64 -D__ia64__ -D__linux -D__linux__ -D_LONGLONG -Dlinux -Dunix \ | |
9 | -D__LP64__ -D__ELF__ -Asystem(linux) -Acpu(ia64) -Amachine(ia64)" | |
10 | ||
11 | /* ??? ia64 gas doesn't accept standard svr4 assembler options? */ | |
12 | #undef ASM_SPEC | |
3b572406 | 13 | #define ASM_SPEC "-x" |
c65ebc55 JW |
14 | |
15 | /* Define this for shared library support because it isn't in the main | |
16 | linux.h file. */ | |
17 | ||
18 | #undef LINK_SPEC | |
19 | #define LINK_SPEC "\ | |
20 | %{shared:-shared} \ | |
21 | %{!shared: \ | |
22 | %{!static: \ | |
23 | %{rdynamic:-export-dynamic} \ | |
f0b0e152 | 24 | %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.1}} \ |
c65ebc55 JW |
25 | %{static:-static}}" |
26 | ||
27 | ||
28 | #define DONT_USE_BUILTIN_SETJMP | |
29 | #define JMP_BUF_SIZE (8 * 76) | |
59da9a7d JW |
30 | |
31 | /* Output any profiling code before the prologue. */ | |
32 | ||
33 | #undef PROFILE_BEFORE_PROLOGUE | |
34 | #define PROFILE_BEFORE_PROLOGUE 1 | |
35 | ||
36 | /* A C statement or compound statement to output to FILE some assembler code to | |
37 | call the profiling subroutine `mcount'. */ | |
38 | ||
39 | #undef FUNCTION_PROFILER | |
40 | #define FUNCTION_PROFILER(FILE, LABELNO) \ | |
41 | do { \ | |
42 | char buf[20]; \ | |
43 | ASM_GENERATE_INTERNAL_LABEL (buf, "LP", LABELNO); \ | |
44 | fputs ("\talloc out0 = ar.pfs, 8, 0, 4, 0\n", FILE); \ | |
45 | if (TARGET_AUTO_PIC) \ | |
46 | fputs ("\tmovl out3 = @gprel(", FILE); \ | |
47 | else \ | |
48 | fputs ("\taddl out3 = @ltoff(", FILE); \ | |
49 | assemble_name (FILE, buf); \ | |
50 | if (TARGET_AUTO_PIC) \ | |
51 | fputs (");;\n", FILE); \ | |
52 | else \ | |
53 | fputs ("), r1;;\n", FILE); \ | |
54 | fputs ("\tmov out1 = r1\n", FILE); \ | |
55 | fputs ("\tmov out2 = b0\n", FILE); \ | |
56 | fputs ("\tbr.call.sptk.many b0 = _mcount;;\n", FILE); \ | |
57 | } while (0) | |
58 | ||
c65ebc55 | 59 | /* End of linux.h */ |