blob: cbc0d912e5f35c733a7d565802e2b446c987be24 [file] [log] [blame]
* Simplistic strlen() implementation for SHmedia.
* Copyright (C) 2003 Paul Mundt <>
.section .text..SHmedia32,"ax"
.globl strlen
.type strlen,@function
.balign 16
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
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