# HG changeset patch
# User yamahata@xxxxxxxxxxxxx
# Date 1196658610 -32400
# Node ID 604dc1f4779c90468d3a9a161afa1dcabf279400
# Parent 84f84ee8929bf0b8015b292abc0d0ae5330a3d68
clean up ia64_leave_nested.
the rse backing store is unchanged when nested interrupted case so that
bsp related operation doesn't make sense.
PATCHNAME: clean_up_ia64_leave_nested
diff -r 84f84ee8929b -r 604dc1f4779c xen/arch/ia64/vmx/vmx_entry.S
--- a/xen/arch/ia64/vmx/vmx_entry.S Tue Nov 27 12:31:16 2007 +0900
+++ b/xen/arch/ia64/vmx/vmx_entry.S Mon Dec 03 14:10:10 2007 +0900
@@ -99,8 +99,6 @@ GLOBAL_ENTRY(ia64_leave_nested)
bsw.0 // switch back to bank 0 (no stop bit required
beforehand...)
;;
ldf.fill f11=[r2]
-// mov r18=r13
-// mov r21=r13
adds r16=PT(CR_IPSR)+16,r12
adds r17=PT(CR_IIP)+16,r12
;;
@@ -110,19 +108,26 @@ GLOBAL_ENTRY(ia64_leave_nested)
ld8 r30=[r16],16 // load cr.ifs
ld8 r25=[r17],16 // load ar.unat
;;
+#ifndef XEN
ld8 r26=[r16],16 // load ar.pfs
ld8 r27=[r17],16 // load ar.rsc
+ cmp.eq p9,p0=r0,r0 // set p9 to indicate that we should restore
cr.ifs
+ ;;
+ ld8 r24=[r16],16 // load ar.rnat (may be garbage)
+ ld8 r23=[r17],16 // load ar.bspstore (may be garbage)
+ ;;
+ ld8 r31=[r16],16 // load predicates
+#else
+ ld8 r26=[r16],32 // load ar.pfs
+ ld8 r27=[r17],32 // load ar.rsc
+ ;;
+ ld8 r31=[r16],32 // load predicates
+#endif
+ ld8 r22=[r17],16 // load b0
+ ;;
#ifndef XEN
- cmp.eq p9,p0=r0,r0 // set p9 to indicate that we should restore
cr.ifs
-#endif
- ;;
- ld8 r24=[r16],16 // load ar.rnat (may be garbage)
- ld8 r23=[r17],16// load ar.bspstore (may be garbage)
- ;;
- ld8 r31=[r16],16 // load predicates
- ld8 r22=[r17],16 // load b0
- ;;
- ld8 r19=[r16],16 // load ar.rsc value for "loadrs"
+ ld8 r19=[r16],16 // load ar.rsc value for "loadrs"
+#endif
ld8.fill r1=[r17],16 // load r1
;;
ld8.fill r12=[r16],16
@@ -135,9 +140,11 @@ GLOBAL_ENTRY(ia64_leave_nested)
ld8.fill r2=[r17]
;;
ld8.fill r3=[r16]
- ;;
- mov r16=ar.bsp // get existing backing store pointer
- ;;
+#ifndef XEN
+ ;;
+ mov r16=ar.bsp // get existing backing store pointer
+ ;;
+#endif
mov b0=r22
mov ar.pfs=r26
mov cr.ifs=r30
16506_604dc1f4779c_clean_up_ia64_leave_nested.patch
Description: Text Data
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|