]>
Commit | Line | Data |
---|---|---|
4f587cb0 AN |
1 | /* Definitions for LynxOS on i386. |
2 | Copyright (C) 1993, 1995, 1996, 2002, 2004 | |
3 | Free Software Foundation, Inc. | |
4fb420c2 | 4 | |
188fc5b5 | 5 | This file is part of GCC. |
4fb420c2 | 6 | |
188fc5b5 | 7 | GCC is free software; you can redistribute it and/or modify |
4fb420c2 JW |
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 | ||
188fc5b5 | 12 | GCC is distributed in the hope that it will be useful, |
4fb420c2 JW |
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 | |
188fc5b5 | 18 | along with GCC; see the file COPYING. If not, write to |
97aadbb9 RK |
19 | the Free Software Foundation, 59 Temple Place - Suite 330, |
20 | Boston, MA 02111-1307, USA. */ | |
4fb420c2 | 21 | |
4f587cb0 | 22 | #define TARGET_VERSION fputs (" (i386/LynxOS)", stderr); |
4fb420c2 | 23 | |
f60ed6be NB |
24 | #define TARGET_OS_CPP_BUILTINS() \ |
25 | do \ | |
26 | { \ | |
4f587cb0 AN |
27 | builtin_define ("__LITTLE_ENDIAN__"); \ |
28 | builtin_define ("__x86__"); \ | |
f60ed6be NB |
29 | } \ |
30 | while (0) | |
5f0a312d | 31 | |
4f587cb0 AN |
32 | /* The svr4 ABI for the i386 says that records and unions are returned |
33 | in memory. */ | |
5f0a312d | 34 | |
4f587cb0 | 35 | #define DEFAULT_PCC_STRUCT_RETURN 1 |
5f0a312d | 36 | |
4f587cb0 | 37 | /* BSS_SECTION_ASM_OP gets defined i386/unix.h. */ |
5f0a312d | 38 | |
4f587cb0 AN |
39 | #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ |
40 | asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) | |
5f0a312d | 41 | |
4f587cb0 | 42 | /* LynxOS's GDB counts the floating point registers from 16. */ |
39ed301b | 43 | |
4f587cb0 AN |
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. | |
39ed301b | 61 | |
4f587cb0 | 62 | This is used to align code labels according to Intel recommendations. */ |
39ed301b | 63 | |
4f587cb0 AN |
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 | |
39ed301b | 73 | |
4f587cb0 AN |
74 | /* Since i386.h defines an empty SUBTARGET_SWITCHES the definition in |
75 | config/lynx.h is omitted. */ | |
39ed301b | 76 | |
4f587cb0 AN |
77 | #undef SUBTARGET_SWITCHES |
78 | #define SUBTARGET_SWITCHES SUBTARGET_OS_LYNX_SWITCHES | |
39ed301b | 79 | |
4f587cb0 AN |
80 | /* Undefine SUBTARGET_EXTRA_SPECS it is empty anyway. We define it in |
81 | config/lynx.h. */ | |
39ed301b | 82 | |
4f587cb0 AN |
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 |