Commit Graph

2078 Commits

Author SHA1 Message Date
Martin Kröning
620f50589e Expose minimal floating point symbols for x86_64-unknown-none 2022-12-07 16:08:01 +01:00
Jérome Eertmans
80828bfb0b fix(docs): typo in docstrings
Hello, I think you misspelled `width` to `with`.
2022-11-28 10:53:42 +01:00
Amanieu d'Antras
ad4ab99a2e Bump to 0.1.84 2022-11-18 02:58:11 +00:00
Nicholas Bishop
ebaca42a41 Use a stub stdlib.h when compiling for UEFI targets
int_util.c includes stdlib.h if `_WIN32` is defined. When compiling
the UEFI targets with clang they are treated as Windows targets (e.g. if
the Rust target is x86_64-unknown-uefi, the clang target is
x86_64-unknown-windows-gnu). So stdlib.h gets included, even though we
are compilling with `-ffreestanding` and don't want stdlib.h to be
used. That file may not be present, or an incompatible version might be
installed leading to typedef redefinition errors.

The contents of stdlib.h aren't actually needed for these targets anyway
(due to `__STDC_HOSTED__` being 0), so create a minimal stdlib.h in
`build.rs` when `target_os == uefi` and add it to the include path.
2022-11-17 21:16:01 -05:00
Amanieu d'Antras
371a6856ee Merge pull request #504 from nicholasbishop/bishop-no-uefi-asm 2022-11-16 19:05:16 +00:00
Nicholas Bishop
98b3454d3d Skip assembly implementations on the UEFI targets
The UEFI targets link with `/SAFESEH`. That requires that objects have a
symbol called [`@feat.00`]. Clang adds that symbol for COFF targets if
the input is a C file, but not if the input is an ASM file. That doesn't
prevent compiler_builtins or rustc from building, but using the
resulting rustc to compile something that references one of the objects
lacking `@feat.00` will result in a linker error.

Fix by removing all the `.S` implementations when `target_os == uefi`.

[`@feat.00`]: https://learn.microsoft.com/en-us/windows/win32/debug/pe-format#the-sxdata-section
2022-11-16 13:16:42 -05:00
Luc
b90b2f8547 Fix formatting
Forgot to run cargo fmt last time...
2022-11-16 15:44:43 +01:00
Luc
294eab9520 Remove negative numbers from test 2022-11-16 15:39:13 +01:00
Luc
95c860d1bf Add Small Conformance tests to Sqrt(f) 2022-11-14 16:49:43 +01:00
Nicholas Bishop
524ca7ceb6 Remove unused no-lang-items feature 2022-11-12 12:09:06 -05:00
Amanieu d'Antras
a996f56f5a Bump to 0.1.83 2022-11-09 04:12:51 +00:00
Jules Bertholet
af5664be84 Update libm, add rint and rintf 2022-11-08 21:04:02 -05:00
Amanieu d'Antras
53dec2fc63 Bump to 0.2.6 2022-11-09 01:30:02 +00:00
Jules Bertholet
90128a1abb Add benchmarks 2022-11-07 23:43:39 -05:00
Jules Bertholet
83524d4aa2 Disable tests on PowerPC 2022-11-07 13:19:05 -05:00
Jules Bertholet
292221cf4c rint/rintf instead of roundeven/roundevenf 2022-11-07 12:54:02 -05:00
Jules Bertholet
e3efddc2c2 Add roundeven and roundevenf 2022-11-07 12:37:44 -05:00
Felix S. Klock II
2faf57c08d might as well add the link to the LLVM assembly code as well. 2022-10-25 12:32:41 -04:00
Felix S. Klock II
8266a1343b Document origins of the multiplication method being used here. 2022-10-25 11:25:14 -04:00
Amanieu d'Antras
6f53a4f074 Bump to 0.1.82 2022-10-10 19:04:06 +01:00
Ralf Jung
6267545315 invoke the unreachable intrinsic, not the stable wrapper 2022-10-10 19:34:48 +02:00
Amanieu d'Antras
2e0590c997 Fix clippy lints 2022-10-10 17:40:16 +01:00
Amanieu d'Antras
1bffeb803e Merge pull request #343 from silwol/master 2022-10-10 17:35:41 +01:00
Andrew Tribick
98e9ab973a Use wrapping_neg() to avoid fma errors on underflow 2022-09-30 14:11:15 +02:00
Amanieu d'Antras
8bc227d1fe Bump to 0.1.81 2022-09-29 03:16:50 +01:00
Lokathor
f6cd5cf806 Update macros.rs 2022-09-27 13:22:45 -06:00
Amanieu d'Antras
4c8bb40c8d Bump to 0.1.80 2022-09-20 16:20:52 +08:00
D1plo1d
1d5b952100 math: Enabled floating point intrinsics for RISCV32 microcontrollers 2022-09-17 11:47:21 -04:00
Amanieu d'Antras
83c4ff5f96 Bump to 0.1.79 2022-08-10 15:28:39 +01:00
Amanieu d'Antras
1eb4cc1977 Update libm submodule 2022-08-10 15:24:16 +01:00
Amanieu d'Antras
8b42fe77b7 Bump to 0.2.5 2022-08-10 15:23:56 +01:00
David Hoppenbrouwers
a695cf95cf Remove c32() from x86_64 memcmp
Fixes https://github.com/rust-lang/compiler-builtins/issues/487
2022-08-10 11:29:38 +02:00
Amanieu d'Antras
d0c0eb9c23 Merge pull request rust-lang/libm#267 from Amanieu/fmaf 2022-08-10 02:17:52 +02:00
Amanieu d'Antras
142261c91c Fix fmaf not to depend on FE_TOWARDZERO
Ported from upstream musl commit 4f3d346bffdf9ed2b1803653643dc31242490944

Fixes rust-lang/libm#263
2022-08-10 01:11:33 +01:00
Nicholas Bishop
abb6893a85 Enable unadjusted_on_win64 for UEFI in some cases
The conversion functions from i128/u128 to f32/f64 have the
`unadjusted_on_win64` attribute, but it is disabled starting with
LLVM14. This seems to be the correct thing to do for Win64, but for some
reason x86_64-unknown-uefi is different, despite generally using the
same ABI as Win64.
2022-08-03 19:16:03 -04:00
Amanieu d'Antras
ea2de5ae30 Merge pull request rust-lang/libm#265 from ankane/no_panic 2022-08-01 16:53:42 +02:00
Andrew Kane
fecd4045af Ensure more functions do not panic 2022-07-31 13:57:20 -07:00
Outurnate
ada0be15bf Use smaller IPIO2 table for 16 and 32 bit architectures 2022-07-31 14:37:57 -04:00
Amanieu d'Antras
8a9e33297a Bump to 0.1.78 2022-07-30 01:45:31 +01:00
Amanieu d'Antras
365558d749 Bump to 0.2.3 2022-07-30 01:43:36 +01:00
Amanieu d'Antras
b71753da80 Merge pull request #484 from Alexhuszagh/armv5te 2022-07-30 02:42:08 +02:00
Amanieu d'Antras
a81a868a59 Merge pull request #482 from ankane/gamma 2022-07-30 02:41:21 +02:00
Andrew Kane
d9cd50d32f Update libm 2022-07-29 17:34:06 -07:00
Andrew Kane
4d8d134d10 Remove panics from tgamma and tgammaf 2022-07-29 16:52:30 -07:00
Alex Huszagh
599dcc2c46 Add compiler-rt fallbacks for sync builtins on armv5te-musl. 2022-07-29 16:58:05 -05:00
Alex Huszagh
de09c87e0b Add compiler-rt fallback for __trunctfsf2 on mips64-musl. 2022-07-29 15:52:23 -05:00
Andrew Kane
89df6f6bc0 Added tgamma and tgammaf 2022-07-28 16:21:37 -07:00
Amanieu d'Antras
1913181e24 Bump to 0.1.77 2022-07-28 20:58:02 +01:00
David Hoppenbrouwers
66f22e0931 Remove branches around rep movsb/stosb
While it is measurably faster for older CPUs, removing them keeps the code
smaller and is likely more beneficial for newer CPUs.
2022-07-28 18:45:28 +02:00
David Hoppenbrouwers
04c223f0df Skip rep movsb in copy_backward if possible
There is currently no measureable performance difference in benchmarks
but it likely will make a difference in real workloads.
2022-07-28 18:32:57 +02:00