#define TARGET_VERSION fprintf (stderr, " (IA-64) AIX");
#undef ASM_APP_ON
#define ASM_APP_ON "#APP\n"
#undef ASM_APP_OFF
#define ASM_APP_OFF "#NO_APP\n"
#define SET_ASM_OP "\t.set\t"
#undef MD_EXEC_PREFIX
#undef MD_STARTFILE_PREFIX
#define MD_STARTFILE_PREFIX "/usr/lib/ia64l64/"
#undef ASM_FILE_START
#define ASM_FILE_START(FILE) \
do { \
output_file_directive (FILE, main_input_filename); \
fprintf (FILE, "\t.version\t\"01.01\"\n"); \
} while (0)
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{!shared: \
%{pg:gcrt1_64.o%s} %{!pg:%{p:mcrt1_64.o%s} \
%{!p:%{profile:gcrt1_64.o%s} \
%{!profile:crt1_64.o%s}}}} \
crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
#define HANDLE_PRAGMA_PACK_PUSH_POP
#undef CPP_SPEC
#define CPP_SPEC "\
%{mcpu=itanium:-D__itanium__} %{mbig-endian:-D__BIG_ENDIAN__} \
%{ansi:-D_ANSI_C_SOURCE} \
%{posix:-D_POSIX_SOURCE} \
%{cpp_cpu} \
-D__LONG_MAX__=9223372036854775807L"
#undef CPP_PREDEFINES
#define CPP_PREDEFINES "\
-D_AIX -D_AIX64 -D_LONGLONG -Dunix \
-Asystem=unix -Asystem=aix \
-D__64BIT__ -D_LONG_LONG -D_IA64 -D__int128=__size128_t"
#undef CPLUSPLUS_CPP_SPEC
#define CPLUSPLUS_CPP_SPEC \
"-D_XOPEN_SOURCE=500 \
-D_XOPEN_SOURCE_EXTENDED=1 \
-D_LARGE_FILE_API \
-D_ALL_SOURCE \
-D__LONG_MAX__=9223372036854775807L \
%{cpp_cpu}"
#undef LINK_SPEC
#define LINK_SPEC "\
%{shared:-shared} \
%{!shared: \
%{!static: \
%{rdynamic:-export-dynamic} \
%{!dynamic-linker:-dynamic-linker /usr/lib/ia64l64/libc.so.1}} \
%{static:-static}}"
#define JMP_BUF_SIZE 85
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
do { \
} while (0)
#ifndef CROSS_COMPILE
#undef STANDARD_STARTFILE_PREFIX
#define STANDARD_STARTFILE_PREFIX "/usr/lib/ia64l64/"
#endif
#undef SELECT_SECTION
#define SELECT_SECTION(DECL,RELOC,ALIGN) \
{ \
if (TREE_CODE (DECL) == STRING_CST) \
{ \
if (! flag_writable_strings) \
const_section (); \
else \
data_section (); \
} \
else if (TREE_CODE (DECL) == VAR_DECL) \
{ \
if (XSTR (XEXP (DECL_RTL (DECL), 0), 0)[0] \
== SDATA_NAME_FLAG_CHAR) \
sdata_section (); \
\
else if (DECL_READONLY_SECTION (DECL, RELOC) && ! (RELOC)) \
const_section (); \
else \
data_section (); \
} \
\
else if (RELOC) \
data_section (); \
else \
const_section (); \
}
extern unsigned int ia64_section_threshold;
#undef SELECT_RTX_SECTION
#define SELECT_RTX_SECTION(MODE, RTX, ALIGN) \
{ \
if (GET_MODE_SIZE (MODE) > 0 \
&& GET_MODE_SIZE (MODE) <= ia64_section_threshold) \
sdata_section (); \
else if (symbolic_operand ((RTX), (MODE))) \
data_section (); \
else \
const_section (); \
}
#undef UNIQUE_SECTION
#define UNIQUE_SECTION(DECL, RELOC) \
do \
{ \
int len; \
int sec; \
const char *name; \
char *string; \
const char *prefix; \
static const char *const prefixes[3][2] = \
{ \
{ ".text.", ".gnu.linkonce.t." }, \
{ ".rodata.", ".gnu.linkonce.r." }, \
{ ".data.", ".gnu.linkonce.d." } \
\
}; \
\
if (TREE_CODE (DECL) == FUNCTION_DECL) \
sec = 0; \
\
else if (DECL_READONLY_SECTION (DECL, RELOC) && ! (RELOC))\
sec = 1; \
else \
sec = 2; \
\
name = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (DECL)); \
\
STRIP_NAME_ENCODING (name, name); \
prefix = prefixes[sec][DECL_ONE_ONLY(DECL)]; \
len = strlen (name) + strlen (prefix); \
string = alloca (len + 1); \
\
sprintf (string, "%s%s", prefix, name); \
\
DECL_SECTION_NAME (DECL) = build_string (len, string); \
} \
while (0)
#undef WCHAR_TYPE
#ifdef __64BIT__
#define WCHAR_TYPE "unsigned int"
#else
#define WCHAR_TYPE "unsigned short"
#endif
#define BUILD_VA_LIST_TYPE(VALIST) \
(VALIST) = build_pointer_type(char_type_node)