Passing the complex args in the GPR's

Umesh Kalappa umesh.kalappa0 at
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 :

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

On Tue, Jun 6, 2023 at 10:16 PM Segher Boessenkool
<segher at> 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
> > .
> >
> > 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