xref: /linux/arch/arm/lib/strchr.S (revision 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2)
1*1da177e4SLinus Torvalds/*
2*1da177e4SLinus Torvalds *  linux/arch/arm/lib/strchr.S
3*1da177e4SLinus Torvalds *
4*1da177e4SLinus Torvalds *  Copyright (C) 1995-2000 Russell King
5*1da177e4SLinus Torvalds *
6*1da177e4SLinus Torvalds * This program is free software; you can redistribute it and/or modify
7*1da177e4SLinus Torvalds * it under the terms of the GNU General Public License version 2 as
8*1da177e4SLinus Torvalds * published by the Free Software Foundation.
9*1da177e4SLinus Torvalds *
10*1da177e4SLinus Torvalds *  ASM optimised string functions
11*1da177e4SLinus Torvalds */
12*1da177e4SLinus Torvalds#include <linux/linkage.h>
13*1da177e4SLinus Torvalds#include <asm/assembler.h>
14*1da177e4SLinus Torvalds
15*1da177e4SLinus Torvalds		.text
16*1da177e4SLinus Torvalds		.align	5
17*1da177e4SLinus TorvaldsENTRY(strchr)
18*1da177e4SLinus Torvalds		and	r1, r1, #0xff
19*1da177e4SLinus Torvalds1:		ldrb	r2, [r0], #1
20*1da177e4SLinus Torvalds		teq	r2, r1
21*1da177e4SLinus Torvalds		teqne	r2, #0
22*1da177e4SLinus Torvalds		bne	1b
23*1da177e4SLinus Torvalds		teq	r2, r1
24*1da177e4SLinus Torvalds		movne	r0, #0
25*1da177e4SLinus Torvalds		subeq	r0, r0, #1
26*1da177e4SLinus Torvalds		RETINSTR(mov,pc,lr)
27