PageRenderTime 19ms CodeModel.GetById 16ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/sh/lib64/strlen.S

https://bitbucket.org/ndreys/linux-sunxi
Assembly | 33 lines | 30 code | 3 blank | 0 comment | 2 complexity | 210df6f3a44e31668e0ca5e14cde2083 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
 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