aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJim Wilson <wilson@gcc.gnu.org>1994-09-20 13:08:07 -0700
committerJim Wilson <wilson@gcc.gnu.org>1994-09-20 13:08:07 -0700
commitb696ee6b889c9c2c385cc759fe86019850f522ab (patch)
treeee269eee1153186cf01f888e50247c6ff767381d /gcc
parent4480e13f5e5133cb604d0ce893d6935c1e7b6033 (diff)
downloadgcc-b696ee6b889c9c2c385cc759fe86019850f522ab.zip
gcc-b696ee6b889c9c2c385cc759fe86019850f522ab.tar.gz
gcc-b696ee6b889c9c2c385cc759fe86019850f522ab.tar.bz2
(ASM_OUTPUT_UNDEF_FUNCTION): Define.
(ASM_OUTPUT_EXTERNAL_LIBCALL): Define. (ASM_DECLARE_FUNCTION_SIZE): Define. From-SVN: r8100
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/mips/iris5.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/config/mips/iris5.h b/gcc/config/mips/iris5.h
index 62703a1..5290136 100644
--- a/gcc/config/mips/iris5.h
+++ b/gcc/config/mips/iris5.h
@@ -110,3 +110,26 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
in the small data section if the user explicitly asks for it. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0
+
+/* In Irix 5, we must output a `.global name .text' directive for every used
+ but undefined function. If we don't, the linker may perform an optimization
+ (skipping over the insns that set $gp) when it is unsafe. This is used
+ indirectly by ASM_OUTPUT_EXTERNAL. */
+#define ASM_OUTPUT_UNDEF_FUNCTION(FILE, NAME) \
+do { \
+ fputs ("\t.globl ", FILE); \
+ assemble_name (FILE, NAME); \
+ fputs (" .text\n", FILE); \
+} while (0)
+
+/* Also do this for libcalls. */
+#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
+ mips_output_external_libcall (FILE, XSTR (FUN, 0))
+
+/* This does for functions what ASM_DECLARE_OBJECT_NAME does for variables.
+ This is used indirectly by ASM_OUTPUT_EXTERNAL. */
+#define ASM_DECLARE_FUNCTION_SIZE(STREAM, NAME, DECL) \
+do { \
+ tree name_tree = get_identifier (NAME); \
+ TREE_ASM_WRITTEN (name_tree) = 1; \
+} while (0)