From c82c3ed2bd64ebfe15b3b49aeeb4de5aa683e41b Mon Sep 17 00:00:00 2001 From: bwilson Date: Thu, 10 Jul 2003 00:22:51 +0000 Subject: [PATCH] * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69165 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 4 ++++ gcc/config/xtensa/xtensa.h | 10 ++++++++++ 2 files changed, 14 insertions(+) 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); -- 2.11.4.GIT