OSDN Git Service

* config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define.
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Jul 2003 00:22:51 +0000 (00:22 +0000)
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Jul 2003 00:22:51 +0000 (00:22 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69165 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/xtensa/xtensa.h

index 683a24e..69d1beb 100644 (file)
@@ -1,3 +1,7 @@
+2003-07-09  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define.
+
 2003-07-09  Aldy Hernandez  <aldyh@redhat.com>
 
        PR/11144
index 5f5e112..558084b 100644 (file)
@@ -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);