aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/ia32/ia32entry.S
diff options
context:
space:
mode:
authorJan Beulich <JBeulich@novell.com>2011-02-28 10:54:40 -0500
committerIngo Molnar <mingo@elte.hu>2011-02-28 12:06:22 -0500
commit60cf637a13932a4750da6746efd0199e8a4c341b (patch)
tree854edd9df2593f86b2c434d6830e6d2a26080b7b /arch/x86/ia32/ia32entry.S
parent39f2205e1abd1b6fffdaf45e1f1c3049a5f8999c (diff)
x86: Use {push,pop}_cfi in more places
Cleaning up and shortening code... Signed-off-by: Jan Beulich <jbeulich@novell.com> Cc: Alexander van Heukelum <heukelum@fastmail.fm> LKML-Reference: <4D6BD35002000078000341DA@vpn.id2.novell.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/ia32/ia32entry.S')
-rw-r--r--arch/x86/ia32/ia32entry.S27
1 files changed, 9 insertions, 18 deletions
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S
index 518bb99c3394..7c6aabd01fc5 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -126,26 +126,20 @@ ENTRY(ia32_sysenter_target)
126 */ 126 */
127 ENABLE_INTERRUPTS(CLBR_NONE) 127 ENABLE_INTERRUPTS(CLBR_NONE)
128 movl %ebp,%ebp /* zero extension */ 128 movl %ebp,%ebp /* zero extension */
129 pushq $__USER32_DS 129 pushq_cfi $__USER32_DS
130 CFI_ADJUST_CFA_OFFSET 8
131 /*CFI_REL_OFFSET ss,0*/ 130 /*CFI_REL_OFFSET ss,0*/
132 pushq %rbp 131 pushq_cfi %rbp
133 CFI_ADJUST_CFA_OFFSET 8
134 CFI_REL_OFFSET rsp,0 132 CFI_REL_OFFSET rsp,0
135 pushfq 133 pushfq_cfi
136 CFI_ADJUST_CFA_OFFSET 8
137 /*CFI_REL_OFFSET rflags,0*/ 134 /*CFI_REL_OFFSET rflags,0*/
138 movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d 135 movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
139 CFI_REGISTER rip,r10 136 CFI_REGISTER rip,r10
140 pushq $__USER32_CS 137 pushq_cfi $__USER32_CS
141 CFI_ADJUST_CFA_OFFSET 8
142 /*CFI_REL_OFFSET cs,0*/ 138 /*CFI_REL_OFFSET cs,0*/
143 movl %eax, %eax 139 movl %eax, %eax
144 pushq %r10 140 pushq_cfi %r10
145 CFI_ADJUST_CFA_OFFSET 8
146 CFI_REL_OFFSET rip,0 141 CFI_REL_OFFSET rip,0
147 pushq %rax 142 pushq_cfi %rax
148 CFI_ADJUST_CFA_OFFSET 8
149 cld 143 cld
150 SAVE_ARGS 0,0,1 144 SAVE_ARGS 0,0,1
151 /* no need to do an access_ok check here because rbp has been 145 /* no need to do an access_ok check here because rbp has been
@@ -182,11 +176,9 @@ sysexit_from_sys_call:
182 xorq %r9,%r9 176 xorq %r9,%r9
183 xorq %r10,%r10 177 xorq %r10,%r10
184 xorq %r11,%r11 178 xorq %r11,%r11
185 popfq 179 popfq_cfi
186 CFI_ADJUST_CFA_OFFSET -8
187 /*CFI_RESTORE rflags*/ 180 /*CFI_RESTORE rflags*/
188 popq %rcx /* User %esp */ 181 popq_cfi %rcx /* User %esp */
189 CFI_ADJUST_CFA_OFFSET -8
190 CFI_REGISTER rsp,rcx 182 CFI_REGISTER rsp,rcx
191 TRACE_IRQS_ON 183 TRACE_IRQS_ON
192 ENABLE_INTERRUPTS_SYSEXIT32 184 ENABLE_INTERRUPTS_SYSEXIT32
@@ -421,8 +413,7 @@ ENTRY(ia32_syscall)
421 */ 413 */
422 ENABLE_INTERRUPTS(CLBR_NONE) 414 ENABLE_INTERRUPTS(CLBR_NONE)
423 movl %eax,%eax 415 movl %eax,%eax
424 pushq %rax 416 pushq_cfi %rax
425 CFI_ADJUST_CFA_OFFSET 8
426 cld 417 cld
427 /* note the registers are not zero extended to the sf. 418 /* note the registers are not zero extended to the sf.
428 this could be a problem. */ 419 this could be a problem. */