Commit Graph

589 Commits

Author SHA1 Message Date
Mark Mansi
635855abdd stable_features allowed temporarily 2018-03-20 19:16:13 -05:00
Mark Mansi
b90fa1e14f Put back feature 2018-03-18 14:07:01 -05:00
Mark Mansi
f0f2db7490 i128 is being stabilized 2018-03-17 21:37:35 -05:00
Thomas Winwood
09d201db35 Add __floatdisf and __floatundisf intrinsics 2018-03-14 14:56:01 +00:00
Paolo Teti
ad3a5b6826 Remove ledf2vfp.S and lesf2vfp.S from build list 2018-02-25 19:49:31 +01:00
Paolo Teti
9fbdac0e38 TravisCI: remove allow_failures for thumb* targets 2018-02-25 19:23:30 +01:00
Paolo Teti
6fedebb166 Add missing test cases for __unordsf2/__unorddf2 2018-02-25 18:35:36 +01:00
Paolo Teti
20de84d127 Add __ledf2vfp and __lesf2vfp
Now that `73884ae` is in some nightly release We can add ledf2vfp/leds2vfp
and so these two functions be aliased to aeabi_fcmple/aeabi_dcmple on soft-float targets.
2018-02-25 17:50:56 +01:00
Paolo Teti
d7799358e4 Remove no_std features
Everything default unconditionally to #![no_std].
2018-02-25 09:19:34 +01:00
Paolo Teti
81356ccde4 Keep mangled-names as a default feature 2018-02-25 01:11:49 +01:00
Paolo Teti
ef48c1984b testcrate/lib.rs: use #![no_std] unconditionally 2018-02-25 00:22:39 +01:00
Paolo Teti
e319f042fd Use upstream for utest
Fix has been merged into upstream.
2018-02-24 22:48:27 +01:00
Paolo Teti
64ea229988 Fix CI for thumb* targets
Main fix is inside 'utest' all the rest are minor fixes due to the
new 'testcrate'.

Still allow failures on TravisCI for a while.
2018-02-18 18:15:57 +01:00
Paolo Teti
63b78c86d9 Fix thumbv6m build (feature=c)
1. Avoid undefined references as:
   undefined reference to `__modsi3'
   undefined reference to `__umodsi3'

2. We can't remove assembly implementations that are not in the list
2018-02-16 17:34:01 +01:00
bors
3ef457499c Auto merge of #231 - paoloteti:vfp, r=alexcrichton
Collection of VFP intrinsics

Nothing really exciting here, just a list of trivial VFP intrinsics.

First of all set  `mfloat-abi=hard` not only for thumb targets, then add support for the following intrinsics:

```
 __gesf2vfp
 __gedf2vfp
 __gtsf2vfp
 __gtdf2vfp
 __ltsf2vfp
 __ltdf2vfp
 __nesf2vfp
 __nedf2vfp
 __eqsf2vfp
 __eqdf2vfp
 __extendsfdf2vfp
```
Resulting implementation is really trivial thanks to native code generated by LLVM on hard-float targets
2018-02-12 18:57:43 +00:00
Alex Crichton
ed1e8401ad Merge branch 'llvm-60' 2018-02-12 10:57:11 -08:00
Paolo Teti
347871f7ec Update Progress list
Already implemented, but not marked as done.
2018-02-12 18:23:55 +01:00
Paolo Teti
b2aea631fe Collection of VFP intrinsics
Nothing really exciting here. LLVM on hard-float target use native instructions
for all listed VFP intrinsics and so resulting implementation is really trivial.

Implemented intrinsics:

 __gesf2vfp
 __gedf2vfp
 __gtsf2vfp
 __gtdf2vfp
 __ltsf2vfp
 __ltdf2vfp
 __nesf2vfp
 __nedf2vfp
 __eqsf2vfp
 __eqdf2vfp
 __extendsfdf2vfp
2018-02-11 23:46:56 +01:00
Paolo Teti
4e1ff92946 Set -mfloat-abi=hard not only for thumb targets 2018-02-11 21:23:59 +01:00
Paolo Teti
f70ccac08e Fix __subsf3 and __subdf3 on x86
Be sure to do not mix hard-float and soft-float calls.
Disassembled code show exactly this.
So replace add with an explicit call to __addsf3/__adddf3

This seems the root cause of some sporadic failures.
2018-02-09 20:35:55 +01:00
Paolo Teti
178b78b924 Fix issue extending f32::MIN/MAX to f64 and improve testcrate.
I was able to trigger an issue extending f32::MAX or f32::MIN to a f64.
Issue was not triggered by `testcrate` mainly because f32::MAX/MIN are
not in the list of special values to generate.

This PR fix the issue and improve `testcrate` adding MAX/MIN/MIN_POSITIVE
in the list of special values.
2018-02-09 17:23:16 +01:00
Paolo Teti
0af69177f9 Add generic conversion from a narrower to a wider FP type
Add `extend` module to implement conversion from a narrower to a wider
floating-point type.

This implementation is only intended to support *widening* operations.
Module to convert a *narrower* floating-point will be added in the future.
2018-02-08 18:20:45 +01:00
Paolo Teti
97e6b3712a Add support for sub*f3vfp and add*f3vfp
As done before for mul and div let's use extern "C" to generate `"aapcs"`
or `"aapcs-vfp"` depending on target configuration.
2018-02-04 18:34:31 +01:00
Paolo Teti
07c82d2200 Fix __aeabi_fcmple and add test cases
`le` in __aeabi_fcmple means `less or equal`
2018-02-04 10:56:02 +01:00
Alex Crichton
41290fe728 Simplify how testing is done
All tests are moved to a separate crate in this repository to enable features by
default. Additionally the test generation is moved to a seprate build script and
simplified to reduce the amount of boilerplate needed per test.

Overall this should still be testing everything, just in a different location!
2018-01-31 11:32:20 -08:00
Alex Crichton
4d0ea26a26 Allow thumb failures
They've been broken for some time anyway
2018-01-31 07:26:44 -08:00
Paolo Teti
4c7de1e315 Fix build errors on arm*-linux-gnueabi
I removed std::mem, but We need it.
2018-01-30 23:10:56 +01:00
Paolo Teti
cc3ea0ab93 Add test cases for Mul[s/d]f3vfp and Div[s/d]f3vfp
for ARM targets only
2018-01-30 20:15:37 +01:00
Paolo Teti
2986291965 __[mul/div]sf3vfp and __[mul/div]df3vfp only on ARM 2018-01-30 18:48:20 +01:00
Paolo Teti
9a4e458b48 Add support for mul[s/d]f3vfp and div[s/d]f3vfp
Here using `"C"` the compiler will use `"aapcs"` or `"aapcs-vfp"`
depending on target configuration.

Of course this translates in a call to `__aeabi_fdiv` / `__aeabi_fmul`
on non-HF targets.

On `eabi` targets with +vfpv2/vfpv3 LLVM generate:

   vmov	s0, r1
   vmov	s2, r0
   vdiv.f32	s0, s2, s0
   vmov	r0, s0
   bx	lr

On `eabihf` targets with +vfpv3-d16/d32/f32 +fp-only-sp LLVM generate:

  vdiv.f32	s0, s0, s1
  bx	lr

That's exactly what We need for [div/mul][s/d]f3vfp.S
2018-01-29 20:49:55 +01:00
Alex Crichton
ffd4f4d43d Update to release_60 of LLVM's compiler-rt 2018-01-24 21:49:11 -08:00
Alex Crichton
b751493472 Fix some typos/bugs with float comparison intrinsics
* I believe `__gtdf2` erroneously used `f32` instead of `f64`
* Most of these needed `#[arm_aeabi_alias]` to ensure they're correctly called
  through the alias
* Some existing aliases were corrected with the right names
2018-01-24 17:01:04 -08:00
Paolo Teti
c68621f444 Fix build issue and comments
Fix an unclosed if block
2018-01-19 19:27:25 +01:00
Paolo Teti
2754f64c18 Skip aeabi_cdcmp and aeabi_cfcmp on big-endian targets
First of all aeabi_cdcmp and aeabi_cfcmp are never called LLVM.
Second are little-endian only, so build fail on big-endian targets.
Temporally workaround: exclude these files for big-endian targets.
2018-01-19 09:19:05 +01:00
whitequark
746c4717e1 comparesf2: do not build the assembly versions of intrinsics on ARM. 2018-01-12 21:33:24 +00:00
whitequark
566e7ede90 comparesf2/comparedf2: fix a signedness bug and add tests. 2017-12-29 07:58:34 +00:00
whitequark
45112fc65f README: update to explain how to run quickcheck-style tests. 2017-12-29 06:36:09 +00:00
whitequark
a0777758df comparesf2/comparedf2: do not build the C versions of intrinsics. 2017-12-29 06:16:35 +00:00
whitequark
fee371a365 comparesf2/comparedf2: use i32 instead of bool for return type.
Note that this changes semantics:
    pub extern "C" fn __eqsf2(a: f32, b: f32) -> bool {
        cmp(a, b).to_le_abi() != 0
    }

is not the same as

    pub extern "C" fn __eqsf2(a: f32, b: f32) -> i32 {
        cmp(a, b).to_le_abi()
    }

However, compiler-rt does the latter, so this is actually
an improvement.
2017-12-29 06:14:51 +00:00
whitequark
24175dd6ca Implement comparesf2/comparedf2 intrinsics. 2017-12-28 03:45:32 +00:00
whitequark
c329f6ef75 comparesf2/comparedf2 are called on soft-float targets.
E.g. take a look at the assembly output for:

  pub fn comparesf2(a: f32, b: f32) -> bool { a > b }
  pub fn comparedf2(a: f64, b: f64) -> bool { a > b }

which will include calls to __gtsf2 and __gtdf2.
2017-12-28 02:57:42 +00:00
bors
5634754f1e Auto merge of #220 - malbarbo:armv4t, r=alexcrichton
Use kernel user helpers for armv4t

Rename armv5te cfg to kernel_user_helpers and enable it for armv4t.
2017-12-26 20:21:11 +00:00
Alex Crichton
dbaa47027e Work around japaric/xargo#186 temporarily 2017-12-26 12:20:17 -08:00
Alex Crichton
4481a6c4ab Disable incremental + LTO
This causes errors in more recent versions of rustc
2017-12-26 10:14:11 -08:00
Marco A L Barbosa
90bd768b20 Use kernel user helpers for armv4t
Rename armv5te cfg to kernel_user_helpers and enable it for armv4t
2017-12-26 13:02:05 -02:00
Amanieu d'Antras
af91189aa7 Fix argument order for __sync_val_compare_and_swap 2017-12-23 08:45:25 +01:00
Amanieu d'Antras
dd2e94ae5b Replace inline asm with function calls in __kuser_cmpxchg and __kuser_memory_barrier 2017-12-20 01:57:05 +00:00
Alex Crichton
19a725d772 Fix nightly CI
Currently we're getting lots of errors about duplicate lang items so deal with
this by `#[cfg_attr]`'ing off the lang item attribute in tests.
2017-12-08 08:19:28 -08:00
bors
be3b817149 Auto merge of #212 - tamird:fomit-frame-pointer-not-supported-arm, r=alexcrichton
Avoid warning spew

...when the compiler doesn't support '-fomit-frame-pointer' on the
target architecture.
2017-11-28 17:31:37 +00:00
Tamir Duberstein
fe9bd52cc1
Avoid warning spew
...when the compiler doesn't support '-fomit-frame-pointer' on the
target architecture.
2017-11-27 17:41:54 -05:00
Jan Teske
dd0be67665 Remove mulsf3.c and muldf3.c from compiler-rt.
mulsf3 and muldf3 have Rust implementations since 8970485. Remove the
C implementations to avoid conflicts.
2017-11-26 21:53:57 +01:00
Scott McMurray
f468c28f74 Another attempt at making MIPS happy
(I really don't understand how arithmetic makes it segfault...)
2017-11-25 07:00:26 -08:00
Scott McMurray
ba376a3912 Autogenerate the add/sub tests 2017-11-25 06:25:19 -08:00
Scott McMurray
51a0396d2a Make them all pub 2017-11-25 05:53:53 -08:00
Scott McMurray
a35d63583f Tweak addo & subo to try and fix MIPS 2017-11-25 05:26:24 -08:00
Scott McMurray
ff97668431 Implement all the 128-bit operator lang items from rust PR 46093 2017-11-25 04:21:05 -08:00
Alex Crichton
7115a910c8 Remove divsf3.c from compiler-rt
We implement this now!
2017-11-19 09:08:27 -08:00
Dan Gohman
3bd28c8b6d Add "volatile" and "memory" clobber to asm! that doesn't fall through.
Use the "volatile" option and the "memory" clobber on inline asm that does
things like return directly, to reduce the chances of compilers rearranging
the code.
2017-11-15 12:49:10 -08:00
Oliver Geller
99ea83e095 Implement divsf3 and divdf3 2017-11-13 20:22:27 -05:00
Oliver Geller
5923e278c3 Implement mulsf3 and muldf3 2017-11-08 17:36:34 -05:00
Alex Crichton
a46f33ce48 Work around OSX on Travis 2017-11-02 11:14:05 -07:00
Alex Crichton
4fc3de624a Prepare this crate for more wasm32 compatibility
This commit prepares the build script for a wasm32 target that doesn't use
Emcripten, notably forcing the `mem` feature to get activated and forcibly
ignoring the `c` feature, even if activated, for the wasm32 target.
2017-11-01 19:29:41 -07:00
Jorge Aparicio
0601024adf drop binfmt_misc dependency
Instead use the Cargo runner feature. The binfmt_misc approach requires running a privileged
container for setup. Not all docker setups support privileged containers so the test suite should be
more accessible with this change as no privileged container is needed.
2017-10-07 22:19:37 +02:00
Amanieu d'Antras
c95fefa9f6 Add atomic support for pre-ARMv6 on Linux 2017-10-05 12:44:12 +01:00
Alex Crichton
d43287ac57 Update target specs 2017-10-03 02:28:49 -07:00
est31
c582a5c118 Partially revert a272d753f5c75ab9acb7b282765a3c7517caac25
This partially reverts commit "Convert float_to_int! into a function"
2017-09-29 02:20:27 +02:00
est31
aef124cc75 Partially revert 482d98318fc1bfd003942c9de4ee1c7e8a0c45f0
This partially reverts "Convert int_to_float! to a function".
2017-09-29 02:19:40 +02:00
Alex Crichton
832c7758f9 Ignore failing test on mips 2017-09-22 21:31:27 -07:00
Alex Crichton
46dab7688f Update to the cc dependency 2017-09-22 21:30:12 -07:00
Alex Crichton
0a260ce265 Disable empty intrinsics on i686-apple-darwin
These all currently just produce empty object files
2017-09-17 15:25:34 -07:00
bors
c75798725a Auto merge of #194 - mattico:i386, r=alexcrichton
Implement x86 chkstk in "rust"

cc #183

Basically the same as the x86_64 ones, except `__alloca` doesn't need to fix the parameter register. I've manually verified that the disassembly is the same, and that these work in a compiled rust program.

The second commit disables compiling probestack functions for `feature = mangled-names`. They aren't needed during testing because they aren't comparison tested and the unmangled versions are the ones that actually get used.

r? @alexcrichton
2017-09-16 02:58:04 +00:00
Matt Ickstadt
81fe6a9654 Don't compile probestack functions during testing 2017-09-15 18:13:06 -05:00
Matt Ickstadt
1f98921e44 Implement x86 chkstk in "rust" 2017-09-15 18:04:59 -05:00
Alex Crichton
259327c25b Update MinGW download location 2017-09-15 15:59:15 -07:00
bors
215a08d624 Auto merge of #192 - est31:master, r=alexcrichton
Refactor float implementation

Refactors the float implementation. Fixes #169. Parts of the PR were inspired a previous PR by @mattico .
2017-09-14 17:27:43 +00:00
est31
5ce08df93e Remove duplication by adding a macro 2017-09-14 17:39:25 +02:00
est31
f2794913f3 Convert add! to a function 2017-09-14 17:33:44 +02:00
est31
13477e488f Convert int_to_float! to a function 2017-09-14 16:32:50 +02:00
est31
f1bab6229d Convert float_to_int! into a function 2017-09-14 14:59:32 +02:00
bors
a0c42b746c Auto merge of #189 - tamird:update-comment-rustbuild, r=alexcrichton
Update rustbuild commentary

r? @nikomatsakis

This is the reason that https://github.com/rust-lang/rust/pull/44509 doesn't work - the `rustbuild` feature _is_ actually used, it was just incorrectly documented here and I missed it.
2017-09-14 00:46:30 +00:00
est31
6f19051513 Don't use the Wrapping wrapper in float addition
Inspired by a patch by mattico.
2017-09-14 02:08:28 +02:00
est31
57a3b2fe48 Don't use a macro for pow calculation 2017-09-14 01:59:02 +02:00
est31
3b5d6d7aa9 Extend the Float trait by some constants and supertraits 2017-09-14 01:57:52 +02:00
est31
515ea7157a Use the newly added ONE constant in float addition 2017-09-14 00:10:16 +02:00
est31
cec214f0d7 Introduce a float_impl! macro to avoid duplication 2017-09-13 22:44:56 +02:00
est31
218eafcc68 Refactor float builtins to use associated consts 2017-09-13 22:09:52 +02:00
est31
985e578acd Refactor int builtins to use associated consts 2017-09-13 22:09:31 +02:00
Tamir Duberstein
0b2a017b94
Update rustbuild commentary
Also use `cfg!(feature = "rustbuild")` instead of the environment
variable to ease grep-ability.
2017-09-12 20:54:32 -04:00
Tamir Duberstein
ffd4e7639f
Remove unused rustbuild feature
I can't tell if this was ever used, but it's not used today.
2017-09-10 09:30:47 -04:00
est31
465ba28996 Update the gcc crate to 0.3.53 and disable compilation warnings
They are inside the compiler-rt submodule, about which we don't have
direct control over.
2017-09-07 07:49:34 +02:00
Geoff Yoerger
21c82e419d Fix README relative link. 2017-08-21 16:17:04 -05:00
Tim Neumann
e377364051 Avoid memcpy references in unoptimized code 2017-07-22 23:10:30 +02:00
Oliver Middleton
45a7693962 Don't include custom chkstk on MSVC
MSVC includes its own __chkstk so these aren't used.
2017-07-12 22:40:49 +01:00
Alex Crichton
2fa53c4b67 Don't mangle probes all the time 2017-07-07 20:35:14 -07:00
Alex Crichton
f4e92e379c Tweak definition of probestack functions
It looks like the old `__rust_probestack` routine is incompatible with newer
linux kernels. My best guess for this is that the kernel's auto-growth logic is
failing to trigger, causing what looks like a legitimate segfault to get
delivered. My best guess for why *that's* happening is that the faulting address
is below `%rsp`, whereas previously all faulting stack addresses were above
`%rsp`. The probestack routine does not modify `%rsp` as it's probing the stack,
and presumably newer kernels are interpreting this as a legitimate violation.

This commit tweaks the probestack routine to instead update `%rsp` incrementally
as probing happens. The ABI of the function, however, requires that `%rsp`
isn't changed as part of the function so it's restored at the end to the
previous value.
2017-07-07 10:16:03 -07:00
Alex Crichton
f771aac37a Add __rust_probestack intrinsic
Will be required for rust-lang/rust#42816
2017-07-06 06:58:32 -07:00
Alex Crichton
79b55c48ca Fix unused imports on iOS 2017-07-03 19:11:34 -07:00
Alex Crichton
a32ae6d6b6 Fix a typo in the build script 2017-07-03 15:28:03 -07:00
Alex Crichton
ebcf7fac6a Compile ffsdi2 with rustbuild feature
This is not used by LLVM/Rust, but is apparently used by gcc/C which jemalloc
can require at least.
2017-07-03 15:00:51 -07:00
Alex Crichton
e48cd1180b Use the Rust implementation of udivsi3 on ARM
Although compiler-rt presumably has a more optimized implementation written in
assembly, it appears buggy for whatever reason, causing #173.

For now let's see if integration into rust-lang/rust will work with the
Rust-defined implementation!
2017-07-03 09:48:11 -07:00
Alex Crichton
9a6cfe4844 Merge pull request #172 from alexcrichton/update-compielr-rt
Update compiler-rt submodule
2017-07-01 07:49:17 -07:00
Alex Crichton
37538e8c2a Update compiler-rt submodule
Needed to pull in some recent changes with rust-lang/rust
2017-07-01 00:31:53 -07:00
Jorge Aparicio
b9d6291682 no aeabi_mem* symbols on iOS, weak symbols on thumb, normal symbols elsewhere 2017-06-30 18:06:25 -05:00
Jorge Aparicio
f096e02f63 optimize 32-bit aligned mem{cpy,clr,set} intrinsics for ARM
this reduces the execution time of all these routines by 40-70%
2017-06-29 22:40:58 -05:00
Jorge Aparicio
326c0bb597 enable tests now that #150 has been fixed 2017-06-27 22:48:57 -05:00
Alex Crichton
6792390e3e Enable the intrinsics program on thumb 2017-06-25 10:09:50 -07:00
Alex Crichton
0e404583e8 Address review comments 2017-06-24 21:51:34 -07:00
Alex Crichton
f9db3c5b32 Don't test mangled names on thumb
We are both the "real compiler-rt" and the "to be tested one".
2017-06-24 12:54:35 -07:00
Alex Crichton
60028c1d9d Enable 128-bit integer tests on Windows
Closes #158
2017-06-24 12:23:28 -07:00
Alex Crichton
e7008c8609 Don't check for references to panics with debug assertions 2017-06-24 11:44:50 -07:00
Alex Crichton
e8964fc7dd Don't build gcc_personality_v0 2017-06-24 11:36:05 -07:00
Alex Crichton
3eff54a4ee Don't generate unmangled aeabi with gen-tests
The symbols they delgate to also don't exist...
2017-06-24 11:34:10 -07:00
Alex Crichton
90dab55cb0 Don't try to work with cargo test 2017-06-24 10:22:49 -07:00
Alex Crichton
cf1419e538 Add a FIXME for Windows 2017-06-24 10:12:17 -07:00
Alex Crichton
cec593c2aa Tweak testing and such:
* Don't run `intrinsics` tests on thumb
* Disable `compiler_builtins` attribute on `feature = "gen-tests"`
* Disable mangling on `feature = "gen-tests"` instead of `cfg(test)`
2017-06-24 10:10:04 -07:00
Alex Crichton
4dfb2c5f09 Fix appveyor PATH 2017-06-23 21:38:55 -07:00
Alex Crichton
1614443a68 Try to fix run.sh on AppVeyor 2017-06-23 21:36:36 -07:00
Alex Crichton
c785055bd9 Remove usage of unwrap_or_else 2017-06-23 21:31:54 -07:00
Alex Crichton
80112d198d Use the same CI script on AppVeyor 2017-06-23 21:23:52 -07:00
Alex Crichton
d5279752b0 Don't derive Debug for Sign 2017-06-23 21:11:31 -07:00
Alex Crichton
d3e78c5f6f Don't compile assembly on x86_64 Windows
They've all got the wrong ABI...
2017-06-23 21:09:24 -07:00
Alex Crichton
bbaf9fd85a Don't build chkstk on x86_64 2017-06-23 20:43:51 -07:00
Alex Crichton
af944595d0 Try testing MinGW targets 2017-06-23 20:35:25 -07:00
Alex Crichton
4bb783da70 Remove the travis cache 2017-06-23 20:20:42 -07:00
Alex Crichton
e8efe11f71 Shore up docs in the macros module 2017-06-23 16:28:50 -07:00
Alex Crichton
6db18f6536 Handle aeabi aliasing
Objects in compiler-rt may have two symbols, so this makes sure that we don't
bring in those objects by accident by defining the aliases ourselves.
2017-06-23 15:55:11 -07:00
Alex Crichton
78b290b61c Deal with floatdidf on x86_64
Apparently LLVM will lower this down to just an instruction
2017-06-23 13:28:24 -07:00
Alex Crichton
f091d05904 Tweak usage of C shims on MSVC 2017-06-23 12:03:33 -07:00
Alex Crichton
4dbe3aaf2d Use nm to weed out panics 2017-06-23 11:52:22 -07:00
Alex Crichton
11d3cffd30 Remove unused rust file 2017-06-23 11:21:36 -07:00
Alex Crichton
0e5562c38d Remove executable bit on arm.rs 2017-06-23 11:21:15 -07:00
Alex Crichton
d20a774a4a Remove defined intrinsics from build.rs
No need to load these from C!
2017-06-23 11:14:50 -07:00
Alex Crichton
bf2f5b5808 Convert float intrinsics to the intrinsics! macro 2017-06-23 11:05:25 -07:00
Alex Crichton
c53d1c7b7d Remove executable bit from conv.rs 2017-06-23 10:44:59 -07:00
Alex Crichton
e8d550ee51 Less verbose output on symbol check 2017-06-23 10:44:29 -07:00
Alex Crichton
e798d1bf81 Enable mem for intrinsics on linux 2017-06-23 09:59:49 -07:00
Alex Crichton
b6a4de6be5 Fix features needed for the intrinsics example 2017-06-23 08:35:24 -07:00
Alex Crichton
43bb211be8 Fix travis intrinsics builds 2017-06-23 08:19:11 -07:00
Alex Crichton
57b8dd1812 Fix use_c_shim_if 2017-06-23 07:54:31 -07:00
Alex Crichton
5a36c4b54b Use more intrinsics on msvc 2017-06-23 07:53:34 -07:00
Alex Crichton
b6497f5283 Build tweaks 2017-06-23 07:36:08 -07:00
Alex Crichton
48c4569e91 Build the intrinsics example separately 2017-06-23 07:01:18 -07:00
Alex Crichton
0aead6b3d8 Require the compiler-builtins target for the example 2017-06-23 06:58:05 -07:00
Alex Crichton
1740b0b0f5 More windows linkage guesses 2017-06-23 06:53:09 -07:00
Alex Crichton
e892808fdd Test 64-bit linux 2017-06-22 23:44:27 -07:00
Alex Crichton
107cbd36a0 Try to fix linkage on windows 2017-06-22 23:41:28 -07:00
Alex Crichton
0d1138fad3 Fix the abi hack on windows 2017-06-22 23:36:50 -07:00
Alex Crichton
dd059dd1fc Port udiv to the intrinsics! macro 2017-06-22 23:23:36 -07:00
Alex Crichton
e80da4a48a Port sdiv to traits + intrinsics!
Enhance `intrinsics!` along the way!
2017-06-22 23:09:28 -07:00
Alex Crichton
285a69b29c Port mul intrinsics to traits
Also add a few features to the `intrinsics!` macro
2017-06-22 22:36:37 -07:00