Commit b039f2e
committed
lang/rust: enable SSE2 by default on i386
Upstream Rust always requires SSE2 for x86. But back in 2017[^1][^2] we
patched lang/rust to disable SSE2 for i386. At the time, it was
reported that some people were still using non-SSE2 capable hardware.
More recently, LLVM bugs have been discovered[^3][^4] that can result in
rounding bugs and reduced accuracy when using f64 on non-SSE hardware.
In weird cases, they can even cause wilder unpredictable behavior, like
segfaults.
Revert our change for the sake of Pentium 4 (and later) users. But add
an SSE2 option. Disabling it will allow the port to be used on Pentium
3 and older CPUs.
[^1]: d65b288
[^2]: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223415
[^3]: rust-lang/rust#114479
[^4]: llvm/llvm-project#44218
Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D472271 parent fe3a6cd commit b039f2e
File tree
3 files changed
+18
-1
lines changed- lang/rust
- files
3 files changed
+18
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
8 | 20 | | |
9 | 21 | | |
10 | 22 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| 51 | + | |
| 52 | + | |
51 | 53 | | |
52 | 54 | | |
53 | 55 | | |
| 56 | + | |
54 | 57 | | |
55 | 58 | | |
56 | 59 | | |
| 60 | + | |
| 61 | + | |
57 | 62 | | |
58 | 63 | | |
59 | 64 | | |
| |||
0 commit comments