* config/pa/tm-hppa.h (EXTRACT_RETURN_VALUE): Rewrite to correctly
handle "short", "int" and small structures returned in registers.
This commit is contained in:
parent
1e2bb16402
commit
61fe99b477
1 changed files with 11 additions and 2 deletions
|
@ -238,8 +238,17 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
|
|||
into VALBUF. */
|
||||
|
||||
#define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \
|
||||
memcpy (VALBUF, (REGBUF) + REGISTER_BYTE(TYPE_LENGTH(TYPE) > 4 ? \
|
||||
FP4_REGNUM :28), TYPE_LENGTH (TYPE))
|
||||
{ \
|
||||
if (TYPE_CODE (TYPE) == TYPE_CODE_FLT) \
|
||||
memcpy ((VALBUF), \
|
||||
((int *)(REGBUF)) + REGISTER_BYTE (FP4_REGNUM), \
|
||||
TYPE_LENGTH (TYPE)); \
|
||||
else \
|
||||
memcpy ((VALBUF), \
|
||||
(char *)(REGBUF) + REGISTER_BYTE (28) + \
|
||||
(TYPE_LENGTH (TYPE) >= 4 ? 0 : 4 - TYPE_LENGTH (TYPE)), \
|
||||
TYPE_LENGTH (TYPE)); \
|
||||
}
|
||||
|
||||
/* Write into appropriate registers a function return value
|
||||
of type TYPE, given in virtual format. */
|
||||
|
|
Loading…
Add table
Reference in a new issue