Commit Graph

756 Commits

Author SHA1 Message Date
Alex Crichton 182450f20c Try to fix intrinsics example on nightly 2018-07-12 09:29:32 -07:00
Alex Crichton 8142298fe6
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 5b5b2581e4 Try to fix example's compile on nightly 2018-07-12 08:32:39 -07:00
ljedrz 411a12fc02 Remove #![feature(i128_type)] as i128 is stable 2018-07-12 14:40:56 +02:00
Alex Crichton 86bf357a14 Upgrade compiler-rt submodule, mostly for sanitizers 2018-07-10 13:42:41 -07:00
Alex Crichton 6eb8f8d710
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 1d15be6a86 Explain why we need extra check in probestack. 2018-05-28 13:29:35 +09:00
Masaki Hara 56293ad7c7 Fix segfault on probestack with dynamic alloca. 2018-05-27 23:28:17 +09:00
Alex Crichton 28daccd915
Merge pull request #242 from alexcrichton/update-compiler-rt
Update compiler-rt
2018-05-14 11:12:35 -05:00
Alex Crichton 575612347c Allow failures on thumb for now 2018-05-14 06:56:42 -07:00
Alex Crichton c1df86bb46 Update compiler-rt
Pick up a PR we forgot to backport
2018-05-14 06:55:34 -07:00
Alex Crichton 4cfd7101eb
Merge pull request #241 from semarie/openbsd
use system library on openbsd
2018-05-12 14:02:43 -05:00
Alex Crichton 5f9bbc924b More attempts for intrinsics example 2018-05-12 07:21:36 -07:00
Sébastien Marie d8bbc81016 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 e423f3c64b More CI fixes 2018-05-11 16:52:34 -07:00
Alex Crichton e73b81e2d5 Attempt to fix tests on latest nightly 2018-05-11 16:45:30 -07:00
Alex Crichton cb04a0718b
Merge pull request #234 from ketsuban/master
Add __floatdisf and __floatundisf intrinsics
2018-04-05 10:06:16 -05:00
Thomas Winwood e3dda36162
Remove reference to C impl of float[un]disf 2018-04-05 15:03:44 +01:00
Alex Crichton 2a2f6d96c8
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 5be54652e9 Fix incorrect names used / generated on ARM 2018-03-27 14:32:01 +02:00
Alex Crichton 263a703b10
Merge pull request #236 from mark-i-m/i128
stable_features allowed temporarily
2018-03-20 20:20:14 -05:00
Mark Mansi 09974df5a7 stable_features allowed temporarily 2018-03-20 19:16:13 -05:00
Alex Crichton 34f5d4aa38
Merge pull request #235 from mark-i-m/i128
i128 is being stabilized
2018-03-19 09:55:54 -05:00
Mark Mansi 29816fc5d7 Put back feature 2018-03-18 14:07:01 -05:00
Mark Mansi 0ca2a57f1b i128 is being stabilized 2018-03-17 21:37:35 -05:00
Thomas Winwood 92b259c3ad Add __floatdisf and __floatundisf intrinsics 2018-03-14 14:56:01 +00:00
Alex Crichton 8fe94f3553
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 463a127ea9 Remove ledf2vfp.S and lesf2vfp.S from build list 2018-02-25 19:49:31 +01:00
Paolo Teti 3a0a96dc00 TravisCI: remove allow_failures for thumb* targets 2018-02-25 19:23:30 +01:00
Paolo Teti 944ab5cb92 Add missing test cases for __unordsf2/__unorddf2 2018-02-25 18:35:36 +01:00
Paolo Teti 28c57e7212 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 cfecfa2918 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 9e99aa2bbe Remove no_std features
Everything default unconditionally to #![no_std].
2018-02-25 09:19:34 +01:00
Paolo Teti 7b81af044e Keep mangled-names as a default feature 2018-02-25 01:11:49 +01:00
Paolo Teti 86612733be testcrate/lib.rs: use #![no_std] unconditionally 2018-02-25 00:22:39 +01:00
Paolo Teti 8289e626fe Use upstream for utest
Fix has been merged into upstream.
2018-02-24 22:48:27 +01:00
Paolo Teti 7f92a8ee7b 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 280012b1df 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 266ea0740a 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 7c11f5c018 Merge branch 'llvm-60' 2018-02-12 10:57:11 -08:00
Paolo Teti 2467bd2cbf Update Progress list
Already implemented, but not marked as done.
2018-02-12 18:23:55 +01:00
Paolo Teti e7bf03019c 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 e15ab79173 Set -mfloat-abi=hard not only for thumb targets 2018-02-11 21:23:59 +01:00
bors 63de7c62c1 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 2cb290afa3 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 306764b091 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 2801c99793 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
Paolo Teti 45f924ece5 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
bors 3e7fba7669 Auto merge of #228 - paoloteti:eabihf, r=alexcrichton
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-05 05:18:36 +00:00
Paolo Teti 13db8bf436 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