* sparc-tdep.c (sparc32_return_value): New function.
(sparc32_use_struct_convention, sparc32_return_value_on_stack): Remove functions. (sparc32_gdbarch_init): Set return_value, don't set extract_return_value, store_return_value, use_struct_convention and return_value_on_stack.
This commit is contained in:
parent
fb316966f9
commit
b9d4c5eddc
2 changed files with 25 additions and 20 deletions
|
@ -1,5 +1,12 @@
|
||||||
2004-01-03 Mark Kettenis <kettenis@gnu.org>
|
2004-01-03 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
|
* sparc-tdep.c (sparc32_return_value): New function.
|
||||||
|
(sparc32_use_struct_convention, sparc32_return_value_on_stack):
|
||||||
|
Remove functions.
|
||||||
|
(sparc32_gdbarch_init): Set return_value, don't set
|
||||||
|
extract_return_value, store_return_value, use_struct_convention
|
||||||
|
and return_value_on_stack.
|
||||||
|
|
||||||
* sparc-sol2-nat.c: Add missing ')'.
|
* sparc-sol2-nat.c: Add missing ')'.
|
||||||
|
|
||||||
2004-01-03 J. Brobecker <brobecker@gnat.com>
|
2004-01-03 J. Brobecker <brobecker@gnat.com>
|
||||||
|
|
|
@ -815,6 +815,23 @@ sparc32_store_return_value (struct type *type, struct regcache *regcache,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static enum return_value_convention
|
||||||
|
sparc32_return_value (struct gdbarch *gdbarch, struct type *type,
|
||||||
|
struct regcache *regcache, void *readbuf,
|
||||||
|
const void *writebuf)
|
||||||
|
{
|
||||||
|
if (sparc_structure_or_union_p (type)
|
||||||
|
|| (sparc_floating_p (type) && TYPE_LENGTH (type) == 16))
|
||||||
|
return RETURN_VALUE_STRUCT_CONVENTION;
|
||||||
|
|
||||||
|
if (readbuf)
|
||||||
|
sparc32_extract_return_value (type, regcache, readbuf);
|
||||||
|
if (writebuf)
|
||||||
|
sparc32_store_return_value (type, regcache, writebuf);
|
||||||
|
|
||||||
|
return RETURN_VALUE_REGISTER_CONVENTION;
|
||||||
|
}
|
||||||
|
|
||||||
/* Extract from REGCACHE, which contains the (raw) register state, the
|
/* Extract from REGCACHE, which contains the (raw) register state, the
|
||||||
address in which a function should return its structure value, as a
|
address in which a function should return its structure value, as a
|
||||||
CORE_ADDR. */
|
CORE_ADDR. */
|
||||||
|
@ -828,20 +845,6 @@ sparc_extract_struct_value_address (struct regcache *regcache)
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
sparc32_use_struct_convention (int gcc_p, struct type *type)
|
|
||||||
{
|
|
||||||
gdb_assert (sparc_structure_or_union_p (type));
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
|
||||||
sparc32_return_value_on_stack (struct type *type)
|
|
||||||
{
|
|
||||||
gdb_assert (!sparc_structure_or_union_p (type));
|
|
||||||
return (sparc_floating_p (type) && TYPE_LENGTH (type) == 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
sparc32_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
|
sparc32_stabs_argument_has_addr (struct gdbarch *gdbarch, struct type *type)
|
||||||
{
|
{
|
||||||
|
@ -1040,12 +1043,7 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||||
set_gdbarch_push_dummy_code (gdbarch, sparc32_push_dummy_code);
|
set_gdbarch_push_dummy_code (gdbarch, sparc32_push_dummy_code);
|
||||||
set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call);
|
set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call);
|
||||||
|
|
||||||
set_gdbarch_extract_return_value (gdbarch, sparc32_extract_return_value);
|
set_gdbarch_return_value (gdbarch, sparc32_return_value);
|
||||||
set_gdbarch_store_return_value (gdbarch, sparc32_store_return_value);
|
|
||||||
set_gdbarch_extract_struct_value_address
|
|
||||||
(gdbarch, sparc_extract_struct_value_address);
|
|
||||||
set_gdbarch_use_struct_convention (gdbarch, sparc32_use_struct_convention);
|
|
||||||
set_gdbarch_return_value_on_stack (gdbarch, sparc32_return_value_on_stack);
|
|
||||||
set_gdbarch_stabs_argument_has_addr
|
set_gdbarch_stabs_argument_has_addr
|
||||||
(gdbarch, sparc32_stabs_argument_has_addr);
|
(gdbarch, sparc32_stabs_argument_has_addr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue