Commit Graph

28 Commits (fd69beba295595e1ba5f70a893835ba4d187d716)

Author SHA1 Message Date
Jorge Aparicio fd69beba29 get profile.dev (-debug-assertions) + LTO working 2016-10-07 18:19:40 -05:00
Jorge Aparicio f77ca915c4 add an opt-in cargo feature to build intrinsics from compiler-rt source
closes #63
cc #66
2016-09-29 16:06:24 -05:00
Alex Crichton 8e161a791a Expand and refactor teting infrastructure
This commit moves over most of the testing infrastructure to in-tree docker
images that are all dispatched to from Travis (no other test configuration).
This allows versioning modifications to the test infrastructure as well as the
code itself. Additionally separate docker images allows for easy modification of
one without worrying about tampering of others as well as easy addition of new
targets by simply adding a new `Dockerfile`.

Additionally this commit bundles the master version of the `compiler-rt` source
repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt
library itself is compiled as a `cdylib` which is then dynamically located at
runtime and we look for symbols in. There's a few hoops here, but they currently
get the job done.

All tests now execute against both gcc_s and compiler-rt, and this
testing strategy is now all hidden behind a macro as well (refactoring
all existing tests along the way).
2016-09-28 22:09:55 -07:00
Jorge Aparicio b7fa7d3a59 put weak mem* symbols behind an opt-in Cargo feature
closes #64
cc #66
2016-09-22 18:02:25 -05:00
Jorge Aparicio 384c48ce9b don't test always against gcc_s
instead test half of the time against gcc_s and the other half test
against the native operation (\*).

(\*) Not all the targets have available a native version of the
intrinsics under test. On those targets we'll end up testing our
implementation against itself half of the time. This is not much of a
problem because we do several quickcheck runs per intrinsic.
2016-09-21 21:38:06 -05:00
Jorge Aparicio 9493c37455 test our implementations against gcc_s
if it exposes the same intrinsics that we implement -- gcc_s doesn't
implement all the intrinsics for all the architectures.

closes #65
2016-09-16 15:53:14 -05:00
Matt Ickstadt ef16de3d37 Implement soft float add builtins 2016-08-20 16:06:02 -05:00
Matt Ickstadt 6f0d50ebea Move integer functions to separate module 2016-08-20 15:55:06 -05:00
Jorge Aparicio 8603e64554 Merge pull request #44 from Amanieu/sdiv
Add signed division functions
2016-08-19 09:16:53 -05:00
Amanieu d'Antras f919660be5 Add signed division functions 2016-08-19 12:13:02 +01:00
Matt Ickstadt b6091ababa Add x86_64 builtins 2016-08-16 19:55:17 -05:00
Jorge Aparicio ac352a3512 add core_intrinsics feature gate 2016-08-15 21:08:04 -05:00
Jorge Aparicio 55eb1b71a0 remove unused feature gates 2016-08-14 22:08:36 -05:00
Jorge Aparicio 8965b061c2 use rlibc crate instead 2016-08-14 22:03:19 -05:00
Jorge Aparicio fdbb7883da exclude windows and macos 2016-08-14 22:01:15 -05:00
Jorge Aparicio 265939fc00 add weak `memcpy` et al symbols
closes #28
2016-08-14 22:00:31 -05:00
Jorge Aparicio 69376af183 quickcheck: better generation of input arguments
closes #31
2016-08-13 16:58:44 -05:00
Amanieu d'Antras acceaa95f1 Various changes 2016-08-13 09:56:40 +01:00
Amanieu d'Antras 0a0a8f37c9 Remove the absv implementation, it isn't needed by Rust 2016-08-13 09:54:58 +01:00
Jorge Aparicio 3ff25d956a put div intrinsics in their own module + some docs 2016-08-11 01:26:27 -05:00
Jorge Aparicio a84579d3c1 refactor: use Int traits, words -> U64, fmt 2016-08-11 01:15:51 -05:00
Jorge Aparicio a2fc4da7a5 move return into if branches 2016-08-11 00:33:27 -05:00
Jorge Aparicio 0915e15c9a *mut T -> Option<&mut T> 2016-08-11 00:31:49 -05:00
Jorge Aparicio cc9d3e8e5f port __udivmodsi4, aeabi_uidivmod and udivsi3
also rewrite these last two new aeabi intrinsics as naked functions
2016-08-11 00:26:16 -05:00
Jorge Aparicio 950564607d port udivmoddi4 and __aeabi_uldivmod 2016-08-11 00:26:12 -05:00
Amanieu d'Antras 8a94b69d85 Add traits for integer operations 2016-08-11 05:38:11 +01:00
Amanieu d'Antras 065aaa9144 Remove the x86-specific floating-point builtins 2016-08-08 08:36:59 +01:00
Jorge Aparicio 1faf15fc64 initial commit 2016-08-07 15:58:21 -05:00