x64 instruction scheduling.

Kalle Olavi Niemitalo kon@iki.fi
Tue Sep 25 20:58:00 GMT 2012


phi gcc <phi.gcc@gmail.com> writes:

> I see prolog like this in some linux kernel functions
>
> 0xffffffff8102fba0         pushq  %rbp
> 0xffffffff8102fba1         movq   %rsp,%rbp
> 0xffffffff8102fba4         nopl   0x0(%rax,%rax,1)  <==
> 0xffffffff8102fba9         movl   %edi,%edi            <==
> 0xffffffff8102fbab         movl   %esi,-0xa05000(%rdi)

Which function is that?  The NOPs may be part of a scheme where Linux
modifies itself at run time.  See arch/x86/kernel/alternative.c and
Documentation/static-keys.txt, for two such schemes.

Do you see similar NOPs in non-Linux code?



More information about the Gcc-help mailing list