This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Always call DEPRECATED_FIX_CALL_DUMMY :-(


Hello,

This puts back one of the old style deprecated dummy calls. The MIPS (and looking around, Alpha, and ...) were all abusing the old FIX_CALL_DUMMY method using it as an oportunity to write to random registers (T9 in the MIPS case) instead of fixing the call dummy words. Arrg.

With this in inferior function calls on IRIX again work (well at least shlib-call.exp works).

Andrew
2003-05-30  Andrew Cagney  <cagney@redhat.com>

	* infcall.c (call_function_by_hand): Always call
	DEPRECATED_FIX_CALL_DUMMY, even for AT_ENTRY_POINT case.

Index: infcall.c
===================================================================
RCS file: /cvs/src/src/gdb/infcall.c,v
retrieving revision 1.11
diff -u -r1.11 infcall.c
--- infcall.c	5 May 2003 17:56:55 -0000	1.11
+++ infcall.c	30 May 2003 18:40:39 -0000
@@ -530,6 +530,17 @@
 	}
       break;
     case AT_ENTRY_POINT:
+      if (DEPRECATED_FIX_CALL_DUMMY_P ())
+	{
+	  /* Sigh.  Some targets use DEPRECATED_FIX_CALL_DUMMY to
+             shove extra stuff onto the stack or into registers.  That
+             code should be in PUSH_DUMMY_CALL, however, in the mean
+             time ...  */
+	  /* If the target is manipulating DUMMY1, it looses big time.  */
+	  void *dummy1 = NULL;
+	  DEPRECATED_FIX_CALL_DUMMY (dummy1, sp, funaddr, nargs, args,
+				     value_type, using_gcc);
+	}
       real_pc = funaddr;
       dummy_addr = CALL_DUMMY_ADDRESS ();
       /* A call dummy always consists of just a single breakpoint, so

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]