102 lines
2.9 KiB
C
102 lines
2.9 KiB
C
/* This is tested by i386gas.h. */
|
||
#define YES_UNDERSCORES
|
||
|
||
#include <i386/gstabs.h>
|
||
|
||
/* Get perform_* macros to build libgcc.a. */
|
||
#include <i386/perform.h>
|
||
|
||
/* Get generic NetBSD definitions. */
|
||
#include <netbsd.h>
|
||
|
||
/* This goes away when the math-emulator is fixed */
|
||
#undef TARGET_DEFAULT
|
||
#define TARGET_DEFAULT \
|
||
(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387)
|
||
|
||
#undef CPP_PREDEFINES
|
||
#define CPP_PREDEFINES "-Di386 -D__NetBSD__ -D__KPRINTF_ATTRIBUTE__ -Asystem(unix) -Asystem(NetBSD) -Acpu(i386) -Amachine(i386)"
|
||
|
||
#undef SIZE_TYPE
|
||
#define SIZE_TYPE "unsigned int"
|
||
|
||
#undef PTRDIFF_TYPE
|
||
#define PTRDIFF_TYPE "int"
|
||
|
||
#undef WCHAR_TYPE
|
||
#define WCHAR_TYPE "int"
|
||
|
||
#undef WCHAR_UNSIGNED
|
||
#define WCHAR_UNSIGNED 0
|
||
|
||
#undef WCHAR_TYPE_SIZE
|
||
#define WCHAR_TYPE_SIZE 32
|
||
|
||
#undef ASM_APP_ON
|
||
#define ASM_APP_ON "#APP\n"
|
||
|
||
#undef ASM_APP_OFF
|
||
#define ASM_APP_OFF "#NO_APP\n"
|
||
|
||
/* The following macros are stolen from i386v4.h */
|
||
/* These have to be defined to get PIC code correct */
|
||
|
||
/* This is how to output an element of a case-vector that is relative.
|
||
This is only used for PIC code. See comments by the `casesi' insn in
|
||
i386.md for an explanation of the expression this outputs. */
|
||
|
||
#undef ASM_OUTPUT_ADDR_DIFF_ELT
|
||
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) \
|
||
fprintf (FILE, "\t.long _GLOBAL_OFFSET_TABLE_+[.-%s%d]\n", LPREFIX, VALUE)
|
||
|
||
/* Indicate that jump tables go in the text section. This is
|
||
necessary when compiling PIC code. */
|
||
|
||
#define JUMP_TABLES_IN_TEXT_SECTION 1
|
||
|
||
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
|
||
we want to retain compatibility with older gcc versions. */
|
||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||
|
||
/* i386 netbsd still uses old binutils that don't insert nops by default
|
||
when the .align directive demands to insert extra space in the text
|
||
segment. */
|
||
#undef ASM_OUTPUT_ALIGN
|
||
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
|
||
if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG))
|
||
|
||
/* Profiling routines, partially copied from i386/osfrose.h. */
|
||
|
||
/* Redefine this to use %eax instead of %edx. */
|
||
#undef FUNCTION_PROFILER
|
||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||
{ \
|
||
if (flag_pic) \
|
||
{ \
|
||
fprintf (FILE, "\tcall mcount@PLT\n"); \
|
||
} \
|
||
else \
|
||
{ \
|
||
fprintf (FILE, "\tcall mcount\n"); \
|
||
} \
|
||
}
|
||
|
||
/* Until they use ELF or something that handles dwarf2 unwinds
|
||
and initialization stuff better. */
|
||
#define DWARF2_UNWIND_INFO 0
|
||
|
||
|
||
/* Put relocations in the constant pool in the writable data section. */
|
||
#undef SELECT_RTX_SECTION
|
||
#define SELECT_RTX_SECTION(MODE,RTX) \
|
||
{ \
|
||
if (flag_pic && symbolic_operand (RTX)) \
|
||
data_section (); \
|
||
else \
|
||
readonly_data_section (); \
|
||
}
|
||
|
||
/* NetBSD's linker cannot align greater than 8 bytes anyway. */
|
||
#undef DATA_ALIGNMENT
|
||
#undef CONSTANT_ALIGNMENT
|