* 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.
+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.
+
 2004-06-10  Brian Ford  <ford@vss.fsi.com>
 
        * coffread.c (coff_symfile_read): Prevent mixed debugging formats
 
     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 */
 
   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;
+}
+
 \f
 static void
 ns32k_store_struct_return (CORE_ADDR addr, CORE_ADDR sp)
   /* 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);
 
 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);
 
   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.
 
 
 
 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) */