Commit Graph

37 Commits (master)

Author SHA1 Message Date
pca006132 c21d3aeec3 Added memcpy with neon optimization for zynq. 2020-09-02 12:34:12 +08:00
Alex Crichton cde22bc180
Switch to using `llvm_asm!` instead of `asm!` (#351)
* Switch to using `llvm_asm!` instead of `asm!`

* Run rustfmt

* Fix how LTO is specified on nightly
2020-04-29 15:30:10 -05:00
Ralf Jung 25edd204fa remove unused imports 2019-07-13 11:00:15 +02:00
Ralf Jung ebeace71ce avoid ptr::write which might panic in debug mode 2019-07-13 10:55:54 +02:00
Jordan Rhee 803d16ee84 Fix undefined symbol errors on windows/arm
Fix undefined symbol linker errors when building rust for windows/arm
by excluding unneeded symbols. The errors are:

  = note: lib.def : error LNK2001: unresolved external symbol __aeabi_memclr4
  lib.def : error LNK2001: unresolved external symbol __aeabi_memclr8
  lib.def : error LNK2001: unresolved external symbol __aeabi_memmove4
  lib.def : error LNK2001: unresolved external symbol __aeabi_memmove8
2019-02-27 11:39:49 -08:00
Jordan Rhee 78f544f57d Support windows/arm target 2018-09-06 09:27:24 -07:00
Tim Neumann 5be54652e9 Fix incorrect names used / generated on ARM 2018-03-27 14:32:01 +02:00
Dan Gohman a6ecd1a73f 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 238647af80 Fix unused imports on iOS 2017-07-03 19:11:34 -07:00
Jorge Aparicio b8a662040e no aeabi_mem* symbols on iOS, weak symbols on thumb, normal symbols elsewhere 2017-06-30 18:06:25 -05:00
Jorge Aparicio 75c6ccca71 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 0ebbcaede4 Enable the `intrinsics` program on thumb 2017-06-25 10:09:50 -07:00
Alex Crichton c193113721 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 acaa2f071a Don't check for references to panics with debug assertions 2017-06-24 11:44:50 -07:00
Alex Crichton d051480eff 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 7de57cd4f9 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 7c4745061a Remove executable bit on arm.rs 2017-06-23 11:21:15 -07:00
Jorge Aparicio d34c51f74a remove arm tests from the old test suite 2017-04-10 16:35:08 -05:00
Wilfried Chauveau 293fef5ebe impl (unsigned/signed) int to single/double precision float conversion based on llvm algorithms. 2017-03-06 11:55:57 -05:00
Jorge Aparicio 5bb969d8f5 implement float subtraction
as a + (-b)
2017-02-08 10:10:40 -05:00
Jorge Aparicio dfa7b161aa 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 a1caa7ccac 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 f77ca915c4 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 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 bfa92a862b avoid division overflow in idivmod test 2016-09-22 10:32:15 -05:00
Matt Ickstadt 6f0d50ebea Move integer functions to separate module 2016-08-20 15:55:06 -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
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
Jorge Aparicio d6be95a3bb note about calling convention 2016-08-11 00:36:19 -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 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