Messages in this thread | | | Date | Sun, 12 Oct 2014 14:34:22 -0500 | From | Chuck Ebbert <> | Subject | Re: [PATCH] x86: Clean up stack access code in irq_32.c |
| |
On Sun, 12 Oct 2014 10:13:33 -0700 "H. Peter Anvin" <hpa@zytor.com> wrote:
> That's not a justification for change. Claiming no harm is nevessary but not sufficient. >
The optimization is also a little better with GCC when using C instead of asm for current_stack_pointer. Probably not enough better to do different macros for gcc and other compilers though.
clang actually moves %esp to memory and then into another register instead of moving it directly when using the current macro. Their optimizer really needs some work...
> On October 12, 2014 9:53:32 AM PDT, Chuck Ebbert <cebbert.lkml@gmail.com> wrote: > >On Sun, 12 Oct 2014 09:47:53 -0700 > >"H. Peter Anvin" <hpa@zytor.com> wrote: > > > >[replying to the list this time, sigh] > > > >> We changed this to asm because the C broke some compilers. Why are > >you changing it back? > >> > > > >The C broke some compilers because it was using a global register > >variable. This is a local one, which the clang documentation says is > >supported. And I compiled it with clang with no problem. > > > >> On October 12, 2014 9:43:53 AM PDT, Chuck Ebbert > ><cebbert.lkml@gmail.com> wrote: > >> >Use C instead of asm for accessing the stack pointer. And define > >some > >> >macros to make the code easier to understand. > >> > >
| |