1117395Skan#define TARGET_OS_CPP_BUILTINS() \ 2117395Skan do \ 3117395Skan { \ 4117395Skan NETBSD_OS_CPP_BUILTINS_AOUT(); \ 5117395Skan } \ 6117395Skan while (0) 718334Speter 8117395Skan#define TARGET_VERSION fprintf (stderr, " (NetBSD/i386 a.out)"); 918334Speter 1052284Sobrien/* This goes away when the math-emulator is fixed */ 1190075Sobrien#undef TARGET_SUBTARGET_DEFAULT 1290075Sobrien#define TARGET_SUBTARGET_DEFAULT \ 1352284Sobrien (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) 1452284Sobrien 15117395Skan#undef SUBTARGET_EXTRA_SPECS 16117395Skan#define SUBTARGET_EXTRA_SPECS \ 17117395Skan { "netbsd_cpp_spec", NETBSD_CPP_SPEC }, 18117395Skan 19117395Skan#undef CPP_SPEC 20117395Skan#define CPP_SPEC "%(netbsd_cpp_spec)" 21117395Skan 2218334Speter 2318334Speter#undef SIZE_TYPE 2418334Speter#define SIZE_TYPE "unsigned int" 2518334Speter 2618334Speter#undef PTRDIFF_TYPE 2718334Speter#define PTRDIFF_TYPE "int" 2818334Speter 2918334Speter#undef ASM_APP_ON 3018334Speter#define ASM_APP_ON "#APP\n" 3118334Speter 3218334Speter#undef ASM_APP_OFF 3318334Speter#define ASM_APP_OFF "#NO_APP\n" 3418334Speter 3518334Speter/* Don't default to pcc-struct-return, because gcc is the only compiler, and 3618334Speter we want to retain compatibility with older gcc versions. */ 3718334Speter#define DEFAULT_PCC_STRUCT_RETURN 0 3818334Speter 3950397Sobrien/* i386 netbsd still uses old binutils that don't insert nops by default 4050397Sobrien when the .align directive demands to insert extra space in the text 4150397Sobrien segment. */ 4250397Sobrien#undef ASM_OUTPUT_ALIGN 4350397Sobrien#define ASM_OUTPUT_ALIGN(FILE,LOG) \ 4450397Sobrien if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG)) 4550397Sobrien 4618334Speter/* Profiling routines, partially copied from i386/osfrose.h. */ 4718334Speter 4818334Speter/* Redefine this to use %eax instead of %edx. */ 4918334Speter#undef FUNCTION_PROFILER 5018334Speter#define FUNCTION_PROFILER(FILE, LABELNO) \ 5118334Speter{ \ 5218334Speter if (flag_pic) \ 5318334Speter { \ 5418334Speter fprintf (FILE, "\tcall mcount@PLT\n"); \ 5518334Speter } \ 5618334Speter else \ 5718334Speter { \ 5818334Speter fprintf (FILE, "\tcall mcount\n"); \ 5918334Speter } \ 6018334Speter} 6150397Sobrien 6250397Sobrien/* Until they use ELF or something that handles dwarf2 unwinds 6350397Sobrien and initialization stuff better. */ 6450397Sobrien#define DWARF2_UNWIND_INFO 0 65117395Skan 66117395Skan/* Redefine this so that it becomes "_GLOBAL_OFFSET_TABLE_" when the label 67117395Skan prefix is added. */ 68117395Skan#undef GOT_SYMBOL_NAME 69117395Skan#define GOT_SYMBOL_NAME "GLOBAL_OFFSET_TABLE_" 70117395Skan 71117395Skan/* Attempt to enable execute permissions on the stack. */ 72132718Skan#define ENABLE_EXECUTE_STACK NETBSD_ENABLE_EXECUTE_STACK 73