gcc/gcc_objdir/tm.h

181 lines
5.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef GCC_TM_H
#define GCC_TM_H
/* ************************************************************************** */
/* áÒÈÉÔÅËÔÕÒÎÏ-ÚÁ×ÉÓÉÍÁÑ ÞÁÓÔØ. */
#if defined(__sparc__)
#if defined(__sparcv9) || defined(__arch64__)
#define UNITS_PER_WORD 8
#else /* defined(__sparcv9) || defined(__arch64__) */
#define UNITS_PER_WORD 4
#endif /* defined(__sparcv9) || defined(__arch64__) */
#define MIN_UNITS_PER_WORD UNITS_PER_WORD
/* FIXME òÁÚÏÂÒÁÔØÓÑ, ÚÁÞÅÍ ÏÎÏ ÎÕÖÎÏ, É, ×ÏÚÍÏÖÎÏ, ÏÐÒÅÄÅÌÉÔØ ÄÌÑ e2k. */
#define WIDEST_HARDWARE_FP_SIZE 64
/* éÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÏÐÒÅÄÅÌÅÎÉÉ DWARF_FRAME_REGISTERS. */
#define FIRST_PSEUDO_REGISTER 103
/* éÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÏÐÒÅÄÅÌÅÎÉÉ __LIBGCC_STACK_GROWS_DOWNWARD__. */
#define STACK_GROWS_DOWNWARD 1
/* éÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÏÐÒÅÄÅÌÅÎÉÉ __LIBGCC_EH_RETURN_STACKADJ_RTX__. */
#define EH_RETURN_STACKADJ_RTX /* */
#define TEXT_SECTION_ASM_OP "\t.text"
#define INIT_SECTION_ASM_OP "\t.section \".init\""
#define FINI_SECTION_ASM_OP "\t.section \".fini\""
/* ðÏÄÏÊÄ£Ô É ÒÅÁÌÉÚÁÃÉÑ ÐÏ ÕÍÏÌÞÁÎÉÀ ÉÚ crtstuff.c, ÎÏ ÔÁË ÁÓÓÅÍÂÌÅÒÎÙÊ ÆÁÊÌ
* ÐÏÌÕÞÁÅÔÓÑ ÞÉÝÅ (ÎÅ ÓÔÒÏÑÔÓÑ ÍÕÓÏÒÎÙÅ ÐÒÏÌÏÇÉ É ÜÐÉÌÏÇÉ). */
#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
asm(SECTION_OP "\n" \
"\tcall " #FUNC "\n" \
"\t nop");
#elif defined(__e2k__)
/* éÓÐÏÌØÚÕÅÔÓÑ × libgcc2.c, libgcc2.h É ÐÒÉ ÏÐÒÅÄÅÌÅÎÉÉ MIN_UNITS_PER_WORD. */
#define UNITS_PER_WORD 8
/* éÓÐÏÌØÚÕÅÔÓÑ × libgcc2.c, libgcc2.h. */
#define MIN_UNITS_PER_WORD UNITS_PER_WORD
/* éÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÏÐÒÅÄÅÌÅÎÉÉ DWARF_FRAME_REGISTERS. */
/* FIXME òÁÚÏÂÒÁÔØÓÑ, ÎÕÖÎÏ ÌÉ ÏÎÏ ÄÌÑ e2k. */
#define FIRST_PSEUDO_REGISTER 48
#define TEXT_SECTION_ASM_OP "\t.text"
#define INIT_SECTION_ASM_OP "\t.section \".init\", \"ax\", @progbits"
#define FINI_SECTION_ASM_OP "\t.section \".fini\", \"ax\", @progbits"
/* ÷ÁÖÎÏ, ÞÔÏ wbs = 0x6. åÓÌÉ ÉÚÍÅÎÑÔØ, ÔÏ ÎÕÖÎÏ ÔÁËÖÅ ÉÓÐÒÁ×ÌÑÔØ crti.c
* (ËÏÔÏÒÙÊ ÉÄ£Ô × ÓÏÓÔÁ×Å glibc). á ÜÔÏ ÎÁÒÕÛÉÔ Ä×ÏÉÞÎÕÀ ÓÏ×ÍÅÓÔÉÍÏÓÔØ. */
#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \
asm(SECTION_OP "\n" \
"\t{ nop 4; disp %ctpr1, " #FUNC " }\n" \
"\tcall %ctpr1, wbs = 0x6\n");
#endif /* defined(__sparc__) || defined(__e2k__) */
/* ************************************************************************** */
/* ïÂÝÁÑ ÞÁÓÔØ ÄÌÑ ÐÏÄÄÅÒÖÉ×ÁÅÍÙÈ ÐÌÁÔÆÏÒÍ. */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c, libgcc2.c. */
#define OBJECT_FORMAT_ELF
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. îÁÛ ËÏÍÐÉÌÑÔÏÒ ÎÅ ÕÍÅÅÔ transactional memory,
* ÐÏÜÔÏÍÕ 0. */
#define USE_TM_CLONE_REGISTRY 0
/* ÷ËÌÀÞÉÔØ × auto-host.h ÐÏÓÌÅ ×ËÌÀÞÅÎÉÑ ÐÏÄÄÅÒÖËÉ .init_array, .fini_array. */
#ifdef HAVE_INITFINI_ARRAY_SUPPORT
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#define USE_INITFINI_ARRAY
/* åÓÌÉ ÅÓÔØ ÐÏÄÄÅÒÖËÁ .init_array, .fini_array, ÜÔÉ ÍÁËÒÏÓÙ ÎÕÖÎÏ
* ÒÁÚÏÐÒÅÄÅÌÉÔØ. */
#undef INIT_SECTION_ASM_OP
#undef FINI_SECTION_ASM_OP
/* éÓÐÏÌØÚÕÅÔÓÑ ÐÒÉ ÏÐÒÅÄÅÌÅÎÉÉ __LIBGCC_INIT_ARRAY_SECTION_ASM_OP__. */
#define INIT_ARRAY_SECTION_ASM_OP
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c */
#define FINI_ARRAY_SECTION_ASM_OP
#endif /* HAVE_INITFINI_ARRAY_SUPPORT */
#define BITS_PER_UNIT 8
/* íÁËÒÏÓ Ó ÔÁËÉÍ ÉÍÅÎÅÍ ÉÓÐÏÌØÚÕÅÔÓÑ × gthr.h, gthr-posix.h. */
#define SUPPORTS_WEAK 1
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#define TARGET_ATTRIBUTE_WEAK __attribute__ ((weak))
/* éÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ __LIBGCC_EH_FRAME_SECTION_NAME__. */
#define EH_FRAME_SECTION_NAME ".eh_frame"
/* éÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ __LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__. */
#define EH_TABLES_CAN_BE_READ_ONLY 1
/* éÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ __LIBGCC_DWARF_FRAME_REGISTERS__. */
#define DWARF_FRAME_REGISTERS FIRST_PSEUDO_REGISTER
/* éÓÐÏÌØÚÕÅÔÓÑ × unwind-dw2.c. */
#define DWARF_REG_TO_UNWIND_COLUMN(REGNO) (REGNO)
/* éÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ __LIBGCC_VTABLE_USES_DESCRIPTORS__. */
#define TARGET_VTABLE_USES_DESCRIPTORS 0
/* éÓÐÏÌØÚÕÅÔÓÑ × libgcov.h, libgcov-driver-system.c. */
#define TARGET_POSIX_IO
/* éÓÐÏÌØÚÕÅÔÓÑ × libgcov.h. */
#define LONG_LONG_TYPE_SIZE 64
/* ************************************************************************** */
/* ïÐÒÅÄÅÌÅÎÉÅ ÍÁËÒÏÓÏ×, ËÏÔÏÒÙÅ ÐÏ-ÈÏÒÏÛÅÍÕ ÄÏÌÖÅÎ ÏÐÒÅÄÅÌÑÔØ ËÏÍÐÉÌÑÔÏÒ
* ÐÏ ÏÐÃÉÉ -fbuilding-libgcc. ðÏ ÜÔÏÊ ÏÐÃÉÉ ÍÙ ÏÐÒÅÄÅÌÑÅÍ ÞÁÓÔØ ÉÚ ÎÉÈ;
* ÏÓÔÁÌØÎÙÅ ÕÄÏÂÎÅÅ ÄÅÒÖÁÔØ ÚÄÅÓØ. */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#define __LIBGCC_EH_TABLES_CAN_BE_READ_ONLY__ EH_TABLES_CAN_BE_READ_ONLY
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#ifdef EH_FRAME_SECTION_NAME
#define __LIBGCC_EH_FRAME_SECTION_NAME__ EH_FRAME_SECTION_NAME
#endif /* EH_FRAME_SECTION_NAME */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#ifdef CTORS_SECTION_ASM_OP
#define __LIBGCC_CTORS_SECTION_ASM_OP__ CTORS_SECTION_ASM_OP
#endif /* CTORS_SECTION_ASM_OP */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#ifdef DTORS_SECTION_ASM_OP
#define __LIBGCC_DTORS_SECTION_ASM_OP__ DTORS_SECTION_ASM_OP
#endif /* DTORS_SECTION_ASM_OP */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c. */
#ifdef TEXT_SECTION_ASM_OP
#define __LIBGCC_TEXT_SECTION_ASM_OP__ TEXT_SECTION_ASM_OP
#endif /* TEXT_SECTION_ASM_OP */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c, libgcc2.c. */
#ifdef INIT_SECTION_ASM_OP
#define __LIBGCC_INIT_SECTION_ASM_OP__ INIT_SECTION_ASM_OP
#endif /* INIT_SECTION_ASM_OP */
/* éÓÐÏÌØÚÕÅÔÓÑ × crtstuff.c, libgcc2.c. */
#ifdef INIT_ARRAY_SECTION_ASM_OP
#define __LIBGCC_INIT_ARRAY_SECTION_ASM_OP__
#endif /* INIT_ARRAY_SECTION_ASM_OP */
/* éÓÐÏÌØÚÕÅÔÓÑ × unwind-dw2.c. */
#if STACK_GROWS_DOWNWARD
#define __LIBGCC_STACK_GROWS_DOWNWARD__
#endif /* STACK_GROWS_DOWNWARD */
/* éÓÐÏÌØÚÕÅÔÓÑ × unwind-dw2.c. */
#define __LIBGCC_DWARF_FRAME_REGISTERS__ DWARF_FRAME_REGISTERS
/* éÓÐÏÌØÚÕÅÔÓÑ × unwind-dw2.c */
#ifdef EH_RETURN_STACKADJ_RTX
#define __LIBGCC_EH_RETURN_STACKADJ_RTX__
#endif /* EH_RETURN_STACKADJ_RTX */
/* éÓÐÏÌØÚÕÅÔÓÑ × libgcov-profiler.c. */
#define __LIBGCC_VTABLE_USES_DESCRIPTORS__ TARGET_VTABLE_USES_DESCRIPTORS
#endif /* GCC_TM_H */