Commit Graph

2049 Commits

Author SHA1 Message Date
Josh Triplett
b9da06f662 Fix typo in instruction name: s/cwp/swp/ 2021-04-30 12:15:32 -07:00
George Burgess IV
5edaec6c97 add support for building outlined aarch64 intrinsics
llvm/llvm-project@a4ac434c47 saw the
addition of out-of-line aarch64 atomic intrinsics. LLVM will sometimes
emit these, so we need to ensure they're included in Rust's compiler-rt.
2021-04-30 12:15:32 -07:00
Amanieu d'Antras
61b2242af9 Fix CI on latest nightly 2021-04-30 19:15:53 +01:00
Amanieu d'Antras
189b987a25 Revert "Disable AArch64 FP-to-int tests"
This reverts commit 9e76b9115fa9571501d378b6329ce557266908b7.
2021-04-23 18:54:12 +01:00
Amanieu d'Antras
79916f0ac8 Bump to 0.1.40 2021-04-11 20:56:38 +01:00
Amanieu d'Antras
22a1874e5d Merge pull request #414 from Amanieu/global_asm
Mark global_asm! code with .att_syntax
2021-04-11 14:51:56 +01:00
Amanieu d'Antras
68df0eb817 Mark global_asm! code with .att_syntax
global_asm! will soon change to use Intel syntax by default.
2021-04-10 19:19:21 +01:00
bjorn3
5dd043525a Fix typo 2021-04-10 16:03:19 +02:00
Scott Mabin
8c4127d044 Add #[linkage = "weak"] attribute to all mem instrinics. 2021-04-04 19:15:33 +01:00
messense
6cd2f3ae40 Add compiler-rt fallbacks on mips64-musl 2021-04-03 11:20:09 +08:00
Amanieu d'Antras
c31c2e0556 Merge pull request #397 from AaronKutch/float_refactor 2021-04-02 23:36:28 +01:00
Aaron Kutch
500c8e0b2c add clippy to CI 2021-04-02 16:53:09 -05:00
Amanieu d'Antras
2608f8392c Replace llvm_asm! with asm! 2021-04-02 20:43:11 +01:00
Aaron Kutch
5221cef1fc Remove rand dependency, update rand_xoshiro 2021-04-02 09:35:01 -05:00
Aaron Kutch
9ae3728e5e fix CTFE cycle 2021-04-02 09:24:00 -05:00
Aaron Kutch
1cf47804df Fix all clippy warnings 2021-04-02 08:58:50 -05:00
Aaron Kutch
1d9d761e9f Fix panic-handler documentation
rust-lang/rust#51647 is fixed but panic-handler is still needed
2021-04-02 08:58:50 -05:00
Aaron Kutch
94af8a8268 Delete redundant tests
The old tests were hacky and did not cover nearly as many cases as the new tests do.
2021-04-02 08:58:50 -05:00
Aaron Kutch
3871282eee fix powi 2021-04-02 08:58:50 -05:00
Aaron Kutch
96a6110d69 add remaining floating point tests 2021-04-02 08:58:50 -05:00
Aaron Kutch
ec4fc5dab5 refactor float conversion 2021-04-02 08:58:50 -05:00
Aaron Kutch
0ce47b3c1f fix abs_diff bug 2021-04-02 08:57:25 -05:00
Amanieu d'Antras
bffd24076b Merge pull request #406 from bjorn3/less_rust_intrinsics
Remove unused __rust_* shift intrinsics
2021-04-02 12:59:26 +01:00
Amanieu d'Antras
ef3f53dbb5 Merge pull request #404 from est31/master
Use the newly stabilized BITS constant on the integer types
2021-04-02 12:56:39 +01:00
Amanieu d'Antras
880ec8bb83 Disable AArch64 FP-to-int tests
This is a temporary workaround for https://github.com/rust-lang/rust/issues/83467
2021-04-02 12:36:57 +01:00
Philipp Schuster
9ba75196bd add "readme"-key to Cargo.toml in order for this crate to have a preview on crates.io 2021-03-28 12:24:08 +02:00
bjorn3
c75621f12c Remove unused __rust_* shift intrinsics
They are rust specific and used by neither cg_llvm nor cg_clif
2021-02-21 11:36:47 +01:00
est31
57205c0b86 Use the newly stabilized BITS constant on the integer types 2021-02-05 23:40:17 +01:00
Amanieu d'Antras
80fb6752fa Bump to 0.1.39 2021-01-06 23:39:48 +00:00
Aaron Kutch
e5b667554e Remove count_ones (#399) 2021-01-04 09:17:44 -06:00
Amanieu d'Antras
f0a9f9e3e1 Bump to 0.1.38 2020-12-12 12:11:21 +00:00
Yuki Okushi
7645c0b869 Use the AT&T syntax to support old LLVM on rust-lang/rust 2020-12-11 22:23:00 +09:00
Amanieu d'Antras
176ae46ff8 Bump to 0.1.37 2020-12-09 12:17:29 +00:00
Aaron Kutch
69a3c571f7 Completely overhaul fuzz testing
adds testing for almost every numerical intrinsic
2020-12-08 11:42:28 -06:00
Aaron Kutch
f61c411e2b fix some clippy warnings 2020-12-07 23:26:26 -06:00
Aaron Kutch
26681724f3 replace some transmutes 2020-12-07 23:26:25 -06:00
Aaron Kutch
cb4e9755b8 Remove WideInt 2020-12-07 23:26:13 -06:00
Aaron Kutch
fac884b0c4 Completely replace LargeInt 2020-12-07 23:20:39 -06:00
Aaron Kutch
d5b7e2b6d3 Overhaul overflowing multiplication impls 2020-12-07 23:20:39 -06:00
Aaron Kutch
e049a30964 Introduce the DInt and HInt traits
and add various methods that will be used for improved fuzzing
2020-11-27 23:38:30 -06:00
Aaron Kutch
ea7feb2e0f Remove aapcs_on_arm mistake 2020-11-27 23:38:30 -06:00
Aaron Kutch
a7548bea0d fix division on SPARC (#393) 2020-11-23 09:05:02 -06:00
Alex Crichton
82bee10b5b Update CI to fix on GitHub Actions (#394)
Should hopefully fix the master branch...
2020-11-20 10:29:35 -06:00
Joseph Richey
5c294cedc0 Move from an "asm" flag to a "no-asm" feature flag (#386)
* Use a no-asm feature instead of an asm feature

This works better as core/alloc/std have trouble supporting default
featues in this crate.

Signed-off-by: Joe Richey <joerichey@google.com>

* Have no-asm disable arm assembly intrinsics

Signed-off-by: Joe Richey <joerichey@google.com>
2020-11-09 09:24:25 -06:00
Joseph Richey
53daa3c593 Use REP MOVSB/STOSB when the ERMSB feature is present (#392)
* Reorganize mem functions

This reduces the amount of platform-specific code

Signed-off-by: Joe Richey <joerichey@google.com>

* Use ERMSB implementations if the feature is set

Signed-off-by: Joe Richey <joerichey@google.com>

* Add non-aligned benchmarks

Signed-off-by: Joe Richey <joerichey@google.com>
2020-11-03 08:57:08 -06:00
Robert Jördens
a97fe5f1d3 math: add {fmin,fmax}{f,} for thumb*-none-eabi* (#389)
These are exposed in core::f32

close #354 
c.f. rust-lang/rust#62729
Patch from @whitequark (https://paste.debian.net/1168430/)
2020-10-26 11:37:02 -05:00
Joseph Richey
34e35d74b6 Use REP MOVSQ/STOSQ on x86_64 (#365)
* mem: Move mem* functions to separate directory

Signed-off-by: Joe Richey <joerichey@google.com>

* memcpy: Create separate memcpy.rs file

Signed-off-by: Joe Richey <joerichey@google.com>

* benches: Add benchmarks for mem* functions

This allows comparing the "normal" implementations to the
implementations provided by this crate.

Signed-off-by: Joe Richey <joerichey@google.com>

* mem: Add REP MOVSB/STOSB implementations

The assembly generated seems correct:
    https://rust.godbolt.org/z/GGnec8

Signed-off-by: Joe Richey <joerichey@google.com>

* mem: Add documentations for REP string insturctions

Signed-off-by: Joe Richey <joerichey@google.com>

* Use quad-word rep string instructions

Signed-off-by: Joe Richey <joerichey@google.com>

* Prevent panic when compiled in debug mode

Signed-off-by: Joe Richey <joerichey@google.com>

* Add tests for mem* functions

Signed-off-by: Joe Richey <joerichey@google.com>

* Add build/test with the "asm" feature

Signed-off-by: Joe Richey <joerichey@google.com>

* Add byte length to Bencher

Signed-off-by: Joe Richey <joerichey@google.com>
2020-10-24 10:58:04 -05:00
pca006132
f9bf5fee78 Use weak linkage for aeabi memory functions (#385) 2020-10-14 11:10:38 -05:00
Aaron Kutch
d2a2525035 Hide macros and functions
These macros and functions are only in the public interface for testing purposes or because of `#[macro_export]` pollution
2020-10-02 23:26:12 -05:00
Aaron Kutch
756a9dea00 Construct signed division functions differently 2020-10-02 22:55:31 -05:00