162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * linux/arch/arm/lib/memchr.S 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 1995-2000 Russell King 662306a36Sopenharmony_ci * 762306a36Sopenharmony_ci * ASM optimised string functions 862306a36Sopenharmony_ci */ 962306a36Sopenharmony_ci#include <linux/linkage.h> 1062306a36Sopenharmony_ci#include <asm/assembler.h> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci .text 1362306a36Sopenharmony_ci .align 5 1462306a36Sopenharmony_ciENTRY(memchr) 1562306a36Sopenharmony_ci1: subs r2, r2, #1 1662306a36Sopenharmony_ci bmi 2f 1762306a36Sopenharmony_ci ldrb r3, [r0], #1 1862306a36Sopenharmony_ci teq r3, r1 1962306a36Sopenharmony_ci bne 1b 2062306a36Sopenharmony_ci sub r0, r0, #1 2162306a36Sopenharmony_ci2: movne r0, #0 2262306a36Sopenharmony_ci ret lr 2362306a36Sopenharmony_ciENDPROC(memchr) 24