aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2003-06-02 16:16:14 +0000
committerRichard Henderson <rth@redhat.com>2003-06-02 16:16:14 +0000
commit24064b5c1ab4fa4336174d8eb934de57f1626d82 (patch)
treedfb17722f8e666d72a1798a09d94852c16b888c4
parent5ec2bb9908ec276ed4a00191f44e1b63bd1e4bac (diff)
downloadgdb-24064b5c1ab4fa4336174d8eb934de57f1626d82.zip
gdb-24064b5c1ab4fa4336174d8eb934de57f1626d82.tar.gz
gdb-24064b5c1ab4fa4336174d8eb934de57f1626d82.tar.bz2
* alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats.
(alpha_store_return_value): Error on IEEE Quad floats.
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/alpha-tdep.c11
2 files changed, 14 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index a12fee0..2460477 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -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.
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index c45e659..e97ff30 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -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 ();
}