]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/gcc/config/i386/netbsd.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / gcc / config / i386 / netbsd.h
1 #define TARGET_OS_CPP_BUILTINS()                \
2   do                                            \
3     {                                           \
4       NETBSD_OS_CPP_BUILTINS_AOUT();            \
5     }                                           \
6   while (0)
7
8 #define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 a.out)");
9
10 /* This goes away when the math-emulator is fixed */
11 #undef TARGET_SUBTARGET_DEFAULT
12 #define TARGET_SUBTARGET_DEFAULT \
13   (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
14
15 #undef SUBTARGET_EXTRA_SPECS
16 #define SUBTARGET_EXTRA_SPECS                   \
17   { "netbsd_cpp_spec", NETBSD_CPP_SPEC },
18
19 #undef CPP_SPEC
20 #define CPP_SPEC "%(netbsd_cpp_spec)"
21
22 \f
23 #undef SIZE_TYPE
24 #define SIZE_TYPE "unsigned int"
25
26 #undef PTRDIFF_TYPE
27 #define PTRDIFF_TYPE "int"
28
29 #undef ASM_APP_ON
30 #define ASM_APP_ON "#APP\n"
31
32 #undef ASM_APP_OFF
33 #define ASM_APP_OFF "#NO_APP\n"
34
35 /* Don't default to pcc-struct-return, because gcc is the only compiler, and
36    we want to retain compatibility with older gcc versions.  */
37 #define DEFAULT_PCC_STRUCT_RETURN 0
38 \f
39 /* i386 netbsd still uses old binutils that don't insert nops by default
40    when the .align directive demands to insert extra space in the text
41    segment.  */
42 #undef ASM_OUTPUT_ALIGN
43 #define ASM_OUTPUT_ALIGN(FILE,LOG) \
44   if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
45 \f
46 /* Profiling routines, partially copied from i386/osfrose.h.  */
47
48 /* Redefine this to use %eax instead of %edx.  */
49 #undef FUNCTION_PROFILER
50 #define FUNCTION_PROFILER(FILE, LABELNO)  \
51 {                                                                       \
52   if (flag_pic)                                                         \
53     {                                                                   \
54       fprintf (FILE, "\tcall mcount@PLT\n");                            \
55     }                                                                   \
56   else                                                                  \
57     {                                                                   \
58       fprintf (FILE, "\tcall mcount\n");                                \
59     }                                                                   \
60 }
61
62 /* Until they use ELF or something that handles dwarf2 unwinds
63    and initialization stuff better.  */
64 #define DWARF2_UNWIND_INFO 0
65
66 /* Redefine this so that it becomes "_GLOBAL_OFFSET_TABLE_" when the label
67    prefix is added.  */
68 #undef GOT_SYMBOL_NAME
69 #define GOT_SYMBOL_NAME "GLOBAL_OFFSET_TABLE_"
70
71 /* Attempt to enable execute permissions on the stack.  */
72 #define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK