PageRenderTime 10ms CodeModel.GetById 1ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/sh/lib64/strlen.S

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