Module Name:    src
Committed By:   dsl
Date:           Sat Feb  8 22:36:50 UTC 2014

Modified Files:
        src/sys/arch/x86/include: cpu_extended_state.h

Log Message:
Add bit defs for more of the x87 status register.


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/include/cpu_extended_state.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/x86/include/cpu_extended_state.h
diff -u src/sys/arch/x86/include/cpu_extended_state.h:1.2 src/sys/arch/x86/include/cpu_extended_state.h:1.3
--- src/sys/arch/x86/include/cpu_extended_state.h:1.2	Fri Feb  7 22:40:22 2014
+++ src/sys/arch/x86/include/cpu_extended_state.h	Sat Feb  8 22:36:50 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu_extended_state.h,v 1.2 2014/02/07 22:40:22 dsl Exp $	*/
+/*	$NetBSD: cpu_extended_state.h,v 1.3 2014/02/08 22:36:50 dsl Exp $	*/
 
 #ifndef _X86_CPU_EXTENDED_STATE_H_
 #define _X86_CPU_EXTENDED_STATE_H_
@@ -161,9 +161,12 @@ __CTASSERT(sizeof (struct xsave_ymm) == 
 /*
  * 80387 control and status word bits
  *
- * The only reference to the 0x40 and 0x80 bits I can find is for
- * the Weitek 1167/3167.
+ * The only reference I can find to bits 0x40 and 0x80 in the control word
+ * is for the Weitek 1167/3167.
  * I (dsl) can't find why the default word has 0x40 set.
+ *
+ * A stack error is signalled as an INVOP that also sets STACK_FAULT
+ * (other INVOP do not clear STACK_FAULT).
  */
 /* Interrupt masks (set masks interrupt) and status bits */
 #define EN_SW_INVOP		0x0001  /* Invalid operation */
@@ -172,8 +175,9 @@ __CTASSERT(sizeof (struct xsave_ymm) == 
 #define EN_SW_OVERFLOW		0x0008  /* Overflow */
 #define EN_SW_UNDERFLOW		0x0010  /* Underflow */
 #define EN_SW_PRECLOSS		0x0020  /* Loss of precision */
-#define EN_SW_RSVD_40		0x0040	/* Reserverd for all x87 parts */
-#define EN_SW_RSVD_80		0x0080	/* Reserverd for all x87 parts */
+/* Status word bits (reserved in control word) */
+#define EN_SW_STACK_FAULT	0x0040	/* Stack under/overflow */
+#define EN_SW_ERROR_SUMMARY	0x0080	/* Unmasked error has ocurred */
 /* Control bits (badly named) */
 #define EN_SW_CTL_PREC		0x0300	/* Precision control */
 #define EN_SW_PREC_24		0x0000	/* Single precision */

Reply via email to