https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112478

Jeffrey A. Law <law at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #4 from Jeffrey A. Law <law at gcc dot gnu.org> ---
You're using an ASM to implement a call.  That means your asm is responsible
for dealing with all ABI issues, including saving/restoring registers around
the call.

Essentially GCC has no visibility into what your ASM does.  It's just a text
string that gets passed through to the assembler.  The fact that it worked
before was more an accident than by design.  Basically GCC doesn't know your
ASM performs a call, so it thinks the function is a leaf.

I would _strongly_ recommend you not implement calls via ASMs.  I've watched
developers try to do that for 30+ years.  It rarely ends well.

Reply via email to