summaryrefslogtreecommitdiff
path: root/gdb/microblaze-tdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/microblaze-tdep.c')
-rw-r--r--gdb/microblaze-tdep.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
index 9b1ff468a57..96584004019 100644
--- a/gdb/microblaze-tdep.c
+++ b/gdb/microblaze-tdep.c
@@ -590,21 +590,22 @@ static void
microblaze_store_return_value (struct type *type, struct regcache *regcache,
const gdb_byte *valbuf)
{
+ int len = TYPE_LENGTH (type);
gdb_byte buf[8];
memset (buf, 0, sizeof(buf));
/* Integral and pointer return values. */
- if (TYPE_LENGTH (type) > 4)
+ if (len > 4)
{
- gdb_assert (TYPE_LENGTH (type) == 8);
+ gdb_assert (len == 8);
memcpy (buf, valbuf, 8);
regcache_cooked_write (regcache, MICROBLAZE_RETVAL_REGNUM+1, buf + 4);
}
else
/* ??? Do we need to do any sign-extension here? */
- memcpy (buf + 4 - TYPE_LENGTH (type), valbuf, TYPE_LENGTH (type));
+ memcpy (buf + 4 - len, valbuf, len);
regcache_cooked_write (regcache, MICROBLAZE_RETVAL_REGNUM, buf);
}