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