Commit Graph

707 Commits

Author SHA1 Message Date
Jorge Aparicio
74eedd0f17 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
0869e5b93a remove arm tests from the old test suite 2017-04-10 16:35:08 -05:00
Jorge Aparicio
62091bb124 test float/conv.rs 2017-04-10 16:12:49 -05:00
Jorge Aparicio
af0d6847d7 no_std compatible tester 2017-04-10 14:38:17 -05:00
Jorge Aparicio
447ebe4f91 rustfmt 2017-04-10 11:29:31 -05:00
Jorge Aparicio
dfc1a7d814 move the compiler-rt submodule to the root 2017-04-10 11:23:03 -05:00
Jorge Aparicio
5b2585403d remove unused Cargo subprojects 2017-04-10 11:22:17 -05:00
Jorge Aparicio
199c7a8dcb 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
05a5f4681f remove the current test suite 2017-04-10 11:14:05 -05:00
Jorge Aparicio
8316333dc6 move compiler-rt submodule 2017-04-10 11:11:23 -05:00
bors
95a216c6bf 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
07064c2239 test out of range condition using f64
to avoid imprecision due to rounding to f32
2017-04-08 10:18:19 -05:00
bors
995cfa7646 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
0ef737f557 fix debug assertion in modsi3 / moddi3
fixes #151
this fix is very similar to #149
2017-03-13 20:40:44 -05:00
bors
42c4a1e5f2 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
74c6b91677 fix debug assertion in divdi3
fixes #148
2017-03-06 17:46:11 -05:00
bors
25854dd325 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
0ecfe751b5 fix quickcheck tests
the check! macro syntax has changed
2017-03-06 12:17:41 -05:00
Jorge Aparicio
1f26fea5d4 refactor 'impl Int' 2017-03-06 12:17:10 -05:00
Wilfried Chauveau
77889226f7 exclude from tests values out of integer range (and NaN). 2017-03-06 11:56:52 -05:00
Wilfried Chauveau
ef3de28eaf implement float/double to (u)int conversion. 2017-03-06 11:56:52 -05:00
Wilfried Chauveau
b3e33508a0 impl (unsigned/signed) int to single/double precision float conversion based on llvm algorithms. 2017-03-06 11:55:57 -05:00
Jorge Aparicio
cd96f53050 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
b8d9b0bd31 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
f96c8b8250 make the gcc crate optional
it's only required when the "c" feature is enabled
2017-02-19 15:49:59 -05:00
bors
c11fbdc6a0 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
9916fa670c implement float subtraction
as a + (-b)
2017-02-08 10:10:40 -05:00
bors
87e46fe27d 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
0dfe91f7cf adjust the check! macro to accept AAPCS intrinsics 2017-02-07 23:07:51 -05:00
Jorge Aparicio
57deccf6de 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
3a4e6ce2f4 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
f6c885a34c 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
c261f82cab target.contains -> target_os == 2017-02-06 15:16:16 -05:00
Jorge Aparicio
ee172768d2 std: Remove unused objects from compiler-builtins
rust-lang/rust#38623
2017-02-06 15:13:40 -05:00
Jorge Aparicio
263f16a81b travis: Expand the cross linux image
rust-lang/rust#39111
2017-02-06 15:12:34 -05:00
Jorge Aparicio
bdb136a50e 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
2c7368702b Don't build any native compiler-builtin components for emscripten
rust-lang/rust#36339
2017-02-06 15:11:09 -05:00
Jorge Aparicio
a13d0e2b13 Don't build gcc_personality_v0.c on NetBSD either
rust-lang/rust#39425
2017-02-06 15:10:02 -05:00
bors
e1fb75d02e 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
70bda6dd1c 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
bors
87244c0ab7 Auto merge of #138 - rust-lang-nursery:cdylib-rebuild, r=japaric
add rebuild logic to compiler-rt-cdylib

fixes #136
2017-02-04 01:01:26 +00:00
Jorge Aparicio
48ef4907b3 add rebuild logic to compiler-rt-cdylib
fixes #136
2017-02-03 20:00:24 -05:00
est31
a01ee168c4 Panic when invalid overflow value is returned 2017-02-04 01:39:19 +01:00
est31
f15bf972bd Add quickcheck tests 2017-02-03 23:46:15 +01:00
est31
aeda7382d7 Add newly implemented intrinsics to test file 2017-02-03 01:51:46 +01:00
est31
b1561fc195 u128 sdiv intrinsics 2017-02-02 22:13:28 +01:00
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