aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@acm.org>2003-07-10 00:22:51 +0000
committerBob Wilson <bwilson@gcc.gnu.org>2003-07-10 00:22:51 +0000
commita7bda3d5315977ba1b1cdeb387bfe66dd91a9090 (patch)
tree926a2180322f5f3f497cdedac44b58f27c1751d0
parenta1188b984f53780cbeeb965ae7933555b54488d7 (diff)
downloadgcc-a7bda3d5315977ba1b1cdeb387bfe66dd91a9090.zip
gcc-a7bda3d5315977ba1b1cdeb387bfe66dd91a9090.tar.gz
gcc-a7bda3d5315977ba1b1cdeb387bfe66dd91a9090.tar.bz2
* config/xtensa/xtensa.h (CRT_CALL_STATIC_FUNCTION): Define.
From-SVN: r69165
-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 683a24e..69d1beb 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 5f5e112..558084b 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);