diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2022-09-29 11:24:42 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2022-09-29 11:24:42 +0200 |
| commit | 32c229215aa438bf5a087c2e9a97462fd26208ad (patch) | |
| tree | a775056684e36404726f7253b860eae0d4600762 /src/include | |
| parent | 9c5cc38c9a11c87ae2ef845879cb479f52b9de00 (diff) | |
| download | box64-32c229215aa438bf5a087c2e9a97462fd26208ad.tar.gz box64-32c229215aa438bf5a087c2e9a97462fd26208ad.zip | |
Improved signal handling and x87 flags (with tests backported from box86)
Diffstat (limited to 'src/include')
| -rwxr-xr-x | src/include/regs.h | 17 |
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; |