diff options
author | Jim Blandy <jimb@codesourcery.com> | 2001-11-16 02:48:30 +0000 |
---|---|---|
committer | Jim Blandy <jimb@codesourcery.com> | 2001-11-16 02:48:30 +0000 |
commit | a1677dfb5ef9883154db5c193c0464a88f6a3b07 (patch) | |
tree | e547251f0f6a2315b85529998d404793e30d0e23 | |
parent | 6150ba3d44d5a6194394a1214c98e951c6f69c0d (diff) | |
download | gdb-a1677dfb5ef9883154db5c193c0464a88f6a3b07.zip gdb-a1677dfb5ef9883154db5c193c0464a88f6a3b07.tar.gz gdb-a1677dfb5ef9883154db5c193c0464a88f6a3b07.tar.bz2 |
* 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.
-rw-r--r-- | gdb/ChangeLog | 6 | ||||
-rw-r--r-- | gdb/s390-tdep.c | 7 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 0f6c602..3e20ed5 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -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. diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index d2fa1a0..d79654d 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -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)); } |