Commit graph

609 commits

Author SHA1 Message Date
Alex Crichton
33086672fa Don't build multc3 on AArch64 MSVC
Apparently it doesn't compile due to an odd compiler error! This intrinsic has
to do with complex arithmetic anyway and we shouldn't need it.
2018-07-16 16:37:57 -07:00
Alex Crichton
b727acfb3a
Merge pull request #249 from semarie/openbsd
openbsd: doesn't use `static` as it could result duplicated symbols
2018-07-16 09:01:09 -05:00
Sébastien Marie
b1b06f583a openbsd: doesn't use static as it could result duplicated symbols 2018-07-16 06:17:38 +02:00
Alex Crichton
3ae27657a1 Try to fix intrinsics example on nightly 2018-07-12 09:29:32 -07:00
Alex Crichton
f8a81455d3
Merge pull request #247 from ljedrz/outdated_feature
Remove #![feature(i128_type)] as i128 is stable
2018-07-12 10:33:05 -05:00
Alex Crichton
4f50a214f7 Try to fix example's compile on nightly 2018-07-12 08:32:39 -07:00
ljedrz
806431c947 Remove #![feature(i128_type)] as i128 is stable 2018-07-12 14:40:56 +02:00
Alex Crichton
b3ffa4f2eb Upgrade compiler-rt submodule, mostly for sanitizers 2018-07-10 13:42:41 -07:00
Alex Crichton
47670a8fb3
Merge pull request #244 from qnighy/dynamic-stack-probing
Fix segfault on probestack with dynamic alloca.
2018-05-28 11:54:19 -05:00
Masaki Hara
bf7b7b9109 Explain why we need extra check in probestack. 2018-05-28 13:29:35 +09:00
Masaki Hara
247819f3a0 Fix segfault on probestack with dynamic alloca. 2018-05-27 23:28:17 +09:00
Alex Crichton
9b661f8216
Merge pull request #242 from alexcrichton/update-compiler-rt
Update compiler-rt
2018-05-14 11:12:35 -05:00
Alex Crichton
3f8bdca10d Allow failures on thumb for now 2018-05-14 06:56:42 -07:00
Alex Crichton
87fad11100 Update compiler-rt
Pick up a PR we forgot to backport
2018-05-14 06:55:34 -07:00
Alex Crichton
abf6fa3ae1
Merge pull request #241 from semarie/openbsd
use system library on openbsd
2018-05-12 14:02:43 -05:00
Alex Crichton
5f184b9b56 More attempts for intrinsics example 2018-05-12 07:21:36 -07:00
Sébastien Marie
c207fd3869 use system library on openbsd
compiler_rt is provided by default on OpenBSD, so use it instead of
rebuilding it from source.
2018-05-12 09:40:51 +02:00
Alex Crichton
f58152286a More CI fixes 2018-05-11 16:52:34 -07:00
Alex Crichton
99d7dde58d Attempt to fix tests on latest nightly 2018-05-11 16:45:30 -07:00
Alex Crichton
6249080093
Merge pull request #234 from ketsuban/master
Add __floatdisf and __floatundisf intrinsics
2018-04-05 10:06:16 -05:00
Thomas Winwood
ed6d12ecea
Remove reference to C impl of float[un]disf 2018-04-05 15:03:44 +01:00
Alex Crichton
c4d02850d7
Merge pull request #238 from TimNN/fix-arm
Fix incorrect names used / generated on ARM
2018-03-27 15:08:06 +02:00
Tim Neumann
f83c8529e7 Fix incorrect names used / generated on ARM 2018-03-27 14:32:01 +02:00
Alex Crichton
1a3a5f7c3e
Merge pull request #236 from mark-i-m/i128
stable_features allowed temporarily
2018-03-20 20:20:14 -05:00
Mark Mansi
635855abdd stable_features allowed temporarily 2018-03-20 19:16:13 -05:00
Alex Crichton
1fc7d3b173
Merge pull request #235 from mark-i-m/i128
i128 is being stabilized
2018-03-19 09:55:54 -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
Alex Crichton
831e8ef0ce
Merge pull request #233 from paoloteti/arm-float
Add `ledf2vfp/leds2vfp`, add test cases for  `__unordsf2/__unorddf2` and re-enable thumb* targets
2018-02-26 10:49:57 -06: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
bors
66e230d331 Auto merge of #232 - paoloteti:fix-thumb-ci, r=alexcrichton
Fix CI for thumb* targets

Main fix is inside `utest` (implement Termination to avoid ICE) all the rest are minor fixes due to the new `testcrate`.

Thumb6m needs some extra fixes: some undefined reference and a panic raised removing assembly implementation not in the list.

Still allow failures on TravisCI and keep my `utest` fork for a while. Let's see if is stable.
2018-02-25 12:07:46 +00: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
bors
6764f9f562 Auto merge of #230 - paoloteti:fix-extend, r=alexcrichton
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 20:50:27 +00: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
bors
fcdae341f2 Auto merge of #229 - paoloteti:extend, r=alexcrichton
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 21:55:46 +00:00