Commit Graph

367 Commits

Author SHA1 Message Date
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
Jorge Aparicio 03aa2ef390 travis: Expand the `cross` linux image
rust-lang/rust#39111
2017-02-06 15:12:34 -05:00
Jorge Aparicio 6d3cab2ba0 libcompiler_builtins: Don't build emutls.c
Rather than improving the check, let's ditch emutls.c entirely.

rust-lang/rust#38877
2017-02-06 15:11:51 -05:00
Jorge Aparicio c30dcb0d30 Don't build any native compiler-builtin components for emscripten
rust-lang/rust#36339
2017-02-06 15:11:09 -05:00
Jorge Aparicio b9149051f7 Don't build gcc_personality_v0.c on NetBSD either
rust-lang/rust#39425
2017-02-06 15:10:02 -05:00
bors 9debde0ecc Auto merge of #133 - est31:i128, r=japaric
i128 intrinsics

Adds i128 intrinsics.

Note that this PR doesn't do float intrinsics, due to the missing presence of macros, those are however still required in order for rustc to switch to this crate.
2017-02-04 13:22:51 +00:00
est31 37d349015e Disable quickcheck tests on mips
Two reasons:
    * the C versions __divti3 and __modti3 are apparently broken,
      at least when used in quickcheck. They change their own arguments.
    * compiler_rt's support for mips is disabled already on clang [1].
      Its desireable to support working "cargo test" on that compiler
      as well, and not greet the tester with linker errors.

[1]: http://llvm.org/viewvc/llvm-project?view=revision&revision=224488
2017-02-04 12:23:45 +01:00