est31
37a62269dc
u128 udiv intrinsics
2017-02-02 22:11:14 +01:00
est31
9fd610d859
Macro-ify udivmod
2017-02-02 22:03:42 +01:00
est31
a38eee9ea1
i128 shift intrinsics
2017-02-02 22:02:51 +01:00
est31
19700fb03d
i128 mul intrinsics
2017-02-02 21:36:56 +01:00
est31
8bb1010d51
int module: macro-ify trait impls and add {u,i}128 support
2017-02-02 21:36:02 +01:00
est31
b6e0dd2bf2
Add i128 to lib.rs as feature
2017-02-02 21:27:11 +01:00
Jorge Aparicio
e6bb6db8eb
fix the build
...
the unused macro_use crate lint has tightened; fix the new warnings
2017-01-26 16:17:23 -05:00
James Duley
da48de4601
mul.rs: use wrapping_mul not plain
...
rustc in debug mode with a plain multiplication will call @llvm.umul.with.overflow.* which may call the builtin resulting in infinite recursion.
2017-01-02 22:57:38 +13:00
Jorge Aparicio
acbca64291
more #[no_mangle]
2016-12-31 10:04:40 -05:00
Jorge Aparicio
3ed64e2b50
CI: use a recent nightly
...
- add #[no_mangle] to the panic_fmt lang item to adjust to changes in
the visibility algorithm
- adjust to changes in the layout of Cargo's target directory
- use a newer Xargo to reduce the build time of the sysroot (only core
is compiled as part of the sysroot now)
2016-12-31 10:04:40 -05:00
Vadzim Dambrouski
a2671118ae
Fix memset arguments for MSP430 target.
...
On MSP430 second argument to memset has i16 type instead of i32.
2016-12-19 05:31:20 +03:00
Jorge Aparicio
b8d6652035
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
6da988a43a
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
Matt Ickstadt
430c92cc9a
Use better cfg name for arm-linux tests
2016-11-12 15:52:59 -06:00
Matt Ickstadt
94c0d475bc
Use correct lib name in qc test failure
2016-11-12 15:30:57 -06:00
Matt Ickstadt
9b4553de1c
Add float quickcheck
2016-11-12 14:55:28 -06:00
Christopher Serr
53c19053e4
Fix a few clippy warnings
2016-10-16 13:53:31 +02:00
Jorge Aparicio
ab4d5e62fb
fix the powerpc64le target
...
by selecting a CPU that's compatible with the instructions that `rustc`
generates
2016-10-14 09:59:21 -05:00
Jorge Aparicio
77b5865b04
fix more warnings
2016-10-10 20:21:11 -05:00
Jorge Aparicio
3fe4f1c687
fix warnings
2016-10-10 19:45:34 -05:00
Jorge Aparicio
14c32a0369
rename to compiler_builtins, add rust-lang/rust-ish crate attributes
2016-10-10 19:05:21 -05:00
Jorge Aparicio
622a760d91
add the compiler_builtins feature to src/lib.rs
2016-10-10 16:45:24 -05:00
Jorge Aparicio
5f5c973cbe
set crate_name and crate_type in src/lib.rs
2016-10-10 16:43:38 -05:00
Jorge Aparicio
2056d001cf
use test::black_box instead of ptr::*_volatile
...
both prevent LLVM from optimizing away the intrinsics but the former
doesn't produce an `intrinsics` binary that segfaults
2016-10-07 18:26:21 -05:00
Jorge Aparicio
d05514cb20
fix unsafe warnings
2016-10-07 18:19:40 -05:00
Jorge Aparicio
a02ecc8eef
get profile.dev (-debug-assertions) + LTO working
2016-10-07 18:19:40 -05:00
Jorge Aparicio
c9e3feb5e3
insert more abort() calls where division by zero may occur
2016-10-07 18:19:40 -05:00
Jorge Aparicio
fbf1cc0b75
check that we don't have any call to panic in our implementations
2016-10-07 18:19:40 -05:00
Jorge Aparicio
9f4632c829
panic! -> abort
...
closes #79
2016-10-07 18:19:40 -05:00
Matt Ickstadt
e6bc8007dd
Implement powi_f2
2016-10-03 11:20:42 -05:00
Matt Ickstadt
ab4e4bfd71
Initial implementation of multitester
2016-10-02 14:38:40 -05:00
Jorge Aparicio
7009fd238d
Revert "Merge pull request #48 from mattico/add_float_quickcheck"
...
This reverts commit e34a6058df470e5b3d187c947ac41a294994c414, reversing
changes made to cab88e6133b0db9c6663ffd8b2f65cb35e8a9dda.
2016-09-30 19:12:17 -05:00
Matt Ickstadt
43d85fa5cb
Add Quickcheck types for float tests
2016-09-30 14:29:52 -05:00
Matt Ickstadt
ca01aa45ff
Cleanup add builtin assignments
2016-09-30 14:29:52 -05:00
Matt Ickstadt
fde45da332
Add floating point deconstruction helpers
2016-09-30 14:29:52 -05:00
Jorge Aparicio
cb9b1f82e3
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
e7c804a9b0
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
homunkulus
10146b3334
Auto merge of #73 - japaric:weak, r=japaric
...
put weak mem* symbols behind an opt-in Cargo feature
closes #64
cc #66
2016-09-22 23:59:48 +00:00
Jorge Aparicio
2dc91bd96c
put weak mem* symbols behind an opt-in Cargo feature
...
closes #64
cc #66
2016-09-22 18:02:25 -05:00
homunkulus
bc07830e09
Auto merge of #71 - japaric:aeabi-aliases, r=japaric
...
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
Jorge Aparicio
2d630eedfd
add missing aeabi aliases
2016-09-22 17:02:36 -05:00
Jorge Aparicio
bc61db2e36
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
7a56ac6bb4
armhf: don't compare our impls against gcc_s
2016-09-21 21:14:38 -05:00
Jorge Aparicio
294c6a93d8
avoid division overflow in idivmod test
2016-09-17 21:10:41 -05:00
Jorge Aparicio
656cd2b308
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
Jorge Aparicio
ae9d294297
use utility function to compare the repr of floats
...
follow up of #43
2016-08-21 11:24:58 -05:00
Jorge Aparicio
e5455d7f12
Merge pull request #49 from japaric/edge
...
qc: bias towards generation of edge cases
2016-08-21 11:03:44 -05:00
Matt Ickstadt
30428ec88f
Use mem::swap to swap variables
2016-08-20 22:30:02 -05:00
Jorge Aparicio
e4dabb8c32
qc: bias towards generation of edge cases
2016-08-20 22:17:50 -05:00
Matt Ickstadt
fe3c35131f
Implement soft float add builtins
2016-08-20 16:06:02 -05:00