b96f984963
This fixes several long-standing issues with x87 float emulation, in particular:
- 80 bit precision floats, fixing Haiku after its switch to musl libc (hrev53728)
- the precision bit in the x87 control word
- fucom and fucomi (unordered comparisons)
- aliasing of x87 and mmx registers
- rounding during conversion to integers
Operations that are not implemented in softfloat were implemented by
converting to f64 (sine, pow, ln, etc.) and thus operate with lower
precision.
Softfloat has been combined into a single file using a script [0] and checked into the repository.
[0]
|
||
---|---|---|
.. | ||
api | ||
benchmark | ||
devices | ||
expect | ||
full | ||
jit-paging | ||
kvm-unit-tests | ||
nasm | ||
perf-irhydra | ||
qemu | ||
rust | ||
Readme.md |
- nasm: Small unit tests written in assembly, which are run using gdb on the host.
- qemu: Builds a Linux binary, which tests many CPU features, which are then compared to a run on the host.
- kvm-unit-test: Based on tests from the KVM project, tests various CPU features.
- full: Starts several OSes and checks if they boot correctly.
- perf-irhydra: Manual performance test. Probably not interesting for you.