1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Simplistic strlen() implementation for SHmedia. 4 * 5 * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org> 6 */ 7 8 .section .text..SHmedia32,"ax" 9 .globl strlen 10 .type strlen,@function 11 12 .balign 16 13strlen: 14 ptabs r18, tr4 15 16 /* 17 * Note: We could easily deal with the NULL case here with a simple 18 * sanity check, though it seems that the behavior we want is to fault 19 * in the event that r2 == NULL, so we don't bother. 20 */ 21/* beqi r2, 0, tr4 */ ! Sanity check 22 23 movi -1, r0 24 pta/l loop, tr0 25loop: 26 ld.b r2, 0, r1 27 addi r2, 1, r2 28 addi r0, 1, r0 29 bnei/l r1, 0, tr0 30 31 or r0, r63, r2 32 blink tr4, r63 33 34 .size strlen,.-strlen 35