Commit Graph

678 Commits

Author SHA1 Message Date
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
bors 0d0f22a996 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 c08b1692a6 add rebuild logic to compiler-rt-cdylib
fixes #136
2017-02-03 20:00:24 -05:00
est31 f8a4e3fd70 Panic when invalid overflow value is returned 2017-02-04 01:39:19 +01:00
est31 b78e956f08 Add quickcheck tests 2017-02-03 23:46:15 +01:00
est31 417b07b821 Add newly implemented intrinsics to test file 2017-02-03 01:51:46 +01:00
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 8fe50d813c Macro-ify udivmod 2017-02-02 22:03:42 +01:00
est31 1e27c3f937 i128 shift intrinsics 2017-02-02 22:02:51 +01:00
est31 3055aa21b6 i128 mul intrinsics 2017-02-02 21:36:56 +01:00
est31 b356429374 int module: macro-ify trait impls and add {u,i}128 support 2017-02-02 21:36:02 +01:00
est31 a2e2ec1a18 Add i128 to lib.rs as feature 2017-02-02 21:27:11 +01:00
bors 631b5687b2 Auto merge of #135 - rust-lang-nursery:unused-macro-use, r=japaric
fix the build

the unused macro_use crate lint has tightened; fix the new warnings
2017-01-27 01:23:36 +00: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
bors 764557f0b6 Auto merge of #132 - parched:master, r=japaric
mul.rs: use wrapping_mul to avoid infinite recursion

rustc in debug mode with a plain multiplication will call @llvm.umul.with.overflow.* which may call the builtin resulting in infinite recursion.

Fixes #127.

Cc @nezza this should be the fix you can try. Note I made this patch in github's web Ui so it's completely untested.
2017-01-02 16:41:18 +00:00
James Duley ee0aacf4be 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
bors 0fd5e7549f Auto merge of #131 - japaric:rustup, r=alexcrichton
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)

r? @alexcrichton
2016-12-31 18:42:35 +00:00
Jorge Aparicio 53da94d74f more #[no_mangle] 2016-12-31 10:04:40 -05:00
Jorge Aparicio 3992ed1e7a 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
bors 2d64b2df58 Auto merge of #130 - japaric:rustc-cfg-up, r=alexcrichton
bump rustc-cfg dependency to v0.3.0

the older no longer works with recent nightlies as target_family
disappeared from `rustc --print cfg`'s output
2016-12-31 03:01:27 +00:00
Jorge Aparicio 826839fedb bump rustc-cfg dependency to v0.3.0
the older no longer works with recent nightlies as target_family
disappeared from `rustc --print cfg`'s output
2016-12-30 21:56:29 -05:00
bors 501d93ffe0 Auto merge of #129 - pftbest:memset, r=japaric
Fix memset arguments for MSP430 target.

On MSP430 second argument to memset has `i16` type instead of `i32`.
2016-12-19 02:34:22 +00:00
Vadzim Dambrouski 9897bfb8a9 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
bors 568df8fad4 Auto merge of #128 - japaric:mem, r=alexcrichton
add implementations of memcpy et al

behind the "mem" Cargo feature, which used to be named "weak"

fixes #126

Possible solution to #126
r? @alexcrichton
2016-12-18 17:51:05 +00: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
bors 70009a311c Auto merge of #124 - japaric:rustbuild, r=alexcrichton
by default, mark this crate as the #![compiler_builtins] crate

as this is how most users will want to use this crate

r? @alexcrichton
2016-12-13 00:02:56 +00:00
Jorge Aparicio b59c789a05 fix appveyor 2016-12-11 16:54:41 -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
bors 386683c91f Auto merge of #125 - japaric:fix-thumb, r=japaric
fix the test suite for the thumb targets
2016-12-11 20:49:57 +00:00
Jorge Aparicio 6c4647ef11 don't set SSL_CERT_FILE for OSX 2016-12-11 15:26:18 -05:00
Jorge Aparicio c9155e3c36 work around rust-lang/cargo#3340 2016-12-11 14:58:05 -05:00
Jorge Aparicio c19d6764f3 pin all the targets to nightly-2016-12-05 2016-12-11 11:33:21 -05:00
Jorge Aparicio c1ef69f2a0 fix the test suite for the thumb targets 2016-12-11 11:18:48 -05:00
Alex Crichton 8bb7795459 Merge pull request #120 from japaric/xargo-up
CI: use Xargo 0.2.x
2016-11-23 22:41:12 -06:00
Jorge Aparicio 5c0e0f2070 CI: use Xargo 0.2.x
this version uses the rust-src component that rustup installs instead
of fetching the source tarball from static.r-l.o, which sometimes went
wrong due to the fallible logic that Xargo 0.1.x used
2016-11-23 12:47:42 -05:00
Alex Crichton fbf5195afb Merge pull request #119 from alexcrichton/hidden
Define VISIBILITY_HIDDEN when compiling objects
2016-11-21 09:27:34 -06:00
Alex Crichton 24d49071e5 Define VISIBILITY_HIDDEN when compiling objects
Apparently compiler-rt passed this and we just forgot to. Fixes visibility of
some symbols on 32-bit Linux.
2016-11-18 09:40:20 -08:00
Alex Crichton 40637abb5a Merge pull request #118 from japaric/compiler-rt-up
update the compiler-rt submodule
2016-11-17 09:46:16 -06:00
Jorge Aparicio 837a5ac487 update the compiler-rt submodule
to pick up the fixes for rust-lang/rust#37559 and rust-lang/rust#37630
2016-11-16 14:34:26 -05:00