Commit Graph

93 Commits

Author SHA1 Message Date
Jorge Aparicio
d34be6ab4e add missing aeabi aliases 2016-09-22 17:02:36 -05:00
Jorge Aparicio
384c48ce9b don't test always against gcc_s
instead test half of the time against gcc_s and the other half test
against the native operation (\*).

(\*) Not all the targets have available a native version of the
intrinsics under test. On those targets we'll end up testing our
implementation against itself half of the time. This is not much of a
problem because we do several quickcheck runs per intrinsic.
2016-09-21 21:38:06 -05:00
Jorge Aparicio
337bd7e209 armhf: don't compare our impls against gcc_s 2016-09-21 21:14:38 -05:00
Jorge Aparicio
225d4c9d45 avoid division overflow in idivmod test 2016-09-17 21:10:41 -05:00
Jorge Aparicio
9493c37455 test our implementations against gcc_s
if it exposes the same intrinsics that we implement -- gcc_s doesn't
implement all the intrinsics for all the architectures.

closes #65
2016-09-16 15:53:14 -05:00
Jorge Aparicio
2e561b3869 use utility function to compare the repr of floats
follow up of #43
2016-08-21 11:24:58 -05:00
Jorge Aparicio
c427112561 Merge pull request #49 from japaric/edge
qc: bias towards generation of edge cases
2016-08-21 11:03:44 -05:00
Matt Ickstadt
da53b70d34 Use mem::swap to swap variables 2016-08-20 22:30:02 -05:00
Jorge Aparicio
fc0cdeb7f1 qc: bias towards generation of edge cases 2016-08-20 22:17:50 -05:00
Matt Ickstadt
ef16de3d37 Implement soft float add builtins 2016-08-20 16:06:02 -05:00
Matt Ickstadt
6f0d50ebea Move integer functions to separate module 2016-08-20 15:55:06 -05:00
Jorge Aparicio
8603e64554 Merge pull request #44 from Amanieu/sdiv
Add signed division functions
2016-08-19 09:16:53 -05:00
Amanieu d'Antras
b9e916c769 Add tests for ARM division builtins 2016-08-19 12:13:02 +01:00
Amanieu d'Antras
f919660be5 Add signed division functions 2016-08-19 12:13:02 +01:00
Jorge Aparicio
5e47ca2699 rename muldi4 to muldi3
closes #42
2016-08-18 21:27:16 -05:00
Matt Ickstadt
aab3a10a9d Disable mangling for msvc stack builtins
This prevents linker errors in test builds due to the `jmp` instruction in __alloca
2016-08-17 12:55:15 -05:00
Matt Ickstadt
c9bff743cd Use jmp to implement __alloca fallthrough 2016-08-17 12:11:38 -05:00
Matt Ickstadt
b6091ababa Add x86_64 builtins 2016-08-16 19:55:17 -05:00
Jorge Aparicio
ac352a3512 add core_intrinsics feature gate 2016-08-15 21:08:04 -05:00
Jorge Aparicio
55eb1b71a0 remove unused feature gates 2016-08-14 22:08:36 -05:00
Jorge Aparicio
8965b061c2 use rlibc crate instead 2016-08-14 22:03:19 -05:00
Jorge Aparicio
fdbb7883da exclude windows and macos 2016-08-14 22:01:15 -05:00
Jorge Aparicio
265939fc00 add weak memcpy et al symbols
closes #28
2016-08-14 22:00:31 -05:00
Jorge Aparicio
45aec943d3 use wrapping_add in muldi4 2016-08-13 18:47:39 -05:00
Jorge Aparicio
f3eb08a96d fix a bug in udivmoddi4 2016-08-13 18:45:00 -05:00
Jorge Aparicio
69376af183 quickcheck: better generation of input arguments
closes #31
2016-08-13 16:58:44 -05:00
Amanieu d'Antras
97217e3ad9 Fix inline assembly to work on ARMv6-M 2016-08-13 17:29:38 +01:00
Amanieu d'Antras
acceaa95f1 Various changes 2016-08-13 09:56:40 +01:00
Amanieu d'Antras
0a0a8f37c9 Remove the absv implementation, it isn't needed by Rust 2016-08-13 09:54:58 +01:00
Jorge Aparicio
eb206842f2 address second row of review 2016-08-11 01:45:48 -05:00
Jorge Aparicio
1c22269948 don't transmute in test 2016-08-11 01:42:34 -05:00
Jorge Aparicio
3ff25d956a put div intrinsics in their own module + some docs 2016-08-11 01:26:27 -05:00
Jorge Aparicio
a84579d3c1 refactor: use Int traits, words -> U64, fmt 2016-08-11 01:15:51 -05:00
Jorge Aparicio
d6be95a3bb note about calling convention 2016-08-11 00:36:19 -05:00
Jorge Aparicio
a2fc4da7a5 move return into if branches 2016-08-11 00:33:27 -05:00
Jorge Aparicio
0915e15c9a *mut T -> Option<&mut T> 2016-08-11 00:31:49 -05:00
Jorge Aparicio
cc9d3e8e5f port __udivmodsi4, aeabi_uidivmod and udivsi3
also rewrite these last two new aeabi intrinsics as naked functions
2016-08-11 00:26:16 -05:00
Jorge Aparicio
950564607d port udivmoddi4 and __aeabi_uldivmod 2016-08-11 00:26:12 -05:00
Amanieu d'Antras
8a94b69d85 Add traits for integer operations 2016-08-11 05:38:11 +01:00
Amanieu d'Antras
065aaa9144 Remove the x86-specific floating-point builtins 2016-08-08 08:36:59 +01:00
Amanieu d'Antras
a147763c19 Remove builtins that are not called by LLVM 2016-08-08 08:25:11 +01:00
Amanieu d'Antras
36fb191695 Rewrite the arm mem* builtins without asm and naked functions 2016-08-08 07:25:32 +01:00
Jorge Aparicio
1faf15fc64 initial commit 2016-08-07 15:58:21 -05:00