* s390-tdep.c (s390_store_return_value): Don't convert float
values to double format when returning them; just return them in the first half of the FP register, as the ABI specifies.
This commit is contained in:
parent
6a1675750a
commit
03a013f4d3
|
@ -1,3 +1,9 @@
|
|||
2001-12-07 Jim Blandy <jimb@redhat.com>
|
||||
|
||||
* s390-tdep.c (s390_store_return_value): Don't convert float
|
||||
values to double format when returning them; just return them in
|
||||
the first half of the FP register, as the ABI specifies.
|
||||
|
||||
2001-12-07 Daniel Jacobowitz <drow@mvista.com>
|
||||
|
||||
* valops.c (hand_function_call): Check for method arguments in
|
||||
|
|
|
@ -1144,12 +1144,13 @@ s390_store_return_value (struct type *valtype, char *valbuf)
|
|||
|
||||
if (TYPE_CODE (valtype) == TYPE_CODE_FLT)
|
||||
{
|
||||
DOUBLEST tempfloat = extract_floating (valbuf, TYPE_LENGTH (valtype));
|
||||
|
||||
floatformat_from_doublest (&floatformat_ieee_double_big, &tempfloat,
|
||||
reg_buff);
|
||||
write_register_bytes (REGISTER_BYTE (S390_FP0_REGNUM), reg_buff,
|
||||
S390_FPR_SIZE);
|
||||
if (TYPE_LENGTH (valtype) == 4
|
||||
|| TYPE_LENGTH (valtype) == 8)
|
||||
write_register_bytes (REGISTER_BYTE (S390_FP0_REGNUM), valbuf,
|
||||
TYPE_LENGTH (valtype));
|
||||
else
|
||||
error ("GDB is unable to return `long double' values "
|
||||
"on this architecture.");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue