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.