OSDN Git Service

* s390-tdep.c (s390_extract_return_value): Returned `float' values
authorJim Blandy <jimb@codesourcery.com>
Wed, 14 Nov 2001 22:29:39 +0000 (22:29 +0000)
committerJim Blandy <jimb@codesourcery.com>
Wed, 14 Nov 2001 22:29:39 +0000 (22:29 +0000)
can simply be copied bitwise from the registers into the value
object's buffer.

gdb/ChangeLog
gdb/s390-tdep.c

index 1921854..5f245cc 100644 (file)
@@ -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.
 
index 2e78f2a..632261e 100644 (file)
@@ -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;