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