181 lines
5.8 KiB
C
181 lines
5.8 KiB
C
#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 */
|