about summary refs log tree commit diff stats
path: root/src/include
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-09-29 11:24:42 +0200
committerptitSeb <sebastien.chev@gmail.com>2022-09-29 11:24:42 +0200
commit32c229215aa438bf5a087c2e9a97462fd26208ad (patch)
treea775056684e36404726f7253b860eae0d4600762 /src/include
parent9c5cc38c9a11c87ae2ef845879cb479f52b9de00 (diff)
downloadbox64-32c229215aa438bf5a087c2e9a97462fd26208ad.tar.gz
box64-32c229215aa438bf5a087c2e9a97462fd26208ad.zip
Improved signal handling and x87 flags (with tests backported from box86)
Diffstat (limited to 'src/include')
-rwxr-xr-xsrc/include/regs.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/include/regs.h b/src/include/regs.h
index d7ae0250..d66e8065 100755
--- a/src/include/regs.h
+++ b/src/include/regs.h
@@ -242,6 +242,23 @@ typedef union {
 } x87flags_t;
 
 typedef union {
+    struct __attribute__ ((__packed__)) {
+        unsigned int C87_IM:1;	// interupt masks
+        unsigned int C87_DM:1;
+        unsigned int C87_ZM:1;
+        unsigned int C87_OM:1;
+        unsigned int C87_UM:1;
+        unsigned int C87_PM:1;
+        unsigned int C87_R1:2;	// reserved
+        unsigned int C87_PC:2;	// precision control (24bits, reserved, 53bits, 64bits)
+        unsigned int C87_RD:2;	// Rounds
+		unsigned int C87_IC:1;
+		unsigned int C87_R2:3;	// reserved
+    } f;
+    uint16_t    x16;
+} x87control_t;
+
+typedef union {
 	uint64_t	q;
 	int64_t		sq;
 	double		d;