aeabi_memmove.S 867 B

12345678910111213141516171819202122232425262728
  1. //===-- aeabi_memmove.S - EABI memmove implementation --------------------===//
  2. //
  3. // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
  4. // See https://llvm.org/LICENSE.txt for license information.
  5. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
  6. //
  7. //===---------------------------------------------------------------------===//
  8. #include "../assembly.h"
  9. // void __aeabi_memmove(void *dest, void *src, size_t n) { memmove(dest, src, n); }
  10. .p2align 2
  11. DEFINE_COMPILERRT_FUNCTION(__aeabi_memmove)
  12. #ifdef USE_THUMB_1
  13. push {r7, lr}
  14. bl memmove
  15. pop {r7, pc}
  16. #else
  17. b memmove
  18. #endif
  19. END_COMPILERRT_FUNCTION(__aeabi_memmove)
  20. DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove4, __aeabi_memmove)
  21. DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __aeabi_memmove)
  22. NO_EXEC_STACK_DIRECTIVE