* sparc-tdep.c (SPARC_F0_REGNUM, SPARC_F1_REGNUM, SPARC_O0_REGNUM,

SPARC_O1_REGNUM): New defines.
(sparc32_extract_return_value): Rewrite to operate on a regcache.
(sparc32_store_return_value): New function.
(sparc_extract_struct_value_address): Rewrite to operate on a
regcache.
(sparc_gdbarch_init): Don't set
deprecated_extract_struct_value_address.  Set
extract_struct_value_address instead. Don't set
deprecated_extract_return_value and deprecated_store_return_value
for 32-bit targets.  Set extract_return_value and
store_return_value instead.
* config/sparc/tm-sparc.h (DEPRECATED_STORE_RETURN_VALUE,
DEPRECTAED_EXTRACT_RETURN_VALUE,
DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS): Don't define these.
(STORE_RETURN_VALUE, EXTRACT_RETURN_VALUE,
EXTRACT_STRUCT_VALUE_ADDRESS): Define these instead.
(sparc_store_return_value): Remove prototype.
(sparc32_store_return_value): New prototype.
(sparc32_extract_return_value, sparc_extract_struct_value_address):
Adjust prototypes.
This commit is contained in:
Mark Kettenis
2003-05-25 11:58:08 +00:00
parent c9373d2edf
commit 44b7b84e51
3 changed files with 145 additions and 43 deletions

View File

@@ -267,17 +267,16 @@ extern CORE_ADDR sparc_skip_prologue (CORE_ADDR);
/* Write into appropriate registers a function return value of type
TYPE, given in virtual format. */
#define DEPRECATED_STORE_RETURN_VALUE(TYPE, VALBUF) \
sparc_store_return_value (TYPE, VALBUF)
extern void sparc_store_return_value (struct type *, char *);
#define STORE_RETURN_VALUE(TYPE, REGCACHE, VALBUF) \
sparc32_store_return_value (TYPE, REGCACHE, VALBUF)
extern void sparc32_store_return_value (struct type *, struct regcache *,
const void *);
/* Extract from an array REGBUF containing the (raw) register state
the address in which a function should return its structure value,
as a CORE_ADDR (or an expression that can be used as one). */
#define DEPRECATED_EXTRACT_STRUCT_VALUE_ADDRESS(REGBUF) \
sparc_extract_struct_value_address (REGBUF)
/* Extract from REGCACHE the address in which a function should return
its structure value. */
#define EXTRACT_STRUCT_VALUE_ADDRESS(REGCACHE) \
sparc_extract_struct_value_address (REGCACHE)
extern CORE_ADDR sparc_extract_struct_value_address (char *);
/* Stack must be aligned on 64-bit boundaries when synthesizing
@@ -668,9 +667,10 @@ extern CORE_ADDR sparc32_push_arguments (int, struct value **, CORE_ADDR, int,
function return value of type TYPE, and copy that, in virtual
format, into VALBUF. */
#define DEPRECATED_EXTRACT_RETURN_VALUE(TYPE, REGBUF, VALBUF) \
sparc32_extract_return_value (TYPE, REGBUF, VALBUF)
extern void sparc32_extract_return_value (struct type *, char[], char *);
#define EXTRACT_RETURN_VALUE(TYPE, REGCACHE, VALBUF) \
sparc32_extract_return_value (TYPE, REGCACHE, VALBUF)
extern void sparc32_extract_return_value (struct type *, struct regcache *,
void *valbuf);
#endif /* GDB_MULTI_ARCH */