From 5ab580ccf8a55393e038e4c9e90cd57b43e5f02c Mon Sep 17 00:00:00 2001 From: Stu Grossman Date: Sat, 26 Oct 1991 01:06:16 +0000 Subject: [PATCH] * tm-sparc.h, tm-68k.h (EXTRACT_RETURN_VALUE): fix output of short return values for sparc and 68k. Patch from Paul Eggert. --- gdb/ChangeLog | 3 +++ gdb/tm-68k.h | 4 +++- gdb/tm-sparc.h | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 006f86d6567..89099cd8559 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ Fri Oct 25 16:06:38 1991 Stu Grossman (grossman at cygnus.com) + * tm-sparc.h, tm-68k.h (EXTRACT_RETURN_VALUE): fix output of + short return values for sparc and 68k. Patch from Paul Eggert. + * coffread.c, coredep.c, i386-xdep.c: install patches for SysV/386 3.2 from Mauro DePalma. diff --git a/gdb/tm-68k.h b/gdb/tm-68k.h index d89f23d9c45..f501495352c 100644 --- a/gdb/tm-68k.h +++ b/gdb/tm-68k.h @@ -275,7 +275,9 @@ extern struct ext_format ext_format_68881; #if !defined (EXTRACT_RETURN_VALUE) #define EXTRACT_RETURN_VALUE(TYPE,REGBUF,VALBUF) \ - bcopy (REGBUF, VALBUF, TYPE_LENGTH (TYPE)) + bcopy ((char *)(REGBUF) + \ + (TYPE_LENGTH(TYPE) >= 4 ? 0 : 4 - TYPE_LENGTH(TYPE)), \ + VALBUF, TYPE_LENGTH(TYPE)) #endif /* Write into appropriate registers a function return value diff --git a/gdb/tm-sparc.h b/gdb/tm-sparc.h index d89781b8849..866788be742 100644 --- a/gdb/tm-sparc.h +++ b/gdb/tm-sparc.h @@ -267,7 +267,9 @@ extern CORE_ADDR sparc_pc_adjust(); (VALBUF), TYPE_LENGTH(TYPE)); \ } \ else \ - bcopy (((int *)(REGBUF))+8, (VALBUF), TYPE_LENGTH (TYPE)); \ + bcopy ((char *)(REGBUF) + 4 * 8 + \ + (TYPE_LENGTH(TYPE) >= 4 ? 0 : 4 - TYPE_LENGTH(TYPE)), \ + (VALBUF), TYPE_LENGTH(TYPE)); \ } /* Write into appropriate registers a function return value -- 2.30.2