homunkulus
c56a3f8a6e
Auto merge of #73 - japaric:weak, r=japaric
...
put weak mem* symbols behind an opt-in Cargo feature
closes #64
cc #66
2016-09-22 23:59:48 +00:00
Jorge Aparicio
b7fa7d3a59
put weak mem* symbols behind an opt-in Cargo feature
...
closes #64
cc #66
2016-09-22 18:02:25 -05:00
homunkulus
d5e38beef9
Auto merge of #71 - japaric:aeabi-aliases, r=japaric
...
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
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