http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59644
--- Comment #6 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- linux % diff -u kernel/printk/printk.o /var/tmp/linux/kernel/printk/printk.o --- kernel/printk/printk.o 2013-12-31 09:23:45.569490147 +0100 +++ /var/tmp/linux/kernel/printk/printk.o 2013-12-31 09:23:22.066697479 +0100 @@ -2517,19 +2517,16 @@ printk_emit: pushq %rbp movq %rsp, %rbp - pushq %r10 - leaq -56(%rbp), %rax - leaq 16(%rbp), %r10 subq $72, %rsp + leaq 16(%rbp), %r10 movq %r9, -16(%rbp) + leaq -56(%rbp), %rax leaq -80(%rbp), %r9 - movq %r10, -72(%rbp) movl $40, -80(%rbp) + movq %r10, -72(%rbp) movq %rax, -64(%rbp) call vprintk_emit - addq $72, %rsp - popq %r10 - popq %rbp + leave ret .size printk_emit, .-printk_emit .LCOLDE44: @@ -2680,28 +2677,25 @@ printk: pushq %rbp movq %rsp, %rbp - pushq %r10 - leaq -56(%rbp), %rax - leaq 16(%rbp), %r10 subq $72, %rsp + leaq 16(%rbp), %r10 movq %rsi, -48(%rbp) movq %rdx, -40(%rbp) movq %rcx, -32(%rbp) movq %r8, -24(%rbp) - xorl %ecx, %ecx + leaq -56(%rbp), %rax movq %r9, -16(%rbp) movq %rdi, %r8 leaq -80(%rbp), %r9 + xorl %ecx, %ecx xorl %edx, %edx orl $-1, %esi xorl %edi, %edi - movq %r10, -72(%rbp) movl $8, -80(%rbp) + movq %r10, -72(%rbp) movq %rax, -64(%rbp) call vprintk_emit - addq $72, %rsp - popq %r10 - popq %rbp + leave ret .size printk, .-printk .LCOLDE47: @@ -4052,7 +4046,6 @@ printk_sched: pushq %rbp movq %rsp, %rbp - pushq %r10 pushq %rbx leaq 16(%rbp), %r10 subq $80, %rsp @@ -4105,7 +4098,6 @@ #NO_APP addq $80, %rsp popq %rbx - popq %r10 popq %rbp ret .size printk_sched, .-printk_sched @@ -4691,26 +4683,23 @@ dump_stack_set_arch_desc: pushq %rbp movq %rsp, %rbp - pushq %r10 - leaq -56(%rbp), %rax - leaq 16(%rbp), %r10 subq $72, %rsp + leaq 16(%rbp), %r10 movq %rsi, -48(%rbp) movq %rdx, -40(%rbp) movq %rcx, -32(%rbp) + leaq -56(%rbp), %rax movq %rdi, %rdx leaq -80(%rbp), %rcx movl $128, %esi movq $dump_stack_arch_desc_str, %rdi - movq %r10, -72(%rbp) movq %r8, -24(%rbp) movq %r9, -16(%rbp) movl $8, -80(%rbp) + movq %r10, -72(%rbp) movq %rax, -64(%rbp) call vsnprintf - addq $72, %rsp - popq %r10 - popq %rbp + leave ret .size dump_stack_set_arch_desc, .-dump_stack_set_arch_desc .LCOLDE92: