est31
9013dbef02
u128 sdiv intrinsics
2017-02-02 22:13:28 +01:00
est31
2f3c534cfe
u128 udiv intrinsics
2017-02-02 22:11:14 +01:00
est31
3055aa21b6
i128 mul intrinsics
2017-02-02 21:36:56 +01:00
est31
a2e2ec1a18
Add i128 to lib.rs as feature
2017-02-02 21:27:11 +01:00
Jorge Aparicio
b6f059d627
fix the build
...
the unused macro_use crate lint has tightened; fix the new warnings
2017-01-26 16:17:23 -05:00
Jorge Aparicio
a1caa7ccac
add implementations of memcpy et al
...
behind the "mem" Cargo feature, which used to be named "weak"
fixes #126
2016-12-17 23:06:37 -05:00
Jorge Aparicio
3484b2b68e
by default, mark this crate as the #![compiler_builtins] crate
...
as this is how most users will want to use this crate
2016-12-11 16:18:43 -05:00
Jorge Aparicio
e05caa1227
fix warnings
2016-10-10 19:45:34 -05:00
Jorge Aparicio
8f0847eb94
rename to compiler_builtins, add rust-lang/rust-ish crate attributes
2016-10-10 19:05:21 -05:00
Jorge Aparicio
24c0247c6a
add the compiler_builtins feature to src/lib.rs
2016-10-10 16:45:24 -05:00
Jorge Aparicio
d2a3c45a29
set crate_name and crate_type in src/lib.rs
2016-10-10 16:43:38 -05:00
Jorge Aparicio
c82403551d
fix unsafe warnings
2016-10-07 18:19:40 -05:00
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