* alpha-tdep.c (alpha_extract_return_value): Handle IEEE Quad floats.

(alpha_store_return_value): Error on IEEE Quad floats.
This commit is contained in:
Richard Henderson 2003-06-02 16:16:14 +00:00
parent 5ec2bb9908
commit 24064b5c1a
2 changed files with 14 additions and 0 deletions

View 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.

View 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 ();
}