diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 683a24e7767..69d1beb9b36 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2003-07-09 Bob Wilson + + * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define. + 2003-07-09 Aldy Hernandez PR/11144 diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h index 5f5e112cd85..558084b7292 100644 --- a/gcc/config/xtensa/xtensa.h +++ b/gcc/config/xtensa/xtensa.h @@ -1482,3 +1482,13 @@ typedef struct xtensa_args { /* Exception handling TODO!! */ #define DWARF_UNWIND_INFO 0 +/* Xtensa constant pool breaks the devices in crtstuff.c to control + section in where code resides. We have to write it as asm code. Use + a MOVI and let the assembler relax it -- for the .init and .fini + sections, the assembler knows to put the literal in the right + place. */ +#define CRT_CALL_STATIC_FUNCTION(SECTION_OP, FUNC) \ + asm (SECTION_OP "\n\ + movi\ta8, " USER_LABEL_PREFIX #FUNC "\n\ + callx8\ta8\n" \ + TEXT_SECTION_ASM_OP);