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

Florian Weimer <fw at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|-mstackrealign prologue     |Stack alignment prologue
                   |clobbers %edi for fastcall  |clobbers %edi for fastcall
                   |functions with global       |functions with global
                   |register variable           |register variable

--- Comment #1 from Florian Weimer <fw at gcc dot gnu.org> ---
Jakub observed that any stack realignment triggers this, e.g. this uses %edi
even without -mstackrealign:

void f1 (void *, int);

register int edi __asm__ ("edi");

__attribute__ ((fastcall))
void
f2 (void)
{ 
  // Force stack alignment.                                                     
  char buf[256] __attribute__ ((aligned (256)));
  f1 (buf, edi);
}

And -ffixed-edi does not make a difference.

Reply via email to