On Tue, 24 Nov 2009, Andrew Haley wrote: > H.J. Lu wrote: > > On Sun, Nov 22, 2009 at 9:20 AM, Andrew Haley <a...@redhat.com> wrote: > >> H.J. Lu wrote: > >>> On Fri, Nov 20, 2009 at 11:35 AM, Andrew Haley <a...@redhat.com> wrote: > >>>> Steven Rostedt wrote: > >>>>> Ingo, Thomas and Linus, > >>>>> > >>>>> I know Thomas did a patch to force the -mtune=generic, but just in case > >>>>> gcc decides to do something crazy again, this patch will catch it. > >>>>> > >>>>> Should we try to get this in now? > >>>> I'm sure this makes sense, but a gcc test case would be even better. > >>>> If this can be detected in the gcc test suite it'll be found and > >>>> fixed long before y'all in kernel land get to see it. That's the > >>>> only way to guarantee this never bothers you again. > >>>> > >>>> H.J., who wrote the code in question, is hopefully looking at why > >>>> this odd code is being generated. Once he's done I can put a > >>>> suitable test case in the gcc test suite. > >>>> > >>> See: > >>> > >>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42109#c7 > >> I saw that, but does it mean you're going to investigate? There is > >> no obvious reason why -mtune=generic should affect code generation > >> in this way, but it does. > > > > Why not, there is > > > > static const unsigned int x86_accumulate_outgoing_args > > = m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 > > | m_GENERIC; > > > > -mtune=generic turns on -maccumulate-outgoing-args. > > Alright, so let's at least try to give the kernel people the information > that they need. > > What you're saying is, to avoid this: > > 000005f0 <timer_stats_update_stats>: > 5f0: 57 push %edi > 5f1: 8d 7c 24 08 lea 0x8(%esp),%edi > 5f5: 83 e4 f0 and $0xfffffff0,%esp > 5f8: ff 77 fc pushl -0x4(%edi) > 5fb: 55 push %ebp > 5fc: 89 e5 mov %esp,%ebp > > you should compile your code with -maccumulate-outgoing-args, and there's > no need to use -mtune=generic. Is that right?
Seems to work. What other side effects has that ? Thanks, tglx