ia64/xen-unstable

diff xen/arch/ia64/vmx/vmx_entry.S @ 9770:ced37bea0647

[IA64] FPH enabling + cleanup

Move contents of switch_to macro from xensystem.h to context_switch function.
Initialize FPU on all processors. FPH is always enabled in Xen.
Speed up context-switch (a little bit!) by not enabling/disabling FPH.
Cleanup (unused function/variablesi/fields, debug printf...)
vmx_ia64_switch_to removed (was unused).

Signed-off-by: Tristan Gingold <tristan.gingold@bull.net>
author awilliam@xenbuild.aw
date Tue Apr 25 22:35:41 2006 -0600 (2006-04-25)
parents cfe20f41f043
children 70b7d520bda4
line diff
     1.1 --- a/xen/arch/ia64/vmx/vmx_entry.S	Tue Apr 25 22:32:14 2006 -0600
     1.2 +++ b/xen/arch/ia64/vmx/vmx_entry.S	Tue Apr 25 22:35:41 2006 -0600
     1.3 @@ -37,48 +37,6 @@
     1.4  #include <asm/vmmu.h>
     1.5  #include "vmx_minstate.h"
     1.6  
     1.7 -/*
     1.8 - * prev_task <- vmx_ia64_switch_to(struct task_struct *next)
     1.9 - *	With Ingo's new scheduler, interrupts are disabled when this routine gets
    1.10 - *	called.  The code starting at .map relies on this.  The rest of the code
    1.11 - *	doesn't care about the interrupt masking status.
    1.12 - *
    1.13 - * Since we allocate domain stack in xenheap, there's no need to map new
    1.14 - * domain's stack since all xenheap is mapped by TR. Another different task
    1.15 - * for vmx_ia64_switch_to is to switch to bank0 and change current pointer.
    1.16 - */
    1.17 -GLOBAL_ENTRY(vmx_ia64_switch_to)
    1.18 -	.prologue
    1.19 -	alloc r16=ar.pfs,1,0,0,0
    1.20 -	DO_SAVE_SWITCH_STACK
    1.21 -	.body
    1.22 -
    1.23 -	bsw.0	// Switch to bank0, because bank0 r21 is current pointer
    1.24 -	;;
    1.25 -	adds r22=IA64_TASK_THREAD_KSP_OFFSET,r13
    1.26 -	movl r25=init_task
    1.27 -	adds r26=IA64_TASK_THREAD_KSP_OFFSET,in0
    1.28 -	;;
    1.29 -	st8 [r22]=sp			// save kernel stack pointer of old task
    1.30 -	;;
    1.31 -	/*
    1.32 -	 * TR always mapped this task's page, we can skip doing it again.
    1.33 -	 */
    1.34 -	ld8 sp=[r26]			// load kernel stack pointer of new task
    1.35 -	mov r21=in0			// update "current" application register
    1.36 -	mov r8=r13			// return pointer to previously running task
    1.37 -	mov r13=in0			// set "current" pointer
    1.38 -	;;
    1.39 -	bsw.1
    1.40 -	;;
    1.41 -	DO_LOAD_SWITCH_STACK
    1.42 -
    1.43 -#ifdef CONFIG_SMP
    1.44 -	sync.i				// ensure "fc"s done by this CPU are visible on other CPUs
    1.45 -#endif
    1.46 -	br.ret.sptk.many rp		// boogie on out in new context
    1.47 -END(vmx_ia64_switch_to)
    1.48 -
    1.49  GLOBAL_ENTRY(ia64_leave_nested)
    1.50  	rsm psr.i
    1.51  	;;