diff options
author | Jan Beulich <JBeulich@novell.com> | 2011-02-28 10:54:40 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-02-28 12:06:22 -0500 |
commit | 60cf637a13932a4750da6746efd0199e8a4c341b (patch) | |
tree | 854edd9df2593f86b2c434d6830e6d2a26080b7b /arch/x86/ia32/ia32entry.S | |
parent | 39f2205e1abd1b6fffdaf45e1f1c3049a5f8999c (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.S | 27 |
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. */ |