* sparc-tdep.c (sparc32_extract_struct_value_address): Rename from
sparc_extract_struct_value_address. (sparc32_gdbarch_init): Set extract_struct_value_address. * sparc64-tdep.c (sparc64_extract_struct_value_address): New function. (sparc64_init_abi): Set extract_struct_value_address. Don't set return_value_on_stack.
This commit is contained in:
parent
762c360d8c
commit
ca9d58e902
@ -1,5 +1,13 @@
|
||||
2004-01-11 Mark Kettenis <kettenis@gnu.org>
|
||||
|
||||
* sparc-tdep.c (sparc32_extract_struct_value_address): Rename from
|
||||
sparc_extract_struct_value_address.
|
||||
(sparc32_gdbarch_init): Set extract_struct_value_address.
|
||||
* sparc64-tdep.c (sparc64_extract_struct_value_address): New
|
||||
function.
|
||||
(sparc64_init_abi): Set extract_struct_value_address. Don't set
|
||||
return_value_on_stack.
|
||||
|
||||
* NEWS: Mention that %cs and %ss have been added to the AMD64
|
||||
configurations
|
||||
|
||||
|
@ -839,7 +839,7 @@ sparc32_return_value (struct gdbarch *gdbarch, struct type *type,
|
||||
CORE_ADDR. */
|
||||
|
||||
static CORE_ADDR
|
||||
sparc_extract_struct_value_address (struct regcache *regcache)
|
||||
sparc32_extract_struct_value_address (struct regcache *regcache)
|
||||
{
|
||||
ULONGEST sp;
|
||||
|
||||
@ -1069,6 +1069,8 @@ sparc32_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
set_gdbarch_push_dummy_call (gdbarch, sparc32_push_dummy_call);
|
||||
|
||||
set_gdbarch_return_value (gdbarch, sparc32_return_value);
|
||||
set_gdbarch_extract_struct_value_address
|
||||
(gdbarch, sparc32_extract_struct_value_address);
|
||||
set_gdbarch_stabs_argument_has_addr
|
||||
(gdbarch, sparc32_stabs_argument_has_addr);
|
||||
|
||||
|
@ -1086,6 +1086,19 @@ sparc64_return_value (struct gdbarch *gdbarch, struct type *type,
|
||||
|
||||
return RETURN_VALUE_REGISTER_CONVENTION;
|
||||
}
|
||||
|
||||
/* Extract from REGCACHE, which contains the (raw) register state, the
|
||||
address in which a function should return its structure value, as a
|
||||
CORE_ADDR. */
|
||||
|
||||
static CORE_ADDR
|
||||
sparc64_extract_struct_value_address (struct regcache *regcache)
|
||||
{
|
||||
ULONGEST addr;
|
||||
|
||||
regcache_cooked_read_unsigned (regcache, SPARC_O0_REGNUM, &addr);
|
||||
return addr;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
@ -1117,8 +1130,8 @@ sparc64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
|
||||
set_gdbarch_push_dummy_call (gdbarch, sparc64_push_dummy_call);
|
||||
|
||||
set_gdbarch_return_value (gdbarch, sparc64_return_value);
|
||||
set_gdbarch_return_value_on_stack
|
||||
(gdbarch, generic_return_value_on_stack_not);
|
||||
set_gdbarch_extract_struct_value_address
|
||||
(gdbarch, sparc64_extract_struct_value_address);
|
||||
set_gdbarch_stabs_argument_has_addr
|
||||
(gdbarch, default_stabs_argument_has_addr);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user