aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/s390-tdep.c15
2 files changed, 5 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 1921854..5f245cc 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2001-11-14 Jim Blandy <jimb@redhat.com>
+ * s390-tdep.c (s390_extract_return_value): Returned `float' values
+ can simply be copied bitwise from the registers into the value
+ object's buffer.
+
* s390-tdep.c (s390_get_frame_info): Initialize SP's element of
the frame's saved_regs array correctly.
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index 2e78f2a..632261e 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -1010,20 +1010,7 @@ s390_extract_return_value (struct type *valtype, char *regbuf, char *valbuf)
int len = TYPE_LENGTH (valtype);
if (TYPE_CODE (valtype) == TYPE_CODE_FLT)
- {
- if (len > (TARGET_FLOAT_BIT >> 3))
- memcpy (valbuf, &regbuf[REGISTER_BYTE (S390_FP0_REGNUM)], len);
- else
- {
- /* float */
- DOUBLEST val;
-
- floatformat_to_doublest (&floatformat_ieee_double_big,
- &regbuf[REGISTER_BYTE (S390_FP0_REGNUM)],
- &val);
- store_floating (valbuf, len, val);
- }
- }
+ memcpy (valbuf, &regbuf[REGISTER_BYTE (S390_FP0_REGNUM)], len);
else
{
int offset = 0;