Commit graph

1303 commits

Author SHA1 Message Date
Trevor Gross
f82e1f14fc Rework the test crate to separate individual tests
Currently, tests of the same kind are grouped together across all types
into a single function. This makes it difficult to understand exactly
what failed in CI.

Change test macros to create separate functions for separate types so
failures are more fine grained.
2024-05-18 04:37:55 -04:00
Amanieu d'Antras
f8b72ede7e
Merge pull request #606 from tgross35/f16-f128-intrinsics-min
Add addition, subtraction, multiplication, and compare operations for `f128`
2024-05-16 16:08:10 +02:00
Trevor Gross
a82491ed54 Correct f128 extend and truncate symbol names on powerpc
PowerPC uses `kf` instead of `tf`:
<https://gcc.gnu.org/wiki/Ieee128PowerPC>
2024-05-15 07:19:17 -05:00
Trevor Gross
aaa5260748 Implement f128 comparison 2024-05-15 07:19:17 -05:00
Trevor Gross
191c1b88cd Implement f128 multiplication 2024-05-15 07:19:17 -05:00
Trevor Gross
2755f457f8 Implement f128 addition and subtraction 2024-05-15 07:19:17 -05:00
Trevor Gross
4509315d2f Enable no-fail-fast for more usable test output 2024-05-15 07:19:17 -05:00
Trevor Gross
1be6626307 Refactor float test macros to have a fallback
Change float test macros to fall back to testing against `rustc_apfloat`
when system implementations are not available, rather than just skipping
tests.

This allows for easier debugging where operations may not be supported.
2024-05-15 07:19:17 -05:00
Trevor Gross
23b91f2b58 Add i256 and u256 bigint types 2024-05-15 07:19:17 -05:00
Trevor Gross
10689247bc Split Int into Int and MinInt
`MinInt` contains the basic methods that are only needed by integers
involved in widening operations, i.e. big integers. `Int` retains all
other operations and convenience methods.
2024-05-15 07:19:17 -05:00
Amanieu d'Antras
0da9e16bef
Merge pull request #609 from theKidOfArcrania/master
Fix paths for Windows arm64 build
2024-05-15 10:33:39 +02:00
theKidOfArcrania
0ccdd076ae Merge branch 'master' of https://github.com/rust-lang/compiler-builtins 2024-05-14 15:50:50 -07:00
theKidOfArcrania
4c35dc3b1e Remove aarch64 CI 2024-05-14 15:47:07 -07:00
theKidOfArcrania
8c27bcb11a Maybe try arm64 2024-05-13 11:38:43 -07:00
theKidOfArcrania
6ef61fd85a Update target 2024-05-13 11:31:23 -07:00
theKidOfArcrania
4edceece66 Add aarch64 target 2024-05-13 11:29:55 -07:00
theKidOfArcrania
a5779e5d37 Fix paths for Windows arm64 build 2024-05-13 11:17:07 -07:00
Amanieu d'Antras
bc5de48bbe
Merge pull request #608 from Amanieu/release-0.1.112
Release 0.1.112
2024-05-11 10:11:02 +02:00
Amanieu d'Antras
f16e62159b Release 0.1.112 2024-05-11 10:05:33 +02:00
Amanieu d'Antras
4647d5d3c1
Merge pull request #603 from tgross35/ci-deny-warnings
Deny warnings in CI and add check-cfg directives
2024-05-11 09:59:55 +02:00
Trevor Gross
f52b4a268f Remove the undocumented and unused rustbuild feature
See
<https://github.com/rust-lang/compiler-builtins/pull/603#discussion_r1590747361>
2024-05-11 09:56:55 +02:00
Trevor Gross
54d96150b5 Update cfg to fix warnings 2024-05-11 09:56:55 +02:00
Trevor Gross
286944e479 Emit directives for cargo-check-cfg 2024-05-11 09:56:55 +02:00
Trevor Gross
ccfe0e3808 Deny warnings in CI
There are currently a lot of warnings printed in CI, mostly dead code.
Update CI to deny warnings.
2024-05-11 09:56:55 +02:00
Amanieu d'Antras
e30a71cc24
Merge pull request #605 from nicholasbishop/bishop-i686-uefi
Enable chkstk/alloca intrinsics on i686-unknown-uefi
2024-05-09 16:28:48 +02:00
Nicholas Bishop
e4e03883ed Enable chkstk/alloca intrinsics on i686-unknown-uefi 2024-05-08 21:47:12 -04:00
Amanieu d'Antras
4781f0d75f
Merge pull request #602 from Amanieu/release-0.1.111
Release version 0.1.111
2024-05-04 21:00:53 +02:00
Amanieu d'Antras
2faef31e96 Release version 0.1.111 2024-05-04 19:57:27 +01:00
Amanieu d'Antras
52b85a1968
Merge pull request #601 from Patryk27/fix_avr_floats
fix: Add `#[avr_skip]` for `__addsf3` & `__adddf3`
2024-05-04 19:53:36 +02:00
Patryk Wychowaniec
461682bd91 fix: Add #[avr_skip] for __addsf3 & __adddf3
It looks like I've forgotten about them [back in 2023](https://github.com/rust-lang/compiler-builtins/pull/527).
2024-05-04 19:50:22 +02:00
Amanieu d'Antras
1ea3044bdf
Merge pull request #600 from Amanieu/release-0.1.110
Release version 0.1.110
2024-05-04 16:35:15 +02:00
Amanieu d'Antras
060391b020 Release version 0.1.110 2024-05-04 15:31:14 +01:00
Amanieu d'Antras
1af94b21ad
Merge pull request #599 from Enselic/update-ref
Update reference to rustc-std-workspace-core
2024-05-04 16:11:12 +02:00
Martin Nordholts
8c0c504d4f Update reference to rustc-std-workspace-core 2024-05-04 14:56:01 +02:00
Amanieu d'Antras
55f590fe3b
Merge pull request #598 from Amjad50/remove_weak-intrinsics
Apply `weak` attributes to all intrinsics
2024-05-03 13:30:21 +02:00
Amjad Alsharafi
ce8a0c346d Cleanup manged-names macro
Don't generate the whole function if we are not going to use `no_mangle`, there is no point
2024-05-03 13:27:03 +02:00
Amjad Alsharafi
e232a79146 Remove unneeded weak for optimized-c function
`weak` is only used with `no_mangle`
2024-05-03 13:27:03 +02:00
Amjad Alsharafi
2e096145c3 Apply weak attributes to all intrinsics
Removed the `weak-intrinsics` feature, so that all functions
will have the `weak` linkage attribute.

Also this fixed the bug in
https://github.com/rust-lang/rust/issues/124042.

Before this commit, generated code will be
```rust
pub extern "C" fn <name>(...) -> ... {
        // code...
}
pub mod <name> {
    #[linkage = "weak"]
    #[no_mangle]
    pub extern "C" fn <name>(...) -> ... {
        super::<name>(...)
    }
}
```

The issue is that there is 2 `weak` linkage, the first one is not required.
Along refactoring `weak` attributes, this was fixed.
2024-05-03 13:27:03 +02:00
Amanieu d'Antras
5daaeeaebc
Merge pull request #593 from beetrees/fix-f16-conv-c
Add builtins for `f16`/`f128` float conversions
2024-05-02 13:53:15 +02:00
beetrees
229babb1d0 Add builtins for f16/f128 float conversions 2024-05-02 13:49:24 +02:00
Chris Denton
0b4ddb1738
Merge pull request #594 from Amjad50/fix_libm_weak_link
Fix math libraries not being linked on some platforms
2024-04-30 21:32:48 +00:00
Amjad Alsharafi
656106f050 Updated libm to fix clippy warning 2024-04-30 23:28:43 +02:00
Amjad Alsharafi
f761f03822 Fix clippy warnings in math
The solution is not pretty, but not sure why we still get clippy
warning from one of the files in `libm` even though we use
`allow(clippy::all)`
2024-04-30 23:28:43 +02:00
Amjad Alsharafi
2ce9bc0cc1 Fix math libraries not being linked on some platforms
This is a continuation/fix of 018616e. In that commit, we made it add
the math functions to all platforms (except apple-targets and windows),
and use `weak` linking, so that it can be used if the system doesn't
have those functions.

Didn't notice `mod math` was behind another set of `cfg`, so removed it
as well here.
2024-04-30 23:28:43 +02:00
Amanieu d'Antras
6c10d7f035
Merge pull request #597 from beetrees/i128-readme
Update status of 128-bit integers in README.md
2024-04-29 12:10:20 +02:00
beetrees
a2587f7b02
Update status of 128-bit integers in README.md 2024-04-28 17:41:35 +01:00
Amanieu d'Antras
c9b8b33a5c
Merge pull request #591 from tgross35/testing-updates
Add a way to test more targets on non-linux machines
2024-04-19 18:05:23 +02:00
Trevor Gross
1b679e5cee Apply some more fixes suggested by Shellcheck 2024-04-19 11:49:23 -04:00
Trevor Gross
a55604fd8c Add a way to run tests on non-linux machines
Allow using the `rust-lang/rust:nightly` docker image to run tests in
cases where the host rust and cargo cannot be used, such as non-linux
hosts.
2024-04-19 11:49:23 -04:00
Amanieu d'Antras
f8002a4861
Merge pull request #592 from tgross35/lse-gating
Add a fix for aarch64-darwin and enable it in CI
2024-04-17 02:30:30 +02:00