Commit Graph

748 Commits

Author SHA1 Message Date
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
Alex Crichton
2d8f137801
Merge pull request #227 from paoloteti/softfloat
Fix __aeabi_fcmple and add test cases
2018-02-04 08:25:47 -06:00
Paolo Teti
73884ae671 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
1129b62ca2
Merge pull request #226 from alexcrichton/refactor-tests
Simplify how testing is done
2018-01-31 14:22:51 -06:00
Alex Crichton
2a13475197 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
032424971d Allow thumb failures
They've been broken for some time anyway
2018-01-31 07:26:44 -08:00
Alex Crichton
93977e65a0
Merge pull request #225 from paoloteti/armhf
Add support for mul[s/d]f3vfp and div[s/d]f3vfp
2018-01-31 09:25:51 -06:00
Paolo Teti
1269ad1438 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
9e04723812 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