From: Andrew Burgess <aburgess@redhat.com>
To: Youling Tang <tangyouling@loongson.cn>,
Lancelot SIX <lsix@lancelotsix.com>
Cc: gdb-patches@sourceware.org, "Maciej W. Rozycki" <macro@orcam.me.uk>
Subject: Re: [PATCH] gdb: mips: Fix the handling of complex type of function return value
Date: Wed, 16 Mar 2022 11:22:27 +0000 [thread overview]
Message-ID: <877d8uuop8.fsf@redhat.com> (raw)
In-Reply-To: <ebead02d-15ed-344c-c2b3-a85e89038c08@loongson.cn>
Youling Tang <tangyouling@loongson.cn> writes:
> Hi, Lancelo
>
> On 03/16/2022 04:42 PM, Lancelot SIX wrote:
>> On Wed, Mar 16, 2022 at 12:48:26PM +0800, Youling Tang wrote:
>>> $ objdump -d outputs/gdb.base/varargs/varargs
>>> 00000001200012e8 <find_max_float_real>:
>>> ...
>>> 1200013b8: c7c10000 lwc1 $f1,0(s8)
>>> 1200013bc: c7c00004 lwc1 $f0,4(s8)
>>> 1200013c0: 46000886 mov.s $f2,$f1
>>> 1200013c4: 46000046 mov.s $f1,$f0
>>> 1200013c8: 46001006 mov.s $f0,$f2
>>> 1200013cc: 46000886 mov.s $f2,$f1
>>> 1200013d0: 03c0e825 move sp,s8
>>> 1200013d4: dfbe0038 ld s8,56(sp)
>>> 1200013d8: 67bd0080 daddiu sp,sp,128
>>> 1200013dc: 03e00008 jr ra
>>> 1200013e0: 00000000 nop
>>>
>>> From the above disassembly, we can see that when the return value of the
>>> function is a complex type and len <= 2 * MIPS64_REGSIZE, the return value
>>> will be passed through $f0 and $f2, so fix the corresponding processing
>>> in mips_n32n64_return_value().
>>>
>>> $ make check RUNTESTFLAGS='GDB=../gdb gdb.base/varargs.exp --outdir=test'
>>>
>>> Before applying the patch:
>>> FAIL: gdb.base/varargs.exp: print find_max_float_real(4, fc1, fc2, fc3, fc4)
>>> FAIL: gdb.base/varargs.exp: print find_max_double_real(4, dc1, dc2, dc3, dc4)
>>>
>>> # of expected passes 9
>>> # of unexpected failures 2
>>>
>>> After applying the patch:
>>> # of expected passes 11
>>>
>>> Signed-off-by: Youling Tang <tangyouling@loongson.cn>
>>> ---
>>> gdb/mips-tdep.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
>>> index 7e37578..cddb8f8 100644
>>> --- a/gdb/mips-tdep.c
>>> +++ b/gdb/mips-tdep.c
>>> @@ -5224,9 +5224,10 @@ mips_n32n64_return_value (struct gdbarch *gdbarch, struct value *function,
>>>
>>> if (TYPE_LENGTH (type) > 2 * MIPS64_REGSIZE)
>>> return RETURN_VALUE_STRUCT_CONVENTION;
>>> - else if (type->code () == TYPE_CODE_FLT
>>> + else if ((type->code () == TYPE_CODE_FLT
>>> && TYPE_LENGTH (type) == 16
>>> && tdep->mips_fpu_type != MIPS_FPU_NONE)
>> Hi,
>>
>> Just minor note, those 2 lines above should be indented 2 more space I
>> think (so the && operator continues to vertically align with "type->code
>> ()").
>>
>>> + || (type->code () == TYPE_CODE_COMPLEX))
>> I do not think the extra set of parens are requires (but they do no harm
>> either).
> Ok, I will modify this code style in the next version.
This change looks good to me with the style adjusments that Lancelot
pointed out.
Thanks,
Andrew
next prev parent reply other threads:[~2022-03-16 11:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-16 4:48 Youling Tang
2022-03-16 8:42 ` Lancelot SIX
2022-03-16 9:00 ` Youling Tang
2022-03-16 11:22 ` Andrew Burgess [this message]
2022-03-16 18:26 ` Maciej W. Rozycki
2022-03-17 7:01 ` Youling Tang
2022-04-06 22:46 ` [COMMITTED PATCH v2] " Maciej W. Rozycki
2022-04-07 2:19 ` Youling Tang
2022-04-11 15:32 ` Maciej W. Rozycki
2022-04-12 0:46 ` Youling Tang
2022-04-08 17:05 ` Richard Sandiford
2022-04-11 15:37 ` Maciej W. Rozycki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877d8uuop8.fsf@redhat.com \
--to=aburgess@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=lsix@lancelotsix.com \
--cc=macro@orcam.me.uk \
--cc=tangyouling@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).