aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/tm-68k.h4
-rw-r--r--gdb/tm-sparc.h4
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