]>
Commit | Line | Data |
---|---|---|
d442d7d9 | 1 | /* IA32 VxWorks target definitions for GNU compiler. |
cbe34bb5 | 2 | Copyright (C) 2003-2017 Free Software Foundation, Inc. |
d442d7d9 | 3 | Updated by CodeSourcery, LLC. |
55047c9d PE |
4 | |
5 | This file is part of GCC. | |
6 | ||
7 | GCC is free software; you can redistribute it and/or modify | |
8 | it under the terms of the GNU General Public License as published by | |
2f83c7d6 | 9 | the Free Software Foundation; either version 3, or (at your option) |
55047c9d PE |
10 | any later version. |
11 | ||
12 | GCC is distributed in the hope that it will be useful, | |
13 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | GNU General Public License for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
55047c9d | 20 | |
e57f3ae8 | 21 | #undef ASM_OUTPUT_ALIGNED_BSS |
4ce351de OH |
22 | #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ |
23 | asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) | |
24 | ||
25 | /* VxWorks uses the same ABI as Solaris 2, so use i386/sol2.h version. */ | |
26 | ||
27 | #undef TARGET_SUBTARGET_DEFAULT | |
28 | #define TARGET_SUBTARGET_DEFAULT \ | |
29 | (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS) | |
30 | ||
31 | /* Provide our target specific DBX_REGISTER_NUMBER. VxWorks relies on | |
32 | the SVR4 numbering. */ | |
33 | ||
34 | #undef DBX_REGISTER_NUMBER | |
580536aa JL |
35 | #define DBX_REGISTER_NUMBER(n) \ |
36 | (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n]) | |
4ce351de | 37 | |
cb717c40 | 38 | #define TARGET_OS_CPP_BUILTINS() \ |
d442d7d9 PE |
39 | do \ |
40 | { \ | |
cb717c40 | 41 | VXWORKS_OS_CPP_BUILTINS (); \ |
d442d7d9 PE |
42 | if (TARGET_386) \ |
43 | builtin_define ("CPU=I80386"); \ | |
44 | else if (TARGET_486) \ | |
45 | builtin_define ("CPU=I80486"); \ | |
46 | else if (TARGET_PENTIUM) \ | |
47 | { \ | |
48 | builtin_define ("CPU=PENTIUM"); \ | |
49 | builtin_define ("CPU_VARIANT=PENTIUM"); \ | |
50 | } \ | |
51 | else if (TARGET_PENTIUMPRO) \ | |
52 | { \ | |
53 | builtin_define ("CPU=PENTIUM2"); \ | |
54 | builtin_define ("CPU_VARIANT=PENTIUMPRO"); \ | |
55 | } \ | |
56 | else if (TARGET_PENTIUM4) \ | |
57 | { \ | |
58 | builtin_define ("CPU=PENTIUM4"); \ | |
59 | builtin_define ("CPU_VARIANT=PENTIUM4"); \ | |
60 | } \ | |
580536aa JL |
61 | else if (TARGET_64BIT) \ |
62 | builtin_define ("CPU=X86_64"); \ | |
63 | else \ | |
64 | builtin_define ("CPU=I80386"); \ | |
65 | } \ | |
d442d7d9 | 66 | while (0) |
55047c9d | 67 | |
d442d7d9 PE |
68 | #undef CPP_SPEC |
69 | #define CPP_SPEC VXWORKS_ADDITIONAL_CPP_SPEC | |
70 | #undef LIB_SPEC | |
71 | #define LIB_SPEC VXWORKS_LIB_SPEC | |
72 | #undef STARTFILE_SPEC | |
73 | #define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC | |
74 | #undef ENDFILE_SPEC | |
75 | #define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC | |
76 | #undef LINK_SPEC | |
77 | #define LINK_SPEC VXWORKS_LINK_SPEC | |
78 | ||
79 | #undef SUBTARGET_SWITCHES | |
80 | #define SUBTARGET_SWITCHES EXTRA_SUBTARGET_SWITCHES | |
81 | ||
82 | #undef SUBTARGET_OVERRIDE_OPTIONS | |
83 | #define SUBTARGET_OVERRIDE_OPTIONS VXWORKS_OVERRIDE_OPTIONS | |
84 | ||
85 | /* No _mcount profiling on VxWorks. */ | |
86 | #undef FUNCTION_PROFILER | |
87 | #define FUNCTION_PROFILER(FILE,LABELNO) VXWORKS_FUNCTION_PROFILER(FILE,LABELNO) | |
10d7f5f3 RS |
88 | |
89 | /* We cannot use PC-relative accesses for VxWorks PIC because there is no | |
90 | fixed gap between segments. */ | |
91 | #undef ASM_PREFERRED_EH_DATA_FORMAT | |
4ce351de | 92 | |
3488bd6b EB |
93 | /* Define this to be nonzero if static stack checking is supported. */ |
94 | #define STACK_CHECK_STATIC_BUILTIN 1 | |
95 | ||
96 | /* This platform supports the probing method of stack checking (RTP mode). | |
580536aa JL |
97 | 8K is reserved in the stack to propagate exceptions in case of overflow. |
98 | On 64-bit targets, we double that size. */ | |
99 | #if TARGET_64BIT_DEFAULT | |
100 | #define STACK_CHECK_PROTECT 16384 | |
101 | #else | |
3488bd6b | 102 | #define STACK_CHECK_PROTECT 8192 |
580536aa | 103 | #endif |