Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Apr 2003 14:05:03 -0700 (PDT)
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 29226 for review
Message-ID:  <200304182105.h3IL53VY039891@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=29226

Change 29226 by marcel@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)
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304182105.h3IL53VY039891>