From d31b72a3144f839485f928bc2ef9dc6b51e6c87e Mon Sep 17 00:00:00 2001
From: Mark Alexander <marka@cygnus>
Date: Sun, 15 Dec 1996 04:59:33 +0000
Subject: [PATCH] 	* config/mips/tm-mips.h (FIX_CALL_DUMMY): Define to
 set up $25 	correctly for PIC on Irix 5.

---
 gdb/config/mips/tm-mips.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gdb/config/mips/tm-mips.h b/gdb/config/mips/tm-mips.h
index e9f1fe2e472..10944298e32 100644
--- a/gdb/config/mips/tm-mips.h
+++ b/gdb/config/mips/tm-mips.h
@@ -183,6 +183,7 @@ extern int in_sigtramp PARAMS ((CORE_ADDR, char *));
 #  define MIPS_LAST_ARG_REGNUM 7  /* old ABI uses R4 through R7 for args */
 #  define MIPS_NUM_ARG_REGS 4
 #endif
+#define T9_REGNUM 25		/* Contains address of callee in PIC */
 #define SP_REGNUM 29		/* Contains address of top of stack */
 #define RA_REGNUM 31		/* Contains return address value */
 #define PS_REGNUM 32		/* Contains processor status */
@@ -392,7 +393,10 @@ extern void mips_pop_frame PARAMS ((void));
 
 #define CALL_DUMMY_BREAKPOINT_OFFSET (0)
 
-#define FIX_CALL_DUMMY(dummyname, start_sp, fun, nargs, args, rettype, gcc_p)
+/* On Irix, $t9 ($25) contains the address of the callee (used for PIC).
+   It doesn't hurt to do this on other systems; $t9 will be ignored.  */
+#define FIX_CALL_DUMMY(dummyname, start_sp, fun, nargs, args, rettype, gcc_p) \
+    write_register(T9_REGNUM, fun)
 
 #define CALL_DUMMY_LOCATION AT_ENTRY_POINT