aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/entry/entry_64_compat.S45
1 files changed, 21 insertions, 24 deletions
diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
index 847f2f0c31e5..e1721dafbcb1 100644
--- a/arch/x86/entry/entry_64_compat.S
+++ b/arch/x86/entry/entry_64_compat.S
@@ -72,24 +72,23 @@ ENTRY(entry_SYSENTER_compat)
72 pushfq /* pt_regs->flags (except IF = 0) */ 72 pushfq /* pt_regs->flags (except IF = 0) */
73 orl $X86_EFLAGS_IF, (%rsp) /* Fix saved flags */ 73 orl $X86_EFLAGS_IF, (%rsp) /* Fix saved flags */
74 pushq $__USER32_CS /* pt_regs->cs */ 74 pushq $__USER32_CS /* pt_regs->cs */
75 xorq %r8,%r8 75 pushq $0 /* pt_regs->ip = 0 (placeholder) */
76 pushq %r8 /* pt_regs->ip = 0 (placeholder) */
77 pushq %rax /* pt_regs->orig_ax */ 76 pushq %rax /* pt_regs->orig_ax */
78 pushq %rdi /* pt_regs->di */ 77 pushq %rdi /* pt_regs->di */
79 pushq %rsi /* pt_regs->si */ 78 pushq %rsi /* pt_regs->si */
80 pushq %rdx /* pt_regs->dx */ 79 pushq %rdx /* pt_regs->dx */
81 pushq %rcx /* pt_regs->cx */ 80 pushq %rcx /* pt_regs->cx */
82 pushq $-ENOSYS /* pt_regs->ax */ 81 pushq $-ENOSYS /* pt_regs->ax */
83 pushq %r8 /* pt_regs->r8 = 0 */ 82 pushq $0 /* pt_regs->r8 = 0 */
84 pushq %r8 /* pt_regs->r9 = 0 */ 83 pushq $0 /* pt_regs->r9 = 0 */
85 pushq %r8 /* pt_regs->r10 = 0 */ 84 pushq $0 /* pt_regs->r10 = 0 */
86 pushq %r8 /* pt_regs->r11 = 0 */ 85 pushq $0 /* pt_regs->r11 = 0 */
87 pushq %rbx /* pt_regs->rbx */ 86 pushq %rbx /* pt_regs->rbx */
88 pushq %rbp /* pt_regs->rbp (will be overwritten) */ 87 pushq %rbp /* pt_regs->rbp (will be overwritten) */
89 pushq %r8 /* pt_regs->r12 = 0 */ 88 pushq $0 /* pt_regs->r12 = 0 */
90 pushq %r8 /* pt_regs->r13 = 0 */ 89 pushq $0 /* pt_regs->r13 = 0 */
91 pushq %r8 /* pt_regs->r14 = 0 */ 90 pushq $0 /* pt_regs->r14 = 0 */
92 pushq %r8 /* pt_regs->r15 = 0 */ 91 pushq $0 /* pt_regs->r15 = 0 */
93 cld 92 cld
94 93
95 /* 94 /*
@@ -205,17 +204,16 @@ ENTRY(entry_SYSCALL_compat)
205 pushq %rdx /* pt_regs->dx */ 204 pushq %rdx /* pt_regs->dx */
206 pushq %rbp /* pt_regs->cx (stashed in bp) */ 205 pushq %rbp /* pt_regs->cx (stashed in bp) */
207 pushq $-ENOSYS /* pt_regs->ax */ 206 pushq $-ENOSYS /* pt_regs->ax */
208 xorq %r8,%r8 207 pushq $0 /* pt_regs->r8 = 0 */
209 pushq %r8 /* pt_regs->r8 = 0 */ 208 pushq $0 /* pt_regs->r9 = 0 */
210 pushq %r8 /* pt_regs->r9 = 0 */ 209 pushq $0 /* pt_regs->r10 = 0 */
211 pushq %r8 /* pt_regs->r10 = 0 */ 210 pushq $0 /* pt_regs->r11 = 0 */
212 pushq %r8 /* pt_regs->r11 = 0 */
213 pushq %rbx /* pt_regs->rbx */ 211 pushq %rbx /* pt_regs->rbx */
214 pushq %rbp /* pt_regs->rbp (will be overwritten) */ 212 pushq %rbp /* pt_regs->rbp (will be overwritten) */
215 pushq %r8 /* pt_regs->r12 = 0 */ 213 pushq $0 /* pt_regs->r12 = 0 */
216 pushq %r8 /* pt_regs->r13 = 0 */ 214 pushq $0 /* pt_regs->r13 = 0 */
217 pushq %r8 /* pt_regs->r14 = 0 */ 215 pushq $0 /* pt_regs->r14 = 0 */
218 pushq %r8 /* pt_regs->r15 = 0 */ 216 pushq $0 /* pt_regs->r15 = 0 */
219 217
220 /* 218 /*
221 * User mode is traced as though IRQs are on, and SYSENTER 219 * User mode is traced as though IRQs are on, and SYSENTER
@@ -316,11 +314,10 @@ ENTRY(entry_INT80_compat)
316 pushq %rdx /* pt_regs->dx */ 314 pushq %rdx /* pt_regs->dx */
317 pushq %rcx /* pt_regs->cx */ 315 pushq %rcx /* pt_regs->cx */
318 pushq $-ENOSYS /* pt_regs->ax */ 316 pushq $-ENOSYS /* pt_regs->ax */
319 xorq %r8,%r8 317 pushq $0 /* pt_regs->r8 = 0 */
320 pushq %r8 /* pt_regs->r8 = 0 */ 318 pushq $0 /* pt_regs->r9 = 0 */
321 pushq %r8 /* pt_regs->r9 = 0 */ 319 pushq $0 /* pt_regs->r10 = 0 */
322 pushq %r8 /* pt_regs->r10 = 0 */ 320 pushq $0 /* pt_regs->r11 = 0 */
323 pushq %r8 /* pt_regs->r11 = 0 */
324 pushq %rbx /* pt_regs->rbx */ 321 pushq %rbx /* pt_regs->rbx */
325 pushq %rbp /* pt_regs->rbp */ 322 pushq %rbp /* pt_regs->rbp */
326 pushq %r12 /* pt_regs->r12 */ 323 pushq %r12 /* pt_regs->r12 */