lightning
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lightning] [BUG] [AMD64 ABI] %r12 not preserved and restored in tra


From: Paul Cercueil
Subject: Re: [Lightning] [BUG] [AMD64 ABI] %r12 not preserved and restored in trampoline function prolog/epilog
Date: Tue, 17 Sep 2019 16:56:32 +0200

Hi Paulo,


Le lun. 16 sept. 2019 à 17:13, Paulo =?iso-8859-1?b?Q+lzYXI=?= Pereira de Andrade <address@hidden> a écrit :
Em sáb, 14 de set de 2019 às 04:59, Paul Cercueil <address@hidden> escreveu:

 Hi Paulo,

  Hi Paul,

[...]

 >   I believe quite some time ago I had made a commit for this issue
 > in another computer, that I no longer have, and never pushed it.
> For sure it will be added in the next release of GNU Lightning that
 > I am already working on. It just is taking more time than expected
> due to issues with powerpc 32 bit abi, that previously I had tested
 > only on AIX, and when testing on Linux, it uses another ABI...

 What are the issues with powerpc 32 ABI?

Previously I had tested only on AIX 32 bit, and it was quite a long ago. Linux 32 bit uses a different ABI, most difficult part was the varargs
abi, that, to some extent, remembers the x86_64 abi.

Because I'm seeing strange things happening there that I don't have on
 other CPU architectures... (not endian related)

Just to make sure, please test with the latest git. I just pushed 1800+
lines of diff. Tested on:

Yes, it works fine now. Thanks.


powerpc 32 bit Linux (_CALL_SYSV)
powerpc 64 bit Linux and AIX (!_CALL_SYSV -- assume _CALL_AIX || _CALL_LINUX)
powerpc 64 bit little endian Linux

  Powerpc 32 bit abi on AIX should work, but untested.
Dropped, hopefully only temporarily Darwin ppc, as it was broken for a
long time, would not compile.

I believe it might have been due to using r0 as temporary in some places.
  Now it never uses r0, because r0 has special semantics on several
instructions.

Thanks,
Paulo





reply via email to

[Prev in Thread] Current Thread [Next in Thread]