diff options
Diffstat (limited to 'libc/arch-arm/krait')
-rw-r--r-- | libc/arch-arm/krait/bionic/memcpy.S | 4 | ||||
-rw-r--r-- | libc/arch-arm/krait/bionic/memcpy_base.S | 5 | ||||
-rw-r--r-- | libc/arch-arm/krait/bionic/memmove.S | 32 | ||||
-rw-r--r-- | libc/arch-arm/krait/bionic/memset.S | 8 | ||||
-rw-r--r-- | libc/arch-arm/krait/bionic/strcmp.S | 8 |
5 files changed, 49 insertions, 8 deletions
diff --git a/libc/arch-arm/krait/bionic/memcpy.S b/libc/arch-arm/krait/bionic/memcpy.S index 49fd04069..6618b3ad0 100644 --- a/libc/arch-arm/krait/bionic/memcpy.S +++ b/libc/arch-arm/krait/bionic/memcpy.S @@ -42,7 +42,7 @@ .thumb .thumb_func -ENTRY(__memcpy) +ENTRY(__memcpy_krait) pld [r1, #64] stmfd sp!, {r0, lr} .cfi_adjust_cfa_offset 8 @@ -50,4 +50,4 @@ ENTRY(__memcpy) .cfi_rel_offset lr, 4 #include "memcpy_base.S" -END(__memcpy) +END(__memcpy_krait) diff --git a/libc/arch-arm/krait/bionic/memcpy_base.S b/libc/arch-arm/krait/bionic/memcpy_base.S index dc8ad2cdf..5b4b70d5c 100644 --- a/libc/arch-arm/krait/bionic/memcpy_base.S +++ b/libc/arch-arm/krait/bionic/memcpy_base.S @@ -41,8 +41,13 @@ #endif .text + .syntax unified .fpu neon + // To avoid warning about deprecated instructions, add an explicit + // arch. The code generated is exactly the same. + .arch armv7-a + .L_memcpy_base: cmp r2, #4 blt .L_neon_lt4 diff --git a/libc/arch-arm/krait/bionic/memmove.S b/libc/arch-arm/krait/bionic/memmove.S new file mode 100644 index 000000000..af85ea62e --- /dev/null +++ b/libc/arch-arm/krait/bionic/memmove.S @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#define MEMMOVE memmove_krait +#define MEMCPY __memcpy_krait + +#include <arch-arm/denver/bionic/memmove.S> diff --git a/libc/arch-arm/krait/bionic/memset.S b/libc/arch-arm/krait/bionic/memset.S index 228942cbe..675ab53bc 100644 --- a/libc/arch-arm/krait/bionic/memset.S +++ b/libc/arch-arm/krait/bionic/memset.S @@ -37,7 +37,7 @@ .fpu neon .syntax unified -ENTRY(__memset_chk) +ENTRY(__memset_chk_krait) cmp r2, r3 bls memset @@ -47,10 +47,10 @@ ENTRY(__memset_chk) .cfi_rel_offset lr, 0 bl __memset_chk_fail -END(__memset_chk) +END(__memset_chk_krait) /* memset() returns its first argument. */ -ENTRY(memset) +ENTRY(memset_krait) mov r3, r0 vdup.8 q0, r1 @@ -82,4 +82,4 @@ ENTRY(memset) strbcs r1, [r3], #1 strbcs r1, [r3], #1 bx lr -END(memset) +END(memset_krait) diff --git a/libc/arch-arm/krait/bionic/strcmp.S b/libc/arch-arm/krait/bionic/strcmp.S index b871c7622..ec692e524 100644 --- a/libc/arch-arm/krait/bionic/strcmp.S +++ b/libc/arch-arm/krait/bionic/strcmp.S @@ -52,12 +52,16 @@ .syntax unified +// To avoid warning about deprecated instructions, add an explicit +// arch. The code generated is exactly the same. +.arch armv7-a + #if defined (__thumb__) .thumb .thumb_func #endif -ENTRY(strcmp) +ENTRY(strcmp_krait) /* Use LDRD whenever possible. */ /* The main thing to look out for when comparing large blocks is that @@ -482,4 +486,4 @@ ENTRY(strcmp) .cfi_restore r7 bx lr -END(strcmp) +END(strcmp_krait) |