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? Andrew.