diff options
Diffstat (limited to 'arch/sh/lib/memchr.S')
-rw-r--r-- | arch/sh/lib/memchr.S | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/sh/lib/memchr.S b/arch/sh/lib/memchr.S new file mode 100644 index 000000000000..bc6036ad5706 --- /dev/null +++ b/arch/sh/lib/memchr.S | |||
@@ -0,0 +1,26 @@ | |||
1 | /* $Id: memchr.S,v 1.1 2000/04/14 16:49:01 mjd Exp $ | ||
2 | * | ||
3 | * "memchr" implementation of SuperH | ||
4 | * | ||
5 | * Copyright (C) 1999 Niibe Yutaka | ||
6 | * | ||
7 | */ | ||
8 | |||
9 | /* | ||
10 | * void *memchr(const void *s, int c, size_t n); | ||
11 | */ | ||
12 | |||
13 | #include <linux/linkage.h> | ||
14 | ENTRY(memchr) | ||
15 | tst r6,r6 | ||
16 | bt/s 2f | ||
17 | exts.b r5,r5 | ||
18 | 1: mov.b @r4,r1 | ||
19 | cmp/eq r1,r5 | ||
20 | bt/s 3f | ||
21 | dt r6 | ||
22 | bf/s 1b | ||
23 | add #1,r4 | ||
24 | 2: mov #0,r4 | ||
25 | 3: rts | ||
26 | mov r4,r0 | ||