* s390-tdep.c (is_simple_arg): Structs and unions exactly eight

bytes long should be handled as DOUBLE_ARGs; don't recognize them
as SIMPLE_ARGs.
This commit is contained in:
Jim Blandy 2001-11-16 02:48:30 +00:00
parent 6150ba3d44
commit a1677dfb5e
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2001-11-15 Jim Blandy <jimb@redhat.com>
* s390-tdep.c (is_simple_arg): Structs and unions exactly eight
bytes long should be handled as DOUBLE_ARGs; don't recognize them
as SIMPLE_ARGs.
2001-11-12 Andrew Cagney <ac131313@redhat.com>
* remote.c (struct packet_reg): Declare.

View File

@ -1243,10 +1243,13 @@ is_simple_arg (struct type *type)
enum type_code code = TYPE_CODE (type);
unsigned length = TYPE_LENGTH (type);
/* This is almost a direct translation of the ABI's language, except
that we have to exclude 8-byte structs; those are DOUBLE_ARGs. */
return ((is_integer_like (type) && length <= 4)
|| is_pointer_like (type)
|| code == TYPE_CODE_STRUCT
|| code == TYPE_CODE_UNION
|| ((code == TYPE_CODE_STRUCT
|| code == TYPE_CODE_UNION)
&& length != 8)
|| (code == TYPE_CODE_FLT && length == 16));
}