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