1*0b57cec5SDimitry Andric//===-- aeabi_memcmp.S - EABI memcmp implementation -----------------------===// 2*0b57cec5SDimitry Andric// 3*0b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*0b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information. 5*0b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*0b57cec5SDimitry Andric// 7*0b57cec5SDimitry Andric//===----------------------------------------------------------------------===// 8*0b57cec5SDimitry Andric 9*0b57cec5SDimitry Andric#include "../assembly.h" 10*0b57cec5SDimitry Andric 11*0b57cec5SDimitry Andric// void __aeabi_memcmp(void *dest, void *src, size_t n) { memcmp(dest, src, n); } 12*0b57cec5SDimitry Andric 13*0b57cec5SDimitry Andric .syntax unified 14*0b57cec5SDimitry Andric .p2align 2 15*0b57cec5SDimitry AndricDEFINE_COMPILERRT_FUNCTION(__aeabi_memcmp) 16*0b57cec5SDimitry Andric#ifdef USE_THUMB_1 17*0b57cec5SDimitry Andric push {r7, lr} 18*0b57cec5SDimitry Andric bl memcmp 19*0b57cec5SDimitry Andric pop {r7, pc} 20*0b57cec5SDimitry Andric#else 21*0b57cec5SDimitry Andric b memcmp 22*0b57cec5SDimitry Andric#endif 23*0b57cec5SDimitry AndricEND_COMPILERRT_FUNCTION(__aeabi_memcmp) 24*0b57cec5SDimitry Andric 25*0b57cec5SDimitry AndricDEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp4, __aeabi_memcmp) 26*0b57cec5SDimitry AndricDEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __aeabi_memcmp) 27*0b57cec5SDimitry Andric 28*0b57cec5SDimitry AndricNO_EXEC_STACK_DIRECTIVE 29*0b57cec5SDimitry Andric 30