pushq   %r9                             /* pt_regs->r9 */
        pushq   %r10                            /* pt_regs->r10 */
        pushq   %r11                            /* pt_regs->r11 */
-       sub     $(6*8), %rsp                    /* pt_regs->bp, bx, r12-15 not saved */
-       UNWIND_HINT_REGS extra=0
+       pushq   %rbx                            /* pt_regs->rbx */
+       pushq   %rbp                            /* pt_regs->rbp */
+       pushq   %r12                            /* pt_regs->r12 */
+       pushq   %r13                            /* pt_regs->r13 */
+       pushq   %r14                            /* pt_regs->r14 */
+       pushq   %r15                            /* pt_regs->r15 */
+       UNWIND_HINT_REGS
 
        TRACE_IRQS_OFF
 
        /* IRQs are off. */
-       SAVE_EXTRA_REGS
        movq    %rsp, %rdi
        call    do_syscall_64           /* returns with IRQs disabled */