summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-10 00:22:51 +0000
committerbwilson <bwilson@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-10 00:22:51 +0000
commitc82c3ed2bd64ebfe15b3b49aeeb4de5aa683e41b (patch)
tree926a2180322f5f3f497cdedac44b58f27c1751d0 /gcc
parentbc503ec38d8c7dc0a4de861395ad636ea396196b (diff)
downloadppe42-gcc-c82c3ed2bd64ebfe15b3b49aeeb4de5aa683e41b.tar.gz
ppe42-gcc-c82c3ed2bd64ebfe15b3b49aeeb4de5aa683e41b.zip
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/xtensa/xtensa.h10
2 files changed, 14 insertions, 0 deletions
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 <bob.wilson@acm.org>
+
+ * config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define.
+
2003-07-09 Aldy Hernandez <aldyh@redhat.com>
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);
OpenPOWER on IntegriCloud