https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116497
--- Comment #17 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Andi Kleen from comment #16) > Created attachment 59013 [details] > test case > > This test case using Pinski's clobber trick shows the benefit. > > If you compile with -O2 -mgeneral-regs-only the inc/dec opcodes don't save > any extra registers and generate nearly optimal code. If you make the > SAVE_REGS/DONT_SAVE_REGS macros empty they have a lot of extra push/pop, > which would ruin the interpreter loop. > > -mgeneral-regs-only works for this case, but breaks SSE. Why is __attribute__((no_caller_saved_registers)) needed on start?