Linux-2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
This commit is contained in:
70
arch/sh/lib/strlen.S
Normal file
70
arch/sh/lib/strlen.S
Normal file
@@ -0,0 +1,70 @@
|
||||
/* $Id: strlen.S,v 1.2 2001/06/29 14:07:15 gniibe Exp $
|
||||
*
|
||||
* "strlen" implementation of SuperH
|
||||
*
|
||||
* Copyright (C) 1999 Kaz Kojima
|
||||
*
|
||||
*/
|
||||
|
||||
/* size_t strlen (const char *s) */
|
||||
|
||||
#include <linux/linkage.h>
|
||||
ENTRY(strlen)
|
||||
mov r4,r0
|
||||
and #3,r0
|
||||
tst r0,r0
|
||||
bt/s 1f
|
||||
mov #0,r2
|
||||
|
||||
add #-1,r0
|
||||
shll2 r0
|
||||
shll r0
|
||||
braf r0
|
||||
nop
|
||||
|
||||
mov.b @r4+,r1
|
||||
tst r1,r1
|
||||
bt 8f
|
||||
add #1,r2
|
||||
|
||||
mov.b @r4+,r1
|
||||
tst r1,r1
|
||||
bt 8f
|
||||
add #1,r2
|
||||
|
||||
mov.b @r4+,r1
|
||||
tst r1,r1
|
||||
bt 8f
|
||||
add #1,r2
|
||||
|
||||
1:
|
||||
mov #0,r3
|
||||
2:
|
||||
mov.l @r4+,r1
|
||||
cmp/str r3,r1
|
||||
bf/s 2b
|
||||
add #4,r2
|
||||
|
||||
add #-4,r2
|
||||
#ifndef __LITTLE_ENDIAN__
|
||||
swap.b r1,r1
|
||||
swap.w r1,r1
|
||||
swap.b r1,r1
|
||||
#endif
|
||||
extu.b r1,r0
|
||||
tst r0,r0
|
||||
bt/s 8f
|
||||
shlr8 r1
|
||||
add #1,r2
|
||||
extu.b r1,r0
|
||||
tst r0,r0
|
||||
bt/s 8f
|
||||
shlr8 r1
|
||||
add #1,r2
|
||||
extu.b r1,r0
|
||||
tst r0,r0
|
||||
bt 8f
|
||||
add #1,r2
|
||||
8:
|
||||
rts
|
||||
mov r2,r0
|
Reference in New Issue
Block a user