123456789101112131415161718192021222324252627282930313233 |
- /*
- * Simplistic strlen() implementation for SHmedia.
- *
- * Copyright (C) 2003 Paul Mundt <lethal@linux-sh.org>
- */
- .section .text..SHmedia32,"ax"
- .globl strlen
- .type strlen,@function
- .balign 16
- strlen:
- ptabs r18, tr4
- /*
- * Note: We could easily deal with the NULL case here with a simple
- * sanity check, though it seems that the behavior we want is to fault
- * in the event that r2 == NULL, so we don't bother.
- */
- /* beqi r2, 0, tr4 */ ! Sanity check
- movi -1, r0
- pta/l loop, tr0
- loop:
- ld.b r2, 0, r1
- addi r2, 1, r2
- addi r0, 1, r0
- bnei/l r1, 0, tr0
- or r0, r63, r2
- blink tr4, r63
- .size strlen,.-strlen
|