From a1677dfb5ef9883154db5c193c0464a88f6a3b07 Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Fri, 16 Nov 2001 02:48:30 +0000 Subject: * 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. --- gdb/s390-tdep.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gdb/s390-tdep.c') 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)); } -- cgit v1.1