Tim Neumann
f83c8529e7
Fix incorrect names used / generated on ARM
2018-03-27 14:32:01 +02:00
Dan Gohman
3bd28c8b6d
Add "volatile" and "memory" clobber to asm! that doesn't fall through.
...
Use the "volatile" option and the "memory" clobber on inline asm that does
things like return directly, to reduce the chances of compilers rearranging
the code.
2017-11-15 12:49:10 -08:00
Alex Crichton
79b55c48ca
Fix unused imports on iOS
2017-07-03 19:11:34 -07:00
Jorge Aparicio
b9d6291682
no aeabi_mem* symbols on iOS, weak symbols on thumb, normal symbols elsewhere
2017-06-30 18:06:25 -05:00
Jorge Aparicio
f096e02f63
optimize 32-bit aligned mem{cpy,clr,set} intrinsics for ARM
...
this reduces the execution time of all these routines by 40-70%
2017-06-29 22:40:58 -05:00
Alex Crichton
6792390e3e
Enable the intrinsics program on thumb
2017-06-25 10:09:50 -07:00
Alex Crichton
f9db3c5b32
Don't test mangled names on thumb
...
We are both the "real compiler-rt" and the "to be tested one".
2017-06-24 12:54:35 -07:00
Alex Crichton
e7008c8609
Don't check for references to panics with debug assertions
2017-06-24 11:44:50 -07:00
Alex Crichton
3eff54a4ee
Don't generate unmangled aeabi with gen-tests
...
The symbols they delgate to also don't exist...
2017-06-24 11:34:10 -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
0e5562c38d
Remove executable bit on arm.rs
2017-06-23 11:21:15 -07:00
Jorge Aparicio
0869e5b93a
remove arm tests from the old test suite
2017-04-10 16:35:08 -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
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
Jorge Aparicio
b8d6652035
add implementations of memcpy et al
...
behind the "mem" Cargo feature, which used to be named "weak"
fixes #126
2016-12-17 23:06:37 -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
homunkulus
bc07830e09
Auto merge of #71 - japaric:aeabi-aliases, r=japaric
...
add missing aeabi aliases
2016-09-22 22:55:43 +00:00
Jorge Aparicio
2d630eedfd
add missing aeabi aliases
2016-09-22 17:02:36 -05:00
Jorge Aparicio
a83c11232e
avoid division overflow in idivmod test
2016-09-22 10:32:15 -05:00
Matt Ickstadt
35d68d8ab2
Move integer functions to separate module
2016-08-20 15:55:06 -05:00
Amanieu d'Antras
59fe09c493
Add tests for ARM division builtins
2016-08-19 12:13:02 +01:00
Amanieu d'Antras
161234b8b3
Add signed division functions
2016-08-19 12:13:02 +01:00
Amanieu d'Antras
d668c385ac
Fix inline assembly to work on ARMv6-M
2016-08-13 17:29:38 +01:00
Amanieu d'Antras
1a60c3d52f
Various changes
2016-08-13 09:56:40 +01:00
Jorge Aparicio
d66ff75198
note about calling convention
2016-08-11 00:36:19 -05:00
Jorge Aparicio
4c93f05195
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
2eb2ac115d
port udivmoddi4 and __aeabi_uldivmod
2016-08-11 00:26:12 -05:00
Amanieu d'Antras
6f22c85b25
Remove builtins that are not called by LLVM
2016-08-08 08:25:11 +01:00
Amanieu d'Antras
9fbd25b4cd
Rewrite the arm mem* builtins without asm and naked functions
2016-08-08 07:25:32 +01:00
Jorge Aparicio
773fd1a707
initial commit
2016-08-07 15:58:21 -05:00