2003-11-22 Andrew Cagney <cagney@redhat.com>

* hppa-tdep.c (hppa_value_returned_from_stack): Delete function.
	* config/pa/tm-hppa.h (hppa_value_returned_from_stack): Delete
	declaration.
	(DEPRECATED_VALUE_RETURNED_FROM_STACK): Delete macro.
	* infcall.c (call_function_by_hand): Delete #ifdef
	DEPRECATED_VALUE_RETURNED_FROM_STACK code.
	* infcmd.c (print_return_value): Ditto.
This commit is contained in:
Andrew Cagney 2003-11-22 22:15:23 +00:00
parent a69146da95
commit 00d3340373
5 changed files with 9 additions and 65 deletions

View file

@ -1,5 +1,13 @@
2003-11-22 Andrew Cagney <cagney@redhat.com>
* hppa-tdep.c (hppa_value_returned_from_stack): Delete function.
* config/pa/tm-hppa.h (hppa_value_returned_from_stack): Delete
declaration.
(DEPRECATED_VALUE_RETURNED_FROM_STACK): Delete macro.
* infcall.c (call_function_by_hand): Delete #ifdef
DEPRECATED_VALUE_RETURNED_FROM_STACK code.
* infcmd.c (print_return_value): Ditto.
* mips-tdep.c (skip_prologue_using_sal): New function.
(mips32_skip_prologue, mips16_skip_prologue): Use
skip_prologue_using_sal to get an upper bound on the search.

View file

@ -109,24 +109,6 @@ extern int hppa_instruction_nullified (void);
#define INSTRUCTION_NULLIFIED hppa_instruction_nullified ()
#endif
/* elz: Return a large value, which is stored on the stack at addr.
This is defined only for the hppa, at this moment. The above macro
DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS is not called anymore,
because it assumes that on exit from a called function which
returns a large structure on the stack, the address of the ret
structure is still in register 28. Unfortunately this register is
usually overwritten by the called function itself, on hppa. This is
specified in the calling convention doc. As far as I know, the only
way to get the return value is to have the caller tell us where it
told the callee to put it, rather than have the callee tell us. */
struct value *hppa_value_returned_from_stack (struct type *valtype,
CORE_ADDR addr);
/* FIXME: cagney/2003-09-27: This method should now be redundant.
Instead, when "struct return convention", the inferior function
call code always saves and uses the struct return's stack address. */
#define DEPRECATED_VALUE_RETURNED_FROM_STACK(valtype,addr) \
hppa_value_returned_from_stack (valtype, addr)
extern void hppa_frame_init_saved_regs (struct frame_info *);
#define DEPRECATED_FRAME_INIT_SAVED_REGS(FI) \
hppa_frame_init_saved_regs (FI)

View file

@ -2060,30 +2060,6 @@ hppa_push_arguments (int nargs, struct value **args, CORE_ADDR sp,
#endif
/* elz: this function returns a value which is built looking at the given address.
It is called from call_function_by_hand, in case we need to return a
value which is larger than 64 bits, and it is stored in the stack rather than
in the registers r28 and r29 or fr4.
This function does the same stuff as value_being_returned in values.c, but
gets the value from the stack rather than from the buffer where all the
registers were saved when the function called completed. */
/* FIXME: cagney/2003-09-27: This function is no longer needed. The
inferior function call code now directly handles the case described
above. */
struct value *
hppa_value_returned_from_stack (struct type *valtype, CORE_ADDR addr)
{
struct value *val;
val = allocate_value (valtype);
CHECK_TYPEDEF (valtype);
target_read_memory (addr, VALUE_CONTENTS_RAW (val), TYPE_LENGTH (valtype));
return val;
}
/* elz: Used to lookup a symbol in the shared libraries.
This function calls shl_findsym, indirectly through a
call to __d_shl_get. __d_shl_get is in end.c, which is always

View file

@ -1075,22 +1075,6 @@ the function call).", name);
do_cleanups (inf_status_cleanup);
/* Figure out the value returned by the function. */
/* elz: I defined this new macro for the hppa architecture only.
this gives us a way to get the value returned by the function
from the stack, at the same address we told the function to put
it. We cannot assume on the pa that r28 still contains the
address of the returned structure. Usually this will be
overwritten by the callee. I don't know about other
architectures, so I defined this macro */
/* FIXME: cagney/2003-09-27: This is no longer needed. The problem
is now handled directly be by the code below. */
#ifdef DEPRECATED_VALUE_RETURNED_FROM_STACK
if (struct_return)
{
do_cleanups (retbuf_cleanup);
return DEPRECATED_VALUE_RETURNED_FROM_STACK (value_type, struct_addr);
}
#endif
if (struct_return)
{
/* NOTE: cagney/2003-09-27: This assumes that PUSH_DUMMY_CALL

View file

@ -1086,13 +1086,7 @@ print_return_value (int structure_return, struct type *value_type)
a more complicated case of what is already being done in in the
inferior function call code. In fact, when inferior function
calls are made async, this will likely be made the norm. */
#ifdef DEPRECATED_VALUE_RETURNED_FROM_STACK
#define DEPRECATED_VALUE_RETURNED_FROM_STACK_P 1
#else
#define DEPRECATED_VALUE_RETURNED_FROM_STACK_P 0
#endif
else if (gdbarch_return_value_p (current_gdbarch)
|| DEPRECATED_VALUE_RETURNED_FROM_STACK_P)
else if (gdbarch_return_value_p (current_gdbarch))
/* We cannot determine the contents of the structure because it is
on the stack, and we don't know where, since we did not
initiate the call, as opposed to the call_function_by_hand