debuggers.hg
changeset 16838:81cee3aa9e90
[IA64] vti fault handler clean up: clean up ia64_leave_nested
The rse backing store is unchanged when nested interrupted case so that
bsp related operation doesn't make sense.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
The rse backing store is unchanged when nested interrupted case so that
bsp related operation doesn't make sense.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
author | Alex Williamson <alex.williamson@hp.com> |
---|---|
date | Fri Dec 14 13:24:44 2007 -0700 (2007-12-14) |
parents | 40f15062d188 |
children | d0f0ed665d1a |
files | xen/arch/ia64/vmx/vmx_entry.S |
line diff
1.1 --- a/xen/arch/ia64/vmx/vmx_entry.S Fri Dec 14 13:12:17 2007 -0700 1.2 +++ b/xen/arch/ia64/vmx/vmx_entry.S Fri Dec 14 13:24:44 2007 -0700 1.3 @@ -99,8 +99,6 @@ GLOBAL_ENTRY(ia64_leave_nested) 1.4 bsw.0 // switch back to bank 0 (no stop bit required beforehand...) 1.5 ;; 1.6 ldf.fill f11=[r2] 1.7 -// mov r18=r13 1.8 -// mov r21=r13 1.9 adds r16=PT(CR_IPSR)+16,r12 1.10 adds r17=PT(CR_IIP)+16,r12 1.11 ;; 1.12 @@ -110,19 +108,26 @@ GLOBAL_ENTRY(ia64_leave_nested) 1.13 ld8 r30=[r16],16 // load cr.ifs 1.14 ld8 r25=[r17],16 // load ar.unat 1.15 ;; 1.16 +#ifndef XEN 1.17 ld8 r26=[r16],16 // load ar.pfs 1.18 ld8 r27=[r17],16 // load ar.rsc 1.19 -#ifndef XEN 1.20 cmp.eq p9,p0=r0,r0 // set p9 to indicate that we should restore cr.ifs 1.21 -#endif 1.22 ;; 1.23 ld8 r24=[r16],16 // load ar.rnat (may be garbage) 1.24 - ld8 r23=[r17],16// load ar.bspstore (may be garbage) 1.25 + ld8 r23=[r17],16 // load ar.bspstore (may be garbage) 1.26 ;; 1.27 ld8 r31=[r16],16 // load predicates 1.28 +#else 1.29 + ld8 r26=[r16],32 // load ar.pfs 1.30 + ld8 r27=[r17],32 // load ar.rsc 1.31 + ;; 1.32 + ld8 r31=[r16],32 // load predicates 1.33 +#endif 1.34 ld8 r22=[r17],16 // load b0 1.35 ;; 1.36 - ld8 r19=[r16],16 // load ar.rsc value for "loadrs" 1.37 +#ifndef XEN 1.38 + ld8 r19=[r16],16 // load ar.rsc value for "loadrs" 1.39 +#endif 1.40 ld8.fill r1=[r17],16 // load r1 1.41 ;; 1.42 ld8.fill r12=[r16],16 1.43 @@ -135,9 +140,11 @@ GLOBAL_ENTRY(ia64_leave_nested) 1.44 ld8.fill r2=[r17] 1.45 ;; 1.46 ld8.fill r3=[r16] 1.47 +#ifndef XEN 1.48 ;; 1.49 - mov r16=ar.bsp // get existing backing store pointer 1.50 + mov r16=ar.bsp // get existing backing store pointer 1.51 ;; 1.52 +#endif 1.53 mov b0=r22 1.54 mov ar.pfs=r26 1.55 mov cr.ifs=r30