David Craven
831af41ae4
Implement __mulsi3.
2018-07-27 23:03:24 +02:00
Alex Crichton
be2f980cf6
Update libm to elide bounds checks
2018-07-25 18:11:47 -07:00
Jorge Aparicio
cfa1690e69
fix warnings
2018-07-24 16:57:22 -05:00
Jorge Aparicio
8b1e42bf2a
expose fmod{,f} symbols on thumb
...
these symbols are required for the built-in operation `f32 % f32`
2018-07-24 13:26:50 -05:00
Alex Crichton
bb88e27e3c
Use intrinsics! macro for math intrinsics
...
Make sure they respect the `mangled-names` feature as well as have the `"C"`
ABI.
2018-07-18 10:04:33 -07:00
Jorge Aparicio
f43deaa6a4
fix path
2018-07-18 11:36:24 -05:00
Jorge Aparicio
1dbcef117c
expose math symbol on wasm32-unknown-unknown
2018-07-18 11:34:20 -05:00
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
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
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
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
Tim Neumann
f83c8529e7
Fix incorrect names used / generated on ARM
2018-03-27 14:32:01 +02:00
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