|
@@ -63,7 +63,7 @@ ENTRY(entry_SYSENTER_compat)
|
|
|
|
|
|
/* Construct struct pt_regs on stack */
|
|
/* Construct struct pt_regs on stack */
|
|
pushq $__USER32_DS /* pt_regs->ss */
|
|
pushq $__USER32_DS /* pt_regs->ss */
|
|
- pushq %rcx /* pt_regs->sp */
|
|
|
|
|
|
+ pushq %rbp /* pt_regs->sp (stashed in bp) */
|
|
|
|
|
|
/*
|
|
/*
|
|
* Push flags. This is nasty. First, interrupts are currently
|
|
* Push flags. This is nasty. First, interrupts are currently
|
|
@@ -82,14 +82,14 @@ ENTRY(entry_SYSENTER_compat)
|
|
pushq %rdi /* pt_regs->di */
|
|
pushq %rdi /* pt_regs->di */
|
|
pushq %rsi /* pt_regs->si */
|
|
pushq %rsi /* pt_regs->si */
|
|
pushq %rdx /* pt_regs->dx */
|
|
pushq %rdx /* pt_regs->dx */
|
|
- pushq %rcx /* pt_regs->cx (will be overwritten) */
|
|
|
|
|
|
+ pushq %rcx /* pt_regs->cx */
|
|
pushq $-ENOSYS /* pt_regs->ax */
|
|
pushq $-ENOSYS /* pt_regs->ax */
|
|
pushq %r8 /* pt_regs->r8 = 0 */
|
|
pushq %r8 /* pt_regs->r8 = 0 */
|
|
pushq %r8 /* pt_regs->r9 = 0 */
|
|
pushq %r8 /* pt_regs->r9 = 0 */
|
|
pushq %r8 /* pt_regs->r10 = 0 */
|
|
pushq %r8 /* pt_regs->r10 = 0 */
|
|
pushq %r8 /* pt_regs->r11 = 0 */
|
|
pushq %r8 /* pt_regs->r11 = 0 */
|
|
pushq %rbx /* pt_regs->rbx */
|
|
pushq %rbx /* pt_regs->rbx */
|
|
- pushq %rbp /* pt_regs->rbp */
|
|
|
|
|
|
+ pushq %rbp /* pt_regs->rbp (will be overwritten) */
|
|
pushq %r8 /* pt_regs->r12 = 0 */
|
|
pushq %r8 /* pt_regs->r12 = 0 */
|
|
pushq %r8 /* pt_regs->r13 = 0 */
|
|
pushq %r8 /* pt_regs->r13 = 0 */
|
|
pushq %r8 /* pt_regs->r14 = 0 */
|
|
pushq %r8 /* pt_regs->r14 = 0 */
|
|
@@ -179,7 +179,7 @@ ENTRY(entry_SYSCALL_compat)
|
|
pushq %rdi /* pt_regs->di */
|
|
pushq %rdi /* pt_regs->di */
|
|
pushq %rsi /* pt_regs->si */
|
|
pushq %rsi /* pt_regs->si */
|
|
pushq %rdx /* pt_regs->dx */
|
|
pushq %rdx /* pt_regs->dx */
|
|
- pushq %rcx /* pt_regs->cx (will be overwritten) */
|
|
|
|
|
|
+ pushq %rbp /* pt_regs->cx (stashed in bp) */
|
|
pushq $-ENOSYS /* pt_regs->ax */
|
|
pushq $-ENOSYS /* pt_regs->ax */
|
|
xorq %r8,%r8
|
|
xorq %r8,%r8
|
|
pushq %r8 /* pt_regs->r8 = 0 */
|
|
pushq %r8 /* pt_regs->r8 = 0 */
|
|
@@ -187,7 +187,7 @@ ENTRY(entry_SYSCALL_compat)
|
|
pushq %r8 /* pt_regs->r10 = 0 */
|
|
pushq %r8 /* pt_regs->r10 = 0 */
|
|
pushq %r8 /* pt_regs->r11 = 0 */
|
|
pushq %r8 /* pt_regs->r11 = 0 */
|
|
pushq %rbx /* pt_regs->rbx */
|
|
pushq %rbx /* pt_regs->rbx */
|
|
- pushq %rbp /* pt_regs->rbp */
|
|
|
|
|
|
+ pushq %rbp /* pt_regs->rbp (will be overwritten) */
|
|
pushq %r8 /* pt_regs->r12 = 0 */
|
|
pushq %r8 /* pt_regs->r12 = 0 */
|
|
pushq %r8 /* pt_regs->r13 = 0 */
|
|
pushq %r8 /* pt_regs->r13 = 0 */
|
|
pushq %r8 /* pt_regs->r14 = 0 */
|
|
pushq %r8 /* pt_regs->r14 = 0 */
|