Created attachment 41968 [details]
With GCC 7.1, the kernel's object code static analysis tool (objtool) found this unusual method of adjusting the stack pointer in the kernel:
2cc: 48 8d 4c 24 08 lea 0x8(%rsp),%rcx
2d1: 48 89 cc mov %rcx,%rsp
The value in %rcx was never used afterwards. It would be faster and more straightforward to just add 8 to %rsp.
gcc -mno-sse -mpreferred-stack-boundary=3 -O2 -c -o fs_pin.o fs_pin.i
Interesting ;) A peephole might help.