OSDN Git Service

* alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats.
authorRichard Henderson <rth@redhat.com>
Mon, 2 Jun 2003 16:16:14 +0000 (16:16 +0000)
committerRichard Henderson <rth@redhat.com>
Mon, 2 Jun 2003 16:16:14 +0000 (16:16 +0000)
        (alpha_store_return_value): Error on IEEE Quad floats.

gdb/ChangeLog
gdb/alpha-tdep.c

index a12fee0..2460477 100644 (file)
@@ -1,5 +1,8 @@
 2003-06-02  Richard Henderson  <rth@redhat.com>
 
+        * alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats.
+        (alpha_store_return_value): Error on IEEE Quad floats.
+
         * alpha-tdep.c (alpha_extract_return_value): Convert to regcache.
         (alpha_extract_struct_value_address): Likewise.
         (alpha_store_return_value): Likewise.
index c45e659..e97ff30 100644 (file)
@@ -401,6 +401,11 @@ alpha_extract_return_value (struct type *valtype, struct regcache *regcache,
          regcache_cooked_read (regcache, ALPHA_FP0_REGNUM, valbuf);
          break;
 
+       case 16:
+         regcache_cooked_read_unsigned (regcache, ALPHA_V0_REGNUM, &l);
+         read_memory (l, valbuf, 16);
+         break;
+
        default:
          abort ();
        }
@@ -450,6 +455,12 @@ alpha_store_return_value (struct type *valtype, struct regcache *regcache,
          regcache_cooked_write (regcache, ALPHA_FP0_REGNUM, valbuf);
          break;
 
+       case 16:
+         /* FIXME: 128-bit long doubles are returned like structures:
+            by writing into indirect storage provided by the caller
+            as the first argument.  */
+         error ("Cannot set a 128-bit long double return value.");
+
        default:
          abort ();
        }