162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * linux/arch/arm/lib/strchr.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(strchr) 1562306a36Sopenharmony_ci and r1, r1, #0xff 1662306a36Sopenharmony_ci1: ldrb r2, [r0], #1 1762306a36Sopenharmony_ci teq r2, r1 1862306a36Sopenharmony_ci teqne r2, #0 1962306a36Sopenharmony_ci bne 1b 2062306a36Sopenharmony_ci teq r2, r1 2162306a36Sopenharmony_ci movne r0, #0 2262306a36Sopenharmony_ci subeq r0, r0, #1 2362306a36Sopenharmony_ci ret lr 2462306a36Sopenharmony_ciENDPROC(strchr) 25