• Anton Blanchard's avatar
    powerpc: Avoid load of static chain register when calling nested functions... · 98679fb0
    Anton Blanchard authored
    powerpc: Avoid load of static chain register when calling nested functions through a pointer on 64bit
    
    The ppc64 ABI has a static chain register (r11) which is only used
    when calling nested functions through a pointer. Considering that
    we take a dim view of nested functions in the kernel, we have a lot
    of unnecessary overhead here.
    
    gcc 4.7 has an option to disable loading of r11 so lets use it.
    
    If hell freezes over and hipsters manage to litter the kernel
    with nested functions, gcc will give us an error message and
    won't simply compile bad code:
    
        You cannot take the address of a nested function if you use
        the -mno-pointers-to-nested-functions option.
    
    Furthermore our kernel module trampolines don't setup the static
    chain register so adding this option and forcing gcc to error out
    makes even more sense.
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
    98679fb0
Makefile 9.16 KB