diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2008-06-25 00:19:29 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 07:15:55 -0400 |
commit | 6680415481c7bd38967cf7488787f509f17ba307 (patch) | |
tree | ddbabcbbba8e126c2262203d55e7c0d4c288125e /arch/x86/ia32/ia32entry.S | |
parent | 2be29982a08009c731307f4a39053b70ac4700da (diff) |
x86, 64-bit: ia32entry: replace privileged instructions with pvops
Replace privileged instructions with the corresponding pvops in
ia32entry.S.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: xen-devel <xen-devel@lists.xensource.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.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 | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/x86/ia32/ia32entry.S b/arch/x86/ia32/ia32entry.S index 2a4c42427d9a..9740b6a2df35 100644 --- a/arch/x86/ia32/ia32entry.S +++ b/arch/x86/ia32/ia32entry.S | |||
@@ -98,14 +98,14 @@ ENTRY(ia32_sysenter_target) | |||
98 | CFI_SIGNAL_FRAME | 98 | CFI_SIGNAL_FRAME |
99 | CFI_DEF_CFA rsp,0 | 99 | CFI_DEF_CFA rsp,0 |
100 | CFI_REGISTER rsp,rbp | 100 | CFI_REGISTER rsp,rbp |
101 | swapgs | 101 | SWAPGS |
102 | movq %gs:pda_kernelstack, %rsp | 102 | movq %gs:pda_kernelstack, %rsp |
103 | addq $(PDA_STACKOFFSET),%rsp | 103 | addq $(PDA_STACKOFFSET),%rsp |
104 | /* | 104 | /* |
105 | * No need to follow this irqs on/off section: the syscall | 105 | * No need to follow this irqs on/off section: the syscall |
106 | * disabled irqs, here we enable it straight after entry: | 106 | * disabled irqs, here we enable it straight after entry: |
107 | */ | 107 | */ |
108 | sti | 108 | ENABLE_INTERRUPTS(CLBR_NONE) |
109 | movl %ebp,%ebp /* zero extension */ | 109 | movl %ebp,%ebp /* zero extension */ |
110 | pushq $__USER32_DS | 110 | pushq $__USER32_DS |
111 | CFI_ADJUST_CFA_OFFSET 8 | 111 | CFI_ADJUST_CFA_OFFSET 8 |
@@ -147,7 +147,7 @@ sysenter_do_call: | |||
147 | call *ia32_sys_call_table(,%rax,8) | 147 | call *ia32_sys_call_table(,%rax,8) |
148 | movq %rax,RAX-ARGOFFSET(%rsp) | 148 | movq %rax,RAX-ARGOFFSET(%rsp) |
149 | GET_THREAD_INFO(%r10) | 149 | GET_THREAD_INFO(%r10) |
150 | cli | 150 | DISABLE_INTERRUPTS(CLBR_NONE) |
151 | TRACE_IRQS_OFF | 151 | TRACE_IRQS_OFF |
152 | testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) | 152 | testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) |
153 | jnz int_ret_from_sys_call | 153 | jnz int_ret_from_sys_call |
@@ -210,7 +210,7 @@ ENTRY(ia32_cstar_target) | |||
210 | CFI_DEF_CFA rsp,PDA_STACKOFFSET | 210 | CFI_DEF_CFA rsp,PDA_STACKOFFSET |
211 | CFI_REGISTER rip,rcx | 211 | CFI_REGISTER rip,rcx |
212 | /*CFI_REGISTER rflags,r11*/ | 212 | /*CFI_REGISTER rflags,r11*/ |
213 | swapgs | 213 | SWAPGS |
214 | movl %esp,%r8d | 214 | movl %esp,%r8d |
215 | CFI_REGISTER rsp,r8 | 215 | CFI_REGISTER rsp,r8 |
216 | movq %gs:pda_kernelstack,%rsp | 216 | movq %gs:pda_kernelstack,%rsp |
@@ -218,7 +218,7 @@ ENTRY(ia32_cstar_target) | |||
218 | * No need to follow this irqs on/off section: the syscall | 218 | * No need to follow this irqs on/off section: the syscall |
219 | * disabled irqs and here we enable it straight after entry: | 219 | * disabled irqs and here we enable it straight after entry: |
220 | */ | 220 | */ |
221 | sti | 221 | ENABLE_INTERRUPTS(CLBR_NONE) |
222 | SAVE_ARGS 8,1,1 | 222 | SAVE_ARGS 8,1,1 |
223 | movl %eax,%eax /* zero extension */ | 223 | movl %eax,%eax /* zero extension */ |
224 | movq %rax,ORIG_RAX-ARGOFFSET(%rsp) | 224 | movq %rax,ORIG_RAX-ARGOFFSET(%rsp) |
@@ -251,7 +251,7 @@ cstar_do_call: | |||
251 | call *ia32_sys_call_table(,%rax,8) | 251 | call *ia32_sys_call_table(,%rax,8) |
252 | movq %rax,RAX-ARGOFFSET(%rsp) | 252 | movq %rax,RAX-ARGOFFSET(%rsp) |
253 | GET_THREAD_INFO(%r10) | 253 | GET_THREAD_INFO(%r10) |
254 | cli | 254 | DISABLE_INTERRUPTS(CLBR_NONE) |
255 | TRACE_IRQS_OFF | 255 | TRACE_IRQS_OFF |
256 | testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) | 256 | testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10) |
257 | jnz int_ret_from_sys_call | 257 | jnz int_ret_from_sys_call |
@@ -319,12 +319,12 @@ ENTRY(ia32_syscall) | |||
319 | /*CFI_REL_OFFSET rflags,EFLAGS-RIP*/ | 319 | /*CFI_REL_OFFSET rflags,EFLAGS-RIP*/ |
320 | /*CFI_REL_OFFSET cs,CS-RIP*/ | 320 | /*CFI_REL_OFFSET cs,CS-RIP*/ |
321 | CFI_REL_OFFSET rip,RIP-RIP | 321 | CFI_REL_OFFSET rip,RIP-RIP |
322 | swapgs | 322 | SWAPGS |
323 | /* | 323 | /* |
324 | * No need to follow this irqs on/off section: the syscall | 324 | * No need to follow this irqs on/off section: the syscall |
325 | * disabled irqs and here we enable it straight after entry: | 325 | * disabled irqs and here we enable it straight after entry: |
326 | */ | 326 | */ |
327 | sti | 327 | ENABLE_INTERRUPTS(CLBR_NONE) |
328 | movl %eax,%eax | 328 | movl %eax,%eax |
329 | pushq %rax | 329 | pushq %rax |
330 | CFI_ADJUST_CFA_OFFSET 8 | 330 | CFI_ADJUST_CFA_OFFSET 8 |