svn commit: r200240 - head/sys/ia64/ia64
Marcel Moolenaar
marcel at FreeBSD.org
Tue Dec 8 00:44:24 UTC 2009
Author: marcel
Date: Tue Dec 8 00:44:23 2009
New Revision: 200240
URL: http://svn.freebsd.org/changeset/base/200240
Log:
In exception_save, write-back ar.rnat after switching the backing-
store. Writing to ar.bspstore is defined to leave ar.rnat undefined.
PR: ia64/120315
MFC after: 3 days
Modified:
head/sys/ia64/ia64/exception.S
Modified: head/sys/ia64/ia64/exception.S
==============================================================================
--- head/sys/ia64/ia64/exception.S Mon Dec 7 21:30:54 2009 (r200239)
+++ head/sys/ia64/ia64/exception.S Tue Dec 8 00:44:23 2009 (r200240)
@@ -228,43 +228,42 @@ exception_save_restart:
(p13) dep r20=r20,r21,0,9 // align dirty registers
;;
}
- // r20=bspstore, r22=iip, r23=ipsr
+ // r19=rnat, r20=bspstore, r22=iip, r23=ipsr
{ .mmi
st8 [r31]=r23,16 // psr
(p13) mov ar.bspstore=r20
nop 0
;;
}
-{ .mmi
+{ .mmb
+(p13) mov ar.rnat=r19
mov r18=ar.bsp
- ;;
- mov r19=cr.ifs
- sub r18=r18,r20
+ nop 0
;;
}
{ .mmi
+ mov r19=cr.ifs
st8.spill [r30]=gp,16 // gp
- st8 [r31]=r18,16 // ndirty
- nop 0
+ sub r18=r18,r20
;;
}
// r19=ifs, r22=iip
-{ .mmi
+{ .mmb
+ st8 [r31]=r18,16 // ndirty
st8 [r30]=r19,16 // cfm
- st8 [r31]=r22,16 // iip
nop 0
;;
}
{ .mmi
- st8 [r30]=r17 // ifa
mov r18=cr.isr
+ st8 [r31]=r22,16 // iip
add r29=16,r30
;;
}
-{ .mmi
- st8 [r31]=r18 // isr
- add r30=8,r29
- add r31=16,r29
+{ .mmb
+ st8 [r30]=r17,24 // ifa
+ st8 [r31]=r18,24 // isr
+ nop 0
;;
}
{ .mmi
More information about the svn-src-head
mailing list