aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/ia32
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-03-15 21:59:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-03-15 21:59:56 -0400
commitda849abeb86ddaa093b0935fde595e8e4dd21ffc (patch)
treef985f6b1858f3abce274f267bfde051810215ed0 /arch/x86/ia32
parent21a32816b2e13eafb6d8a4589a84c6e629adc392 (diff)
parent371c394af27ab7d1e58a66bc19d9f1f3ac1f67b4 (diff)
Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: x86, binutils, xen: Fix another wrong size directive x86: Remove dead config option X86_CPU x86: Really print supported CPUs if PROCESSOR_SELECT=y x86: Fix a bogus unwind annotation in lib/semaphore_32.S um, x86-64: Fix UML build after adding CFI annotations to lib/rwsem_64.S x86: Remove unused bits from lib/thunk_*.S x86: Use {push,pop}_cfi in more places x86-64: Add CFI annotations to lib/rwsem_64.S x86, asm: Cleanup unnecssary macros in asm-offsets.c x86, system.h: Drop unused __SAVE/__RESTORE macros x86: Use bitmap library functions x86: Partly unify asm-offsets_{32,64}.c x86: Reduce back the alignment of the per-CPU data section
Diffstat (limited to 'arch/x86/ia32')
-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 2f0d7b450150..430312ba6e3f 100644
--- a/arch/x86/ia32/ia32entry.S
+++ b/arch/x86/ia32/ia32entry.S
@@ -128,26 +128,20 @@ ENTRY(ia32_sysenter_target)
128 */ 128 */
129 ENABLE_INTERRUPTS(CLBR_NONE) 129 ENABLE_INTERRUPTS(CLBR_NONE)
130 movl %ebp,%ebp /* zero extension */ 130 movl %ebp,%ebp /* zero extension */
131 pushq $__USER32_DS 131 pushq_cfi $__USER32_DS
132 CFI_ADJUST_CFA_OFFSET 8
133 /*CFI_REL_OFFSET ss,0*/ 132 /*CFI_REL_OFFSET ss,0*/
134 pushq %rbp 133 pushq_cfi %rbp
135 CFI_ADJUST_CFA_OFFSET 8
136 CFI_REL_OFFSET rsp,0 134 CFI_REL_OFFSET rsp,0
137 pushfq 135 pushfq_cfi
138 CFI_ADJUST_CFA_OFFSET 8
139 /*CFI_REL_OFFSET rflags,0*/ 136 /*CFI_REL_OFFSET rflags,0*/
140 movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d 137 movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
141 CFI_REGISTER rip,r10 138 CFI_REGISTER rip,r10
142 pushq $__USER32_CS 139 pushq_cfi $__USER32_CS
143 CFI_ADJUST_CFA_OFFSET 8
144 /*CFI_REL_OFFSET cs,0*/ 140 /*CFI_REL_OFFSET cs,0*/
145 movl %eax, %eax 141 movl %eax, %eax
146 pushq %r10 142 pushq_cfi %r10
147 CFI_ADJUST_CFA_OFFSET 8
148 CFI_REL_OFFSET rip,0 143 CFI_REL_OFFSET rip,0
149 pushq %rax 144 pushq_cfi %rax
150 CFI_ADJUST_CFA_OFFSET 8
151 cld 145 cld
152 SAVE_ARGS 0,0,1 146 SAVE_ARGS 0,0,1
153 /* no need to do an access_ok check here because rbp has been 147 /* no need to do an access_ok check here because rbp has been
@@ -184,11 +178,9 @@ sysexit_from_sys_call:
184 xorq %r9,%r9 178 xorq %r9,%r9
185 xorq %r10,%r10 179 xorq %r10,%r10
186 xorq %r11,%r11 180 xorq %r11,%r11
187 popfq 181 popfq_cfi
188 CFI_ADJUST_CFA_OFFSET -8
189 /*CFI_RESTORE rflags*/ 182 /*CFI_RESTORE rflags*/
190 popq %rcx /* User %esp */ 183 popq_cfi %rcx /* User %esp */
191 CFI_ADJUST_CFA_OFFSET -8
192 CFI_REGISTER rsp,rcx 184 CFI_REGISTER rsp,rcx
193 TRACE_IRQS_ON 185 TRACE_IRQS_ON
194 ENABLE_INTERRUPTS_SYSEXIT32 186 ENABLE_INTERRUPTS_SYSEXIT32
@@ -423,8 +415,7 @@ ENTRY(ia32_syscall)
423 */ 415 */
424 ENABLE_INTERRUPTS(CLBR_NONE) 416 ENABLE_INTERRUPTS(CLBR_NONE)
425 movl %eax,%eax 417 movl %eax,%eax
426 pushq %rax 418 pushq_cfi %rax
427 CFI_ADJUST_CFA_OFFSET 8
428 cld 419 cld
429 /* note the registers are not zero extended to the sf. 420 /* note the registers are not zero extended to the sf.
430 this could be a problem. */ 421 this could be a problem. */