Root/arch/sh/lib64/strlen.S

Source at commit 0de2b2b3be81048189a32f7a3d3ba0ba9ec817b6 created 11 years 11 months ago.
By Maarten ter Huurne, MIPS: JZ4740: Fixed value for round robin constant.
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

Archive Download this file



interactive