/* * Copyright (C) 2004-2007 Atmel Corporation * * This file is subject to the terms and conditions of the GNU Lesser General * Public License. See the file "COPYING.LIB" in the main directory of this * archive for more details. */ #include <features.h> #define s1 r12 #define s2 r11 #define len r10 .text .global memcmp .type memcmp, @function .align 1 memcmp: sub len, 4 brlt .Lless_than_4 1: ld.w r8, s1++ ld.w r9, s2++ cp.w r8, r9 brne .Lfound_word sub len, 4 brge 1b .Lless_than_4: sub len, -4 reteq 0 1: ld.ub r8, s1++ ld.ub r9, s2++ sub r8, r9 retne r8 sub len, 1 brgt 1b retal 0 .Lfound_word: mov len, 4 2: bfextu r11, r9, 24, 8 bfextu r12, r8, 24, 8 sub r12, r11 retne r12 lsl r8, 8 lsl r9, 8 sub len, 1 brne 2b retal r12 .size memcmp, . - memcmp libc_hidden_def(memcmp) #ifdef __UCLIBC_SUSV3_LEGACY__ strong_alias(memcmp,bcmp) #endif