diff options
-rw-r--r-- | arch/x86/entry/entry_64_compat.S | 45 |
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 */ |