From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic308-18.consmr.mail.ir2.yahoo.com (sonic308-18.consmr.mail.ir2.yahoo.com [77.238.178.146]) by sourceware.org (Postfix) with ESMTPS id 208F2385DC32 for ; Mon, 25 May 2020 21:32:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 208F2385DC32 X-YMail-OSG: MP0XimQVM1kgCoyJYV.bqzzojR.xsnAubkH8MNyhBoZZ7PUcJZ0Grv9LNcjL8hL nK5KI8x6WszxsGeiyKElzijrwTgfI6RnmC4k7qL9jWY9Bl4OASgK2V5KJpuC2p64askjIj7IYGG4 xwBhJ3Ku4zG.OLuVjLDaMNHAQ61rq9eu3.OYP1FCPJVHTnzJAsmrWreY3yvbPTFgIwVwAxqYk58p 27txSs9tR3pshDrayBsQ19im9Bl6._Ttpaxhyg7uyTHoyofKk2C8EzIwKohzbvI6MRVbk14karrr Qz095ftU8wBexvsVltqU8RVtsY4b5USAV4mKxKcg7CbXOlgClMRE6YlzIwdPSYWUJegaFnWkIdnS Bgoyv7iKWLKGonshbZlgDp4VD4FT.e_8cpNFyvTm0999DStZEaQNxLQDsm.1zPSOStLWJrlvho7j ryOKxzHj6MzO4f78cDkXcF4NvMgVt94MQGdSnVBiy5FB37lM8ccp9X9PTdi7Kq0_FeTrkepOJMqU kPxYD991mx2G5SIp9WgDY.7Ew_cuuUsqMFW1Fhu7lMpOj1OSwR2sycc4rsWTMqOxXI8KcWOfZB1f ZUuu6_9UBZ1p0Jviq9XkjcKMdMlotCsQRtQslDnT1hw3MQYKPPfUuWBuj7_GccSN7dBoE..a06eK 8lFDenBAJhvLZD0efhAaXhglOBrSxxpw3UGcsifzl3.DnE3gmw09uiLcy3X7zIFWyTuj0F0MymQ6 jYfcid.2dp.SYecIuW3oR.bpzgsHQohkekyQvZz6iSMKI7mRM17is.wZRnvReHnqbKjIMEX17Wpj wcRNFuKpd6ig6CxpvnsLZQTN67VVyDfAK1OovIuq0gcSDl7Pm05dlAhPXzW37CpBEFrdbIjen0Zx xAifPINGa8JAey0M8HCMouJVFkZRVDMde9FS_uWwGSbbQUwegeg5QHOtmNyVGbtawVHh4wF7My1. _pnfYZaVDRnphjbnBJGEzFt6KJdZ.MtknE7lQHyaAJbuWb_71iWnhhJARIAzPIYcEUscYnmc4ePC li5yUGtMEn2cOa0l3DEYsWntplz4FrsRXfk7tRx3kfx.5xKlgc80pHUp7PIRRbX6wflu2UnBbz5m KmJvweBbcpmaBs1jaycjYq.1Fa_M8uM0eIDsJ6bhlKLnJjU0953imKGIaeO6ZJcU8K6dEvlD2Ejc tAIvqglEvHW1NXfiq1dNQCSQgP.VXbSFxGQxxB3TmU0w0hUxR2MQtVlEE6T14foc15SE5zWc.a1l 4X5JxVsf2r43OVfvLZySqvHHpfPDT8W3hXE5.K6YjjuVTXltz94_FDbLWZoL9CBxPU3Z8_Zbo3C5 wQBGxcbO6kOj0 Received: from sonic.gate.mail.ne1.yahoo.com by sonic308.consmr.mail.ir2.yahoo.com with HTTP; Mon, 25 May 2020 21:32:14 +0000 Date: Mon, 25 May 2020 21:32:09 +0000 (UTC) From: Hannes Domani To: Gdb-patches Message-ID: <977050290.5716513.1590442329577@mail.yahoo.com> In-Reply-To: <7c09d137-6938-6a01-3f8d-ff8ae26c87b5@simark.ca> References: <20200525185659.59346-1-ssbssa@yahoo.de> <20200525185659.59346-2-ssbssa@yahoo.de> <7c09d137-6938-6a01-3f8d-ff8ae26c87b5@simark.ca> Subject: Re: [PATCH 1/7] Fix function argument and return value locations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailer: WebService/1.1.15960 YMailNorrin Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0 X-Spam-Status: No, score=-9.8 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 May 2020 21:32:16 -0000 Am Montag, 25. Mai 2020, 23:02:37 MESZ hat Simon Marchi = Folgendes geschrieben: > On 2020-05-25 2:56 p.m., Hannes Domani via Gdb-patches wrote: > > > diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c > > index 487dfd45fc..db9845203f 100644 > > --- a/gdb/amd64-windows-tdep.c > > +++ b/gdb/amd64-windows-tdep.c > > @@ -77,7 +77,8 @@ static int > >=C2=A0 amd64_windows_passed_by_xmm_register (struct type *type) > >=C2=A0 { > >=C2=A0=C2=A0=C2=A0 return ((type->code () =3D=3D TYPE_CODE_FLT > > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || type->code () =3D=3D TYPE_CODE_DECFL= OAT) > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || type->code () =3D=3D TYPE_CODE_DECFL= OAT > > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 || type->code () =3D=3D TYPE_CODE_COMPL= EX) > >=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && (T= YPE_LENGTH (type) =3D=3D 4 || TYPE_LENGTH (type) =3D=3D 8)); > > >=C2=A0 } > > I don't know much about ABIs, so I tried: > > $ cat hello.c > #include > > void other(int real, int imag); > void func (complex int n) > { >=C2=A0=C2=A0 other(creal(n), cimag(n)); > } > $ x86_64-w64-mingw32-gcc hello.c -g3 -O0 -c > $ x86_64-w64-mingw32-objdump -d allo.o > > allo.o:=C2=A0=C2=A0=C2=A0 file format elf64-x86-64 > > > Disassembly of section .text: > > 0000000000000000 : >=C2=A0=C2=A0 0:=C2=A0 55=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 push=C2=A0 %rbp >=C2=A0=C2=A0 1:=C2=A0 48 89 e5=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mov=C2=A0=C2=A0=C2=A0 %rsp= ,%rbp >=C2=A0=C2=A0 4:=C2=A0 48 83 ec 10=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 sub=C2=A0=C2=A0=C2=A0 $0x10,%rsp >=C2=A0=C2=A0 8:=C2=A0 48 89 7d f8=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 mov=C2=A0=C2=A0=C2=A0 %rdi,-0x8(%rbp) >=C2=A0=C2=A0 c:=C2=A0 8b 45 fc=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mov=C2=A0=C2=A0=C2=A0 -0x4= (%rbp),%eax >=C2=A0=C2=A0 f:=C2=A0 66 0f ef c0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 pxor=C2=A0 %xmm0,%xmm0 >=C2=A0=C2=A0 13:=C2=A0 f2 0f 2a c0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 cvtsi2sd %eax,%xmm0 >=C2=A0=C2=A0 17:=C2=A0 f2 0f 2c d0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 cvttsd2si %xmm0,%edx >=C2=A0=C2=A0 1b:=C2=A0 8b 45 f8=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mov=C2=A0=C2=A0=C2=A0 -0x8= (%rbp),%eax >=C2=A0=C2=A0 1e:=C2=A0 66 0f ef c0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 pxor=C2=A0 %xmm0,%xmm0 >=C2=A0=C2=A0 22:=C2=A0 f2 0f 2a c0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 cvtsi2sd %eax,%xmm0 >=C2=A0=C2=A0 26:=C2=A0 f2 0f 2c c0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 cvttsd2si %xmm0,%eax >=C2=A0=C2=A0 2a:=C2=A0 89 d6=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mov=C2=A0=C2=A0= =C2=A0 %edx,%esi >=C2=A0=C2=A0 2c:=C2=A0 89 c7=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mov=C2=A0=C2=A0= =C2=A0 %eax,%edi >=C2=A0=C2=A0 2e:=C2=A0 e8 00 00 00 00=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0 callq=C2=A0 33 >=C2=A0=C2=A0 33:=C2=A0 90=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 nop >=C2=A0=C2=A0 34:=C2=A0 c9=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 leaveq >=C2=A0=C2=A0 35:=C2=A0 c3=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 retq > > > Doesn't this show that a `complex int` argument is passed through the rdi > register?=C2=A0 Am I missing something here? You're probably right, the thing is, I was only able to test complex float and complex double, because gdb doesn't like complex integral types: complex int complex_int =3D 5 + 6i; (gdb) p complex_int 'complex_int' has unknown type; cast it to its declared type (gdb) pt complex_int 'complex_int' has unknown type; cast it to its declared type So I guess it should check for target-type float as well: =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 || (type->code () =3D=3D TYPE_CODE_COMPLEX =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 && TYPE_TARGET_TYPE= (type)->code () =3D=3D TYPE_CODE_FLT)) Do many people use complex int, because I personally wouldn't have expected that this even exists. Hannes