diff options
-rw-r--r-- | gdb/ChangeLog | 3 | ||||
-rw-r--r-- | gdb/tm-68k.h | 4 | ||||
-rw-r--r-- | gdb/tm-sparc.h | 4 |
3 files changed, 9 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 006f86d..89099cd 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 d89f23d..f501495 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 d89781b..866788b 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 |