PERFORCE change 29226 for review
Marcel Moolenaar
marcel at FreeBSD.org
Fri Apr 18 14:05:05 PDT 2003
http://perforce.freebsd.org/chv.cgi?CH=29226
Change 29226 by marcel at marcel_nfs on 2003/04/18 14:04:05
Preserve the value of cr.iim as cr.ifa in the trapframe for the
following faults:
o the break instruction fault writes the immediate operand of
the break instruction in cr.iim,
o the speculative operation fault encodes the displacement of
the target operand of the chk.a and chk.s instructions in
cr.iim,
o the ia32 faults and traps using the ia32 intercept vector
write the cause of the interception in cr.iim.
In the above cases cr.ifa is undefined and in all other cases
cr.iim is undefined. Hence no information is lost by copying
cr.iim into cr.ifa prior to saving the context in the trapframe.
Affected files ...
.. //depot/projects/ia64_epc/sys/ia64/ia64/exception.s#12 edit
Differences ...
==== //depot/projects/ia64_epc/sys/ia64/ia64/exception.s#12 (text+ko) ====
@@ -1081,6 +1081,18 @@
IVT_END(Data_Access_Bit)
IVT_ENTRY(Break_Instruction, 0x2c00)
+{ .mmi
+ mov r16=cr.iim
+ ;;
+ mov cr.ifa=r16
+ nop 0
+ ;;
+}
+{ .mfb
+ srlz.d
+ nop 0
+ nop 0
+}
TRAP(11)
IVT_END(Break_Instruction)
@@ -1174,6 +1186,18 @@
IVT_END(NaT_Consumption)
IVT_ENTRY(Speculation, 0x5700)
+{ .mmi
+ mov r16=cr.iim
+ ;;
+ mov cr.ifa=r16
+ nop 0
+ ;;
+}
+{ .mfb
+ srlz.d
+ nop 0
+ nop 0
+}
TRAP(27)
IVT_END(Speculation)
@@ -1250,6 +1274,18 @@
IVT_END(IA_32_Exception)
IVT_ENTRY(IA_32_Intercept, 0x6a00)
+{ .mmi
+ mov r16=cr.iim
+ ;;
+ mov cr.ifa=r16
+ nop 0
+ ;;
+}
+{ .mfb
+ srlz.d
+ nop 0
+ nop 0
+}
TRAP(46)
IVT_END(IA_32_Intercept)
More information about the p4-projects
mailing list