diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-15 21:59:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-15 21:59:56 -0400 |
commit | da849abeb86ddaa093b0935fde595e8e4dd21ffc (patch) | |
tree | f985f6b1858f3abce274f267bfde051810215ed0 /arch/x86/ia32/ia32entry.S | |
parent | 21a32816b2e13eafb6d8a4589a84c6e629adc392 (diff) | |
parent | 371c394af27ab7d1e58a66bc19d9f1f3ac1f67b4 (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/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 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. */ |