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] Eliminate legacy_push_arguments


Hello,

This eliminates the function legacy_push_arguments. For the ns32k, the only thing relying on it, I did a sideways step setting deprecated_push_arguments.

committed,
Andrew
2004-06-10  Andrew Cagney  <cagney@gnu.org>

	* ns32k-tdep.c (ns32k_push_arguments): New function.
	(ns32k_gdbarch_init): Set deprecated_push_arguments.
	* infcall.c (call_function_by_hand): Call error instead of
	legacy_push_arguments.
	* value.h (legacy_push_arguments): Delete declaration.
	* valops.c (legacy_push_arguments): Delete function.
	(value_push): Delete function.

Index: infcall.c
===================================================================
RCS file: /cvs/src/src/gdb/infcall.c,v
retrieving revision 1.48
diff -p -u -r1.48 infcall.c
--- infcall.c	7 Jun 2004 02:02:50 -0000	1.48
+++ infcall.c	10 Jun 2004 17:37:43 -0000
@@ -669,7 +669,7 @@ You must use a pointer to function type 
     sp = DEPRECATED_PUSH_ARGUMENTS (nargs, args, sp, struct_return,
 				    struct_addr);
   else
-    sp = legacy_push_arguments (nargs, args, sp, struct_return, struct_addr);
+    error ("This target does not support function calls");
 
   if (DEPRECATED_PUSH_RETURN_ADDRESS_P ())
     /* for targets that use no CALL_DUMMY */
Index: ns32k-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/ns32k-tdep.c,v
retrieving revision 1.75
diff -p -u -r1.75 ns32k-tdep.c
--- ns32k-tdep.c	18 May 2004 21:20:28 -0000	1.75
+++ ns32k-tdep.c	10 Jun 2004 17:37:43 -0000
@@ -418,6 +418,34 @@ ns32k_pop_frame (void)
   write_register (SP_REGNUM, fp + 8);
   flush_cached_frames ();
 }
+
+static CORE_ADDR
+ns32k_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
+		      int struct_return, CORE_ADDR struct_addr)
+{
+  /* ASSERT ( !struct_return); */
+  int i;
+  for (i = nargs - 1; i >= 0; i--)
+    {
+      struct value *arg = args[i];
+      int len = TYPE_LENGTH (VALUE_ENCLOSING_TYPE (arg));
+      int container_len = len;
+      int offset;
+
+      /* Are we going to put it at the high or low end of the
+	 container?  */
+      if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
+	offset = container_len - len;
+      else
+	offset = 0;
+
+      /* Stack grows downward.  */
+      sp -= container_len;
+      write_memory (sp + offset, VALUE_CONTENTS_ALL (arg), len);
+    }
+  return sp;
+}
+
 
 static void
 ns32k_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
@@ -524,6 +552,7 @@ ns32k_gdbarch_init (struct gdbarch_info 
   /* Call dummy info */
   set_gdbarch_deprecated_pop_frame (gdbarch, ns32k_pop_frame);
   set_gdbarch_call_dummy_location (gdbarch, ON_STACK);
+  set_gdbarch_deprecated_push_arguments (gdbarch, ns32k_push_arguments);
 
   /* Breakpoint info */
   set_gdbarch_breakpoint_from_pc (gdbarch, ns32k_breakpoint_from_pc);
Index: valops.c
===================================================================
RCS file: /cvs/src/src/gdb/valops.c,v
retrieving revision 1.126
diff -p -u -r1.126 valops.c
--- valops.c	5 May 2004 15:42:53 -0000	1.126
+++ valops.c	10 Jun 2004 17:37:43 -0000
@@ -50,8 +50,6 @@ extern int overload_debug;
 static int typecmp (int staticp, int varargs, int nargs,
 		    struct field t1[], struct value *t2[]);
 
-static CORE_ADDR value_push (CORE_ADDR, struct value *);
-
 static struct value *search_struct_field (char *, struct value *, int,
 				      struct type *, int);
 
@@ -1005,49 +1003,6 @@ push_bytes (CORE_ADDR sp, char *buffer, 
   return sp;
 }
 
-/* Push onto the stack the specified value VALUE.  Pad it correctly for
-   it to be an argument to a function.  */
-
-static CORE_ADDR
-value_push (CORE_ADDR sp, struct value *arg)
-{
-  int len = TYPE_LENGTH (VALUE_ENCLOSING_TYPE (arg));
-  int container_len = len;
-  int offset;
-
-  /* Are we going to put it at the high or low end of the container?  */
-  if (TARGET_BYTE_ORDER == BFD_ENDIAN_BIG)
-    offset = container_len - len;
-  else
-    offset = 0;
-
-  if (INNER_THAN (1, 2))
-    {
-      /* stack grows downward */
-      sp -= container_len;
-      write_memory (sp + offset, VALUE_CONTENTS_ALL (arg), len);
-    }
-  else
-    {
-      /* stack grows upward */
-      write_memory (sp + offset, VALUE_CONTENTS_ALL (arg), len);
-      sp += container_len;
-    }
-
-  return sp;
-}
-
-CORE_ADDR
-legacy_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
-		       int struct_return, CORE_ADDR struct_addr)
-{
-  /* ASSERT ( !struct_return); */
-  int i;
-  for (i = nargs - 1; i >= 0; i--)
-    sp = value_push (sp, args[i]);
-  return sp;
-}
-
 /* Create a value for an array by allocating space in the inferior, copying
    the data into that space, and then setting up an array value.
 
Index: value.h
===================================================================
RCS file: /cvs/src/src/gdb/value.h,v
retrieving revision 1.54
diff -p -u -r1.54 value.h
--- value.h	23 Oct 2003 22:36:14 -0000	1.54
+++ value.h	10 Jun 2004 17:37:43 -0000
@@ -560,10 +560,6 @@ extern struct value *find_function_in_in
 
 extern struct value *value_allocate_space_in_inferior (int);
 
-extern CORE_ADDR legacy_push_arguments (int nargs, struct value ** args,
-					CORE_ADDR sp, int struct_return,
-					CORE_ADDR struct_addr);
-
 extern struct value *value_of_local (const char *name, int complain);
 
 #endif /* !defined (VALUE_H) */

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