Commit Graph

473 Commits

Author SHA1 Message Date
Jorge Aparicio 19b2efdf36 move intrinsics test from src/bin to examples
with this change the libc crate is not required when calling `cargo build -p
compiler-builtins`
2017-04-11 17:09:05 -05:00
Jorge Aparicio 7b98ecebfd Merge pull request #155 from rust-lang-nursery/utest
no-std friendly test suite
2017-04-11 16:27:56 -05:00
Jorge Aparicio 44e5a1aa4c fix cfg syntax 2017-04-11 15:36:42 -05:00
Jorge Aparicio c52f9a079f ignore i128 tests on windows
see #158
2017-04-11 15:08:52 -05:00
Jorge Aparicio 63f91a0c31 Revert "i128 test: transmute intrinsic output before comparing"
This reverts commit 46085a2313.
2017-04-11 15:03:21 -05:00
Jorge Aparicio 30b8b431c2 powershell -> cmd.exe 2017-04-11 14:53:19 -05:00
Jorge Aparicio 46085a2313 i128 test: transmute intrinsic output before comparing
on Windows, these intrinsics return a U64x2 type because of ABI requirements
2017-04-11 14:47:23 -05:00
Jorge Aparicio aa553fe113 appveyor: make the host x86_64 when testing the i686 target 2017-04-11 14:28:31 -05:00
Jorge Aparicio a373683964 adapt the thumb target specs to upstream linker-flavor changes 2017-04-11 11:32:44 -05:00
Jorge Aparicio 33b17fd87b ignore i128 div / mul tests on MIPS
there's an unfixed bug. See #137
2017-04-11 11:24:33 -05:00
Jorge Aparicio adb4e5c86f s/feature/features/g 2017-04-10 20:10:45 -05:00
Jorge Aparicio d2bf0f97e1 travis: don't reinstall rustup
travis now installs rust using rustup
2017-04-10 18:00:16 -05:00
Jorge Aparicio 181139a35e .travis.yml: thumbs target have been renamed 2017-04-10 17:59:45 -05:00
Jorge Aparicio ebbf8d5a29 appveyor: cargo test requires the gen-tests feature 2017-04-10 17:46:33 -05:00
Jorge Aparicio 55294baf7a put test generation behind a Cargo feature
to reduce build time for the most common case of not running tests
2017-04-10 17:27:25 -05:00
Jorge Aparicio 3f723d1141 modify the CI setup to run tests on the thumb targets 2017-04-10 17:16:13 -05:00
Jorge Aparicio 3fa223505a make float* intrinsics testable on thumb
there are no intrinsics for float equality atm, so transmute to an integer
before comparing
2017-04-10 17:13:07 -05:00
Jorge Aparicio d34c51f74a remove arm tests from the old test suite 2017-04-10 16:35:08 -05:00
Jorge Aparicio 9e2c2b6447 test float/conv.rs 2017-04-10 16:12:49 -05:00
Jorge Aparicio b8e8c7f693 no_std compatible tester 2017-04-10 14:38:17 -05:00
Jorge Aparicio a88ea4011b rustfmt 2017-04-10 11:29:31 -05:00
Jorge Aparicio bce5fb5a6e move the compiler-rt submodule to the root 2017-04-10 11:23:03 -05:00
Jorge Aparicio bd9c835f44 remove unused Cargo subprojects 2017-04-10 11:22:17 -05:00
Jorge Aparicio dbcec72ca1 refactor build.rs to not depend on rustc-cfg
it now uses the CARGO_CFG_TARGET variables provided by Cargo
2017-04-10 11:19:16 -05:00
Jorge Aparicio cc0d8ba2d1 remove the current test suite 2017-04-10 11:14:05 -05:00
Jorge Aparicio d40b3b3c52 move compiler-rt submodule 2017-04-10 11:11:23 -05:00
bors 28ac4908f8 Auto merge of #147 - rust-lang-nursery:conv, r=japaric
Conversion from&to float<->integer

this is a rebased version of #139

cc @ithinuel
2017-04-08 15:20:35 +00:00
Jorge Aparicio 109c33ed0a test out of range condition using f64
to avoid imprecision due to rounding to f32
2017-04-08 10:18:19 -05:00
bors 09145e6bda Auto merge of #152 - rust-lang-nursery:gh151, r=alexcrichton
fix debug assertion in modsi3 / moddi3

fixes #151
this fix is very similar to #149

r? @alexcrichton
2017-04-07 18:43:21 +00:00
Jorge Aparicio 2faec6a4fb fix debug assertion in modsi3 / moddi3
fixes #151
this fix is very similar to #149
2017-03-13 20:40:44 -05:00
bors 9681358dc5 Auto merge of #149 - rust-lang-nursery:gh148, r=alexcrichton
fix debug assertion in divdi3

fixes #148

r? @alexcrichton
2017-03-07 00:38:33 +00:00
Jorge Aparicio c93b32b3e5 fix debug assertion in divdi3
fixes #148
2017-03-06 17:46:11 -05:00
bors 8bd620f3e8 Auto merge of #146 - rust-lang-nursery:gh145, r=alexcrichton
fix infinite recursion in divmoddi4 / mulodi4

on ARMv7-M processors, divmoddi4 was calling mulodi4 and mulodi4 was calling
divmoddi4 leading to infinite recursion. This commit breaks the cycle by using
wrapping multiplication in divmoddi4.

fixes #145

r? @alexcrichton
2017-03-06 17:35:26 +00:00
Jorge Aparicio 4c556dc9e7 fix quickcheck tests
the check! macro syntax has changed
2017-03-06 12:17:41 -05:00
Jorge Aparicio c6e06f4157 refactor 'impl Int' 2017-03-06 12:17:10 -05:00
Wilfried Chauveau 09d2f2f1f5 exclude from tests values out of integer range (and NaN). 2017-03-06 11:56:52 -05:00
Wilfried Chauveau d96102d270 implement float/double to (u)int conversion. 2017-03-06 11:56:52 -05:00
Wilfried Chauveau 293fef5ebe impl (unsigned/signed) int to single/double precision float conversion based on llvm algorithms. 2017-03-06 11:55:57 -05:00
Jorge Aparicio 644a1c9ac9 fix infinite recursion in divmoddi4 / mulodi4
on ARMv7-M processors, divmoddi4 was calling mulodi4 and mulodi4 was calling
divmoddi4 leading to infinite recursion. This commit breaks the cycle by using
wrapping multiplication in divmoddi4.

fixes #145
2017-03-06 10:38:19 -05:00
bors 0507842b24 Auto merge of #143 - rust-lang-nursery:no-gcc, r=alexcrichton
make the gcc crate optional

it's only required when the "c" feature is enabled

r? @alexcrichton
2017-02-21 16:25:47 +00:00
Jorge Aparicio a2e6591be9 make the gcc crate optional
it's only required when the "c" feature is enabled
2017-02-19 15:49:59 -05:00
bors 1550b0d32f Auto merge of #142 - rust-lang-nursery:sub, r=alexcrichton
implement float subtraction

as a + (-b)

r? @alexcrichton
2017-02-08 16:11:15 +00:00
Jorge Aparicio 5bb969d8f5 implement float subtraction
as a + (-b)
2017-02-08 10:10:40 -05:00
bors 9aa3a257d6 Auto merge of #141 - rust-lang-nursery:aapcs, r=alexcrichton
use AAPCS calling convention on all aeabi intrinsics

also, on ARM, inline(always) the actual implementation of the intrinsics so we
end with code like this:

```
00000000 <__aeabi_dadd>:
    (implementation here)
```

instead of "trampolines" like this:

```
00000000 <__aeabi_dadd>:
    (shuffle registers)
    (call __adddf3)

00000000 <__adddf3>:
    (implementation here)
```

closes #116

cc #66
r? @alexcrichton
cc @mattico
2017-02-08 04:09:14 +00:00
Jorge Aparicio 47b45d1d62 adjust the check! macro to accept AAPCS intrinsics 2017-02-07 23:07:51 -05:00
Jorge Aparicio 57085be2ea ARM: keep some non-aeabi symbols around
- multi3: there's no aeabi equivalent
- divmod{s,d}i4: these are directly called by __aeabi_{l,i}divmod
- add{s,d}f3: required by the C sub{s,d}f3 implementation

but make sure they also use the AAPCS calling convention
2017-02-07 14:28:02 -05:00
Jorge Aparicio dfa7b161aa use AAPCS calling convention on all aeabi intrinsics
also, on ARM, inline(always) the actual implementation of the intrinsics so we
end with code like this:

```
00000000 <__aeabi_dadd>:
    (implementation here)
```

instead of "trampolines" like this:

```
00000000 <__aeabi_dadd>:
    (shuffle registers)
    (call __adddf3)

00000000 <__adddf3>:
    (implementation here)
```

closes #116
2017-02-07 09:41:26 -05:00
bors 3e8aa49cdf Auto merge of #140 - rust-lang-nursery:backports, r=alexcrichton
backport rust-lang/rust changes

this mainly removes a bunch of unused intrinsics

r? @alexcrichton
2017-02-06 20:19:30 +00:00
Jorge Aparicio f7bd48ee94 target.contains -> target_os == 2017-02-06 15:16:16 -05:00
Jorge Aparicio 7cac9625b5 std: Remove unused objects from compiler-builtins
rust-lang/rust#38623
2017-02-06 15:13:40 -05:00