Commit graph

57 commits

Author SHA1 Message Date
est31
aef124cc75 Partially revert 482d98318fc1bfd003942c9de4ee1c7e8a0c45f0
This partially reverts "Convert int_to_float! to a function".
2017-09-29 02:19:40 +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
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
Tim Neumann
e377364051 Avoid memcpy references in unoptimized code 2017-07-22 23:10:30 +02:00
Alex Crichton
2fa53c4b67 Don't mangle probes all the time 2017-07-07 20:35:14 -07:00
Alex Crichton
c785055bd9 Remove usage of unwrap_or_else 2017-06-23 21:31:54 -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
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
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
Jorge Aparicio
1b379a495d remove unused macros
to fix warnings
2017-06-01 07:40:50 -05:00
est31
7e5af82760 Add i128 <-> float conversion functions 2017-05-06 02:22:54 +02:00
est31
3254005570 Rename float conversion macros to something nicer 2017-05-05 23:31:41 +02:00
Jorge Aparicio
af0d6847d7 no_std compatible tester 2017-04-10 14:38:17 -05:00
Jorge Aparicio
05a5f4681f remove the current test suite 2017-04-10 11:14:05 -05:00
Jorge Aparicio
07064c2239 test out of range condition using f64
to avoid imprecision due to rounding to f32
2017-04-08 10:18:19 -05:00
Jorge Aparicio
0ecfe751b5 fix quickcheck tests
the check! macro syntax has changed
2017-03-06 12:17:41 -05:00
Wilfried Chauveau
77889226f7 exclude from tests values out of integer range (and NaN). 2017-03-06 11:56:52 -05:00
Wilfried Chauveau
ef3de28eaf implement float/double to (u)int conversion. 2017-03-06 11:56:52 -05:00
Wilfried Chauveau
b3e33508a0 impl (unsigned/signed) int to single/double precision float conversion based on llvm algorithms. 2017-03-06 11:55:57 -05:00
Jorge Aparicio
9916fa670c implement float subtraction
as a + (-b)
2017-02-08 10:10:40 -05:00
Jorge Aparicio
0dfe91f7cf adjust the check! macro to accept AAPCS intrinsics 2017-02-07 23:07:51 -05:00
Jorge Aparicio
57deccf6de ARM: keep some non-aeabi symbols around
- multi3: there's no aeabi equivalent
- divmod{s,d}i4: these are directly called by __aeabi_{l,i}divmod
- add{s,d}f3: required by the C sub{s,d}f3 implementation

but make sure they also use the AAPCS calling convention
2017-02-07 14:28:02 -05:00
Jorge Aparicio
3a4e6ce2f4 use AAPCS calling convention on all aeabi intrinsics
also, on ARM, inline(always) the actual implementation of the intrinsics so we
end with code like this:

```
00000000 <__aeabi_dadd>:
    (implementation here)
```

instead of "trampolines" like this:

```
00000000 <__aeabi_dadd>:
    (shuffle registers)
    (call __adddf3)

00000000 <__adddf3>:
    (implementation here)
```

closes #116
2017-02-07 09:41:26 -05:00
Matt Ickstadt
430c92cc9a Use better cfg name for arm-linux tests 2016-11-12 15:52:59 -06:00
Matt Ickstadt
9b4553de1c Add float quickcheck 2016-11-12 14:55:28 -06:00
Christopher Serr
53c19053e4 Fix a few clippy warnings 2016-10-16 13:53:31 +02:00
Jorge Aparicio
d05514cb20 fix unsafe warnings 2016-10-07 18:19:40 -05:00
Jorge Aparicio
a02ecc8eef get profile.dev (-debug-assertions) + LTO working 2016-10-07 18:19:40 -05:00
Matt Ickstadt
e6bc8007dd Implement powi_f2 2016-10-03 11:20:42 -05:00
Matt Ickstadt
ab4e4bfd71 Initial implementation of multitester 2016-10-02 14:38:40 -05:00
Jorge Aparicio
7009fd238d Revert "Merge pull request #48 from mattico/add_float_quickcheck"
This reverts commit e34a6058df470e5b3d187c947ac41a294994c414, reversing
changes made to cab88e6133b0db9c6663ffd8b2f65cb35e8a9dda.
2016-09-30 19:12:17 -05:00
Matt Ickstadt
43d85fa5cb Add Quickcheck types for float tests 2016-09-30 14:29:52 -05:00
Matt Ickstadt
ca01aa45ff Cleanup add builtin assignments 2016-09-30 14:29:52 -05:00
Matt Ickstadt
fde45da332 Add floating point deconstruction helpers 2016-09-30 14:29:52 -05:00
Jorge Aparicio
cb9b1f82e3 add an opt-in cargo feature to build intrinsics from compiler-rt source
closes #63
cc #66
2016-09-29 16:06:24 -05:00
Alex Crichton
e7c804a9b0 Expand and refactor teting infrastructure
This commit moves over most of the testing infrastructure to in-tree docker
images that are all dispatched to from Travis (no other test configuration).
This allows versioning modifications to the test infrastructure as well as the
code itself. Additionally separate docker images allows for easy modification of
one without worrying about tampering of others as well as easy addition of new
targets by simply adding a new `Dockerfile`.

Additionally this commit bundles the master version of the `compiler-rt` source
repository from `llvm-mirror/compiler-rt` to test against. The compiler-rt
library itself is compiled as a `cdylib` which is then dynamically located at
runtime and we look for symbols in. There's a few hoops here, but they currently
get the job done.

All tests now execute against both gcc_s and compiler-rt, and this
testing strategy is now all hidden behind a macro as well (refactoring
all existing tests along the way).
2016-09-28 22:09:55 -07:00
homunkulus
bc07830e09 Auto merge of #71 - japaric:aeabi-aliases, r=japaric
add missing aeabi aliases
2016-09-22 22:55:43 +00:00