Improve signal handling and math

- Polyfill ucontext_t on FreeBSD/OpenBSD/NetBSD
- Add tests confirming signals can edit CPU state
- Work towards supporting ZIP filesystem on bare metal
- Add more tinymath unit tests for POSIX conformance
- Add X87 and SSE status flags to crash report
- Fix some bugs in blinkenlights
- Fix llvm build breakage
This commit is contained in:
Justine Tunney 2021-02-25 18:30:17 -08:00
parent cdc54ea1fd
commit 40291c9db3
109 changed files with 2316 additions and 520 deletions

View file

@ -1664,6 +1664,17 @@ static void OpRdmsr(struct Machine *m, uint32_t rde) {
Write32(m->ax, 0);
}
static void OpVzeroupper(struct Machine *m, uint32_t rde) {
}
static void OpEmms(struct Machine *m, uint32_t rde) {
if (m->xedd->op.vexvalid) {
OpVzeroupper(m, rde);
} else {
m->fpu.tw = -1;
}
}
static const nexgen32e_f kNexgen32e[] = {
[0x000] = OpAlubAdd,
[0x001] = OpAluw,
@ -2040,7 +2051,7 @@ static const nexgen32e_f kNexgen32e[] = {
[0x174] = OpSsePcmpeqb,
[0x175] = OpSsePcmpeqw,
[0x176] = OpSsePcmpeqd,
[0x177] = OpUd,
[0x177] = OpEmms,
[0x178] = OpUd,
[0x179] = OpUd,
[0x17A] = OpUd,