#undef TARGET_MACHO
#define TARGET_MACHO 1
#undef TARGET_CPU_DEFAULT
#define TARGET_CPU_DEFAULT 4
#define TARGET_VERSION fprintf (stderr, " (i386 Darwin)");
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__i386__"); \
builtin_define ("__i386"); \
builtin_define ("__LITTLE_ENDIAN__"); \
\
SUBTARGET_OS_CPP_BUILTINS (); \
} \
while (0)
#undef CC1_SPEC
#define CC1_SPEC "%{!static:%{!mxxdynamic-no-pic:-fPIC}} %{!<faltivec} %{!<mlong-branch} %{!<mlongcall} %{!<mcpu=G4} %{!<mcpu=G5}"
#define ASM_SPEC "-arch %T \
%{Zforce_cpusubtype_ALL:-force_cpusubtype_ALL} \
%{!Zforce_cpusubtype_ALL:%{mmmx:-force_cpusubtype_ALL}\
%{msse:-force_cpusubtype_ALL}\
%{msse2:-force_cpusubtype_ALL}}"
#define HOT_TEXT_SECTION_NAME "__TEXT,__text,regular,pure_instructions"
#define UNLIKELY_EXECUTED_TEXT_SECTION_NAME \
"__TEXT,__unexecuted,regular,pure_instructions"
#define SECTION_FORMAT_STRING ".section %s\n\t.align 2\n"
#define CPP_ALTIVEC_SPEC "%{!<faltivec}"
#undef ASSEMBLER_DIALECT
#define ASSEMBLER_DIALECT ASM_ATT
#define SHIFT_DOUBLE_OMITS_COUNT 0
#define ASM_COMMENT_START "#"
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
#undef TARGET_DEEP_BRANCH_PREDICTION
#define TARGET_DEEP_BRANCH_PREDICTION 0
#define LPREFIX "L"
#define ASM_BYTE_OP "\t.byte\t"
#define ASM_SHORT "\t.word\t"
#define ASM_LONG "\t.long\t"
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
do { if ((LOG) != 0) \
{ \
\
if (in_text_section () \
|| darwin_named_section_is ("__TEXT,__textcoal,coalesced") \
|| darwin_named_section_is ("__TEXT,__textcoal_nt,coalesced,no_toc") \
|| darwin_named_section_is (STATIC_INIT_SECTION)) \
fprintf (FILE, "\t%s %d,0x90\n", ALIGN_ASM_OP, (LOG)); \
else \
fprintf (FILE, "\t%s %d\n", ALIGN_ASM_OP, (LOG)); \
} \
} while (0)
#define ASM_OUTPUT_COMMON(FILE, NAME, SIZE, ROUNDED) \
( fputs (".comm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u\n", (ROUNDED)))
#define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED) \
( fputs (".lcomm ", (FILE)), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ",%u\n", (ROUNDED)))
#if 0
#undef ADJUST_FIELD_ALIGN
#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \
(((COMPUTED) == RS6000_VECTOR_ALIGNMENT) \
? RS6000_VECTOR_ALIGNMENT \
: (MIN ((COMPUTED), 32)))
#undef ROUND_TYPE_ALIGN
union tree_node;
extern unsigned round_type_align (union tree_node*, unsigned, unsigned);
#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
round_type_align(STRUCT, COMPUTED, SPECIFIED)
#endif
enum
{
old_x86_MASK_STACK_PROBE = MASK_STACK_PROBE,
old_x86_MASK_INTEL_SYNTAX = MASK_INTEL_SYNTAX,
old_x86_MASK_NO_RED_ZONE = MASK_NO_RED_ZONE
};
#undef MASK_NO_RED_ZONE
#define MASK_NO_RED_ZONE 0
#undef MASK_INTEL_SYNTAX
#define MASK_INTEL_SYNTAX 0
#undef MASK_STACK_PROBE
#define MASK_STACK_PROBE 0
#undef TARGET_DEEP_BRANCH_PREDICTION
#define TARGET_DEEP_BRANCH_PREDICTION 0
#undef MAX_LONG_TYPE_SIZE
#define MAX_LONG_TYPE_SIZE 32
#define MASK_ALIGN_MAC68K old_x86_MASK_STACK_PROBE
#define TARGET_ALIGN_MAC68K (target_flags & MASK_ALIGN_MAC68K)
#define MASK_MACHO_DYNAMIC_NO_PIC 0
#define TARGET_DYNAMIC_NO_PIC (target_flags & MASK_MACHO_DYNAMIC_NO_PIC)
#define MASK_ALIGN_NATURAL old_x86_MASK_INTEL_SYNTAX
#define TARGET_ALIGN_NATURAL (target_flags & MASK_ALIGN_NATURAL)
#undef SUBTARGET_SWITCHES
#define SUBTARGET_SWITCHES \
{"align-mac68k", MASK_ALIGN_MAC68K, \
N_("Align structs and unions according to mac68k rules")}, \
{"align-power", - (MASK_ALIGN_MAC68K | MASK_ALIGN_NATURAL), \
N_("Align structs and unions according to PowerPC rules")}, \
{"align-natural", MASK_ALIGN_NATURAL, \
N_("Align structs and unions according to natural rules")}, \
{"dynamic-no-pic", MASK_MACHO_DYNAMIC_NO_PIC, \
N_("Generate code suitable for executables (NOT shared libs)")},\
{"no-dynamic-no-pic", -MASK_MACHO_DYNAMIC_NO_PIC, ""},
#undef LOCAL_ALIGNMENT
#define LOCAL_ALIGNMENT(TYPE, ALIGN) (MAX (ALIGN, TYPE_ALIGN (TYPE)))
#if 0
#define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \
((TREE_CODE (STRUCT) == RECORD_TYPE \
|| TREE_CODE (STRUCT) == UNION_TYPE \
|| TREE_CODE (STRUCT) == QUAL_UNION_TYPE) \
&& TYPE_FIELDS (STRUCT) != 0 \
&& DECL_MODE (TYPE_FIELDS (STRUCT)) == DFmode \
? MAX (MAX ((COMPUTED), (SPECIFIED)), 64) \
: MAX ((COMPUTED), (SPECIFIED)))
#endif
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
do { \
if (MACHOPIC_INDIRECT) \
{ \
const char *name = machopic_stub_name ("*mcount"); \
fprintf (FILE, "\tcall %s\n", name+1); \
machopic_validate_stub_or_non_lazy_ptr (name, 1); \
} \
else fprintf (FILE, "\tcall mcount\n"); \
} while (0)
#undef SUBTARGET_OVERRIDE_OPTIONS
#define SUBTARGET_OVERRIDE_OPTIONS \
do { \
if (!ix86_arch_string) ix86_arch_string = "pentiumpro"; \
if (!ix86_cpu_string) ix86_cpu_string = "pentium4"; \
} while (0)
#define BASIC_STACK_BOUNDARY (128)