Passing the complex args in the GPR's
Umesh Kalappa
umesh.kalappa0 at gmail.com
Wed Jun 7 03:07:19 AEST 2023
Hi Segher ,
>>What did you expect, what happened instead?
For example the complex args are passed in GPR's for cexp in the case
GCC and Clang uses caller memory .
for reference : https://godbolt.org/z/MfMz3cTe7
We have cross tools like some of libraries built using the GCC and
some use Clang .
We approached Clang developers on this behaviour (Why stack , not the
FPR's registers like PPC64) and they are not going to change this
behaviour, and asked us to refer back to GCC ,hence this email thread.
Question is : Why does GCC choose to use GPR's here and have any
reference to support this decision ?
Thank you
~Umesh
On Tue, Jun 6, 2023 at 10:16 PM Segher Boessenkool
<segher at kernel.crashing.org> wrote:
>
> Hi!
>
> On Tue, Jun 06, 2023 at 08:35:22PM +0530, Umesh Kalappa wrote:
> > Hi Adnrew,
> > Thank you for the quick response and for PPC64 too ,we do have
> > mismatches in ABI b/w complex operations like
> > https://godbolt.org/z/bjsYovx4c .
> >
> > Any reason why GCC chose to use GPR 's here ?
>
> What did you expect, what happened instead? Why did you expect that,
> and why then is it an error what did happen?
>
> You used -O0. As long as the code works, all is fine. But unoptimised
> code frequently is hard to read, please use -O2 instead?
>
> As Andrew says, why did you use -m32 for GCC but -m64 for LLVM? It is
> hard to compare those at all! 32-bit PowerPC Linux ABI (based on 32-bit
> PowerPC ELF ABI from 1995, BE version) vs. 64-bit ELFv2 ABI from 2015
> (LE version).
>
>
> Segher
More information about the Linuxppc-dev
mailing list