2001-01-02 Michael Snyder <msnyder@cleaver.cygnus.com>
* sh-tdep.c (sh_extract_return_value): Allow for small return type. (sh_sh4_extract_return_value): Call sh_extract_return_value for
This commit is contained in:
parent
3cac1297fb
commit
d19b71becf
2 changed files with 18 additions and 4 deletions
|
@ -1,5 +1,8 @@
|
||||||
2001-01-02 Michael Snyder <msnyder@cleaver.cygnus.com>
|
2001-01-02 Michael Snyder <msnyder@cleaver.cygnus.com>
|
||||||
|
|
||||||
|
* sh-tdep.c (sh_extract_return_value): Allow for small return type.
|
||||||
|
(sh_sh4_extract_return_value): Call sh_extract_return_value for
|
||||||
|
non-float types.
|
||||||
* sparc-tdep.c (sparc_frame_chain): Fix typo in comment.
|
* sparc-tdep.c (sparc_frame_chain): Fix typo in comment.
|
||||||
Update copyright notice.
|
Update copyright notice.
|
||||||
|
|
||||||
|
|
|
@ -1060,8 +1060,20 @@ sh_extract_return_value (struct type *type, char *regbuf, char *valbuf)
|
||||||
static void
|
static void
|
||||||
sh_default_store_return_value (struct type *type, char *valbuf)
|
sh_default_store_return_value (struct type *type, char *valbuf)
|
||||||
{
|
{
|
||||||
write_register_bytes (REGISTER_BYTE (0),
|
char buf[32]; /* more than enough... */
|
||||||
|
|
||||||
|
if (TYPE_LENGTH (type) < REGISTER_RAW_SIZE (R0_REGNUM))
|
||||||
|
{
|
||||||
|
/* Add leading zeros to the value. */
|
||||||
|
memset (buf, 0, REGISTER_RAW_SIZE (R0_REGNUM));
|
||||||
|
memcpy (buf + REGISTER_RAW_SIZE (R0_REGNUM) - TYPE_LENGTH (type),
|
||||||
valbuf, TYPE_LENGTH (type));
|
valbuf, TYPE_LENGTH (type));
|
||||||
|
write_register_bytes (REGISTER_BYTE (R0_REGNUM), buf,
|
||||||
|
REGISTER_RAW_SIZE (R0_REGNUM));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
write_register_bytes (REGISTER_BYTE (R0_REGNUM), valbuf,
|
||||||
|
TYPE_LENGTH (type));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1071,8 +1083,7 @@ sh3e_sh4_store_return_value (struct type *type, char *valbuf)
|
||||||
write_register_bytes (REGISTER_BYTE (FP0_REGNUM),
|
write_register_bytes (REGISTER_BYTE (FP0_REGNUM),
|
||||||
valbuf, TYPE_LENGTH (type));
|
valbuf, TYPE_LENGTH (type));
|
||||||
else
|
else
|
||||||
write_register_bytes (REGISTER_BYTE (0),
|
sh_default_store_return_value (type, valbuf);
|
||||||
valbuf, TYPE_LENGTH (type));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue