]>
Commit | Line | Data |
---|---|---|
1 | /* Definitions for LynxOS on i386. | |
2 | Copyright (C) 1993, 1995, 1996, 2002, 2004 | |
3 | Free Software Foundation, Inc. | |
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 | |
9 | the Free Software Foundation; either version 2, or (at your option) | |
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 | |
18 | along with GCC; see the file COPYING. If not, write to | |
19 | the Free Software Foundation, 59 Temple Place - Suite 330, | |
20 | Boston, MA 02111-1307, USA. */ | |
21 | ||
22 | #define TARGET_VERSION fputs (" (i386/LynxOS)", stderr); | |
23 | ||
24 | #define TARGET_OS_CPP_BUILTINS() \ | |
25 | do \ | |
26 | { \ | |
27 | builtin_define ("__LITTLE_ENDIAN__"); \ | |
28 | builtin_define ("__x86__"); \ | |
29 | } \ | |
30 | while (0) | |
31 | ||
32 | /* The svr4 ABI for the i386 says that records and unions are returned | |
33 | in memory. */ | |
34 | ||
35 | #define DEFAULT_PCC_STRUCT_RETURN 1 | |
36 | ||
37 | /* BSS_SECTION_ASM_OP gets defined i386/unix.h. */ | |
38 | ||
39 | #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ | |
40 | asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) | |
41 | ||
42 | /* LynxOS's GDB counts the floating point registers from 16. */ | |
43 | ||
44 | #undef DBX_REGISTER_NUMBER | |
45 | #define DBX_REGISTER_NUMBER(n) \ | |
46 | (TARGET_64BIT ? dbx64_register_map[n] \ | |
47 | : (n) == 0 ? 0 \ | |
48 | : (n) == 1 ? 2 \ | |
49 | : (n) == 2 ? 1 \ | |
50 | : (n) == 3 ? 3 \ | |
51 | : (n) == 4 ? 6 \ | |
52 | : (n) == 5 ? 7 \ | |
53 | : (n) == 6 ? 5 \ | |
54 | : (n) == 7 ? 4 \ | |
55 | : ((n) >= FIRST_STACK_REG && (n) <= LAST_STACK_REG) ? (n) + 8 \ | |
56 | : (-1)) | |
57 | ||
58 | /* A C statement to output to the stdio stream FILE an assembler | |
59 | command to advance the location counter to a multiple of 1<<LOG | |
60 | bytes if it is within MAX_SKIP bytes. | |
61 | ||
62 | This is used to align code labels according to Intel recommendations. */ | |
63 | ||
64 | #ifdef HAVE_GAS_MAX_SKIP_P2ALIGN | |
65 | #define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \ | |
66 | do { \ | |
67 | if ((LOG) != 0) { \ | |
68 | if ((MAX_SKIP) == 0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \ | |
69 | else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP)); \ | |
70 | } \ | |
71 | } while (0) | |
72 | #endif | |
73 | ||
74 | /* Since i386.h defines an empty SUBTARGET_SWITCHES the definition in | |
75 | config/lynx.h is omitted. */ | |
76 | ||
77 | #undef SUBTARGET_SWITCHES | |
78 | #define SUBTARGET_SWITCHES SUBTARGET_OS_LYNX_SWITCHES | |
79 | ||
80 | /* Undefine SUBTARGET_EXTRA_SPECS it is empty anyway. We define it in | |
81 | config/lynx.h. */ | |
82 | ||
83 | #undef SUBTARGET_EXTRA_SPECS | |
84 | ||
85 | /* Undefine the definition from att.h to enable our default. */ | |
86 | ||
87 | #undef ASM_OUTPUT_ALIGN | |
88 | ||
89 | /* Undefine the definition from elfos.h to enable our default. */ | |
90 | ||
91 | #undef PREFERRED_DEBUGGING_TYPE | |
92 | ||
93 | /* The file i386.c defines TARGET_HAVE_TLS unconditionally if | |
94 | HAVE_AS_TLS is defined. HAVE_AS_TLS is defined as gas support for | |
95 | TLS is detected by configure. We undefine it here. */ | |
96 | ||
97 | #undef HAVE_AS_TLS |