From 24064b5c1ab4fa4336174d8eb934de57f1626d82 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 2 Jun 2003 16:16:14 +0000 Subject: [PATCH] * alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats. (alpha_store_return_value): Error on IEEE Quad floats. --- gdb/ChangeLog | 3 +++ gdb/alpha-tdep.c | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a12fee0271c..2460477268d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2003-06-02 Richard Henderson + * 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 c45e6590a6d..e97ff30b524 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 (); } -- 2.30.2