netbsd.h revision 52284
1/* This is tested by i386gas.h.  */
2#define YES_UNDERSCORES
3
4#include <i386/gstabs.h>
5
6/* Get perform_* macros to build libgcc.a.  */
7#include <i386/perform.h>
8
9/* Get generic NetBSD definitions.  */
10#include <netbsd.h>
11
12/* This goes away when the math-emulator is fixed */
13#undef TARGET_DEFAULT
14#define TARGET_DEFAULT \
15  (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
16
17#undef CPP_PREDEFINES
18#define CPP_PREDEFINES "-Dunix -Di386 -D__NetBSD__ -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386)"
19
20#undef SIZE_TYPE
21#define SIZE_TYPE "unsigned int"
22
23#undef PTRDIFF_TYPE
24#define PTRDIFF_TYPE "int"
25
26#undef WCHAR_TYPE
27#define WCHAR_TYPE "int"
28
29#undef WCHAR_UNSIGNED
30#define WCHAR_UNSIGNED 0
31
32#undef WCHAR_TYPE_SIZE
33#define WCHAR_TYPE_SIZE 32
34
35#undef ASM_APP_ON
36#define ASM_APP_ON "#APP\n"
37
38#undef ASM_APP_OFF
39#define ASM_APP_OFF "#NO_APP\n"
40
41/* The following macros are stolen from i386v4.h */
42/* These have to be defined to get PIC code correct */
43
44/* This is how to output an element of a case-vector that is relative.
45   This is only used for PIC code.  See comments by the `casesi' insn in
46   i386.md for an explanation of the expression this outputs. */
47
48#undef ASM_OUTPUT_ADDR_DIFF_ELT
49#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
50  fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
51
52/* Indicate that jump tables go in the text section.  This is
53   necessary when compiling PIC code.  */
54
55#define JUMP_TABLES_IN_TEXT_SECTION 1
56
57/* Don't default to pcc-struct-return, because gcc is the only compiler, and
58   we want to retain compatibility with older gcc versions.  */
59#define DEFAULT_PCC_STRUCT_RETURN 0
60
61/* i386 netbsd still uses old binutils that don't insert nops by default
62   when the .align directive demands to insert extra space in the text
63   segment.  */
64#undef ASM_OUTPUT_ALIGN
65#define ASM_OUTPUT_ALIGN(FILE,LOG) \
66  if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
67
68/* Profiling routines, partially copied from i386/osfrose.h.  */
69
70/* Redefine this to use %eax instead of %edx.  */
71#undef FUNCTION_PROFILER
72#define FUNCTION_PROFILER(FILE, LABELNO)  \
73{									\
74  if (flag_pic)								\
75    {									\
76      fprintf (FILE, "\tcall mcount@PLT\n");				\
77    }									\
78  else									\
79    {									\
80      fprintf (FILE, "\tcall mcount\n");				\
81    }									\
82}
83
84/* Until they use ELF or something that handles dwarf2 unwinds
85   and initialization stuff better.  */
86#define DWARF2_UNWIND_INFO 0
87
88