Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /* $Id: strlen.S,v 1.2 2001/06/29 14:07:15 gniibe Exp $
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  * "strlen" implementation of SuperH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6)  * Copyright (C) 1999  Kaz Kojima
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7)  *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) /* size_t strlen (const char *s)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) ENTRY(strlen)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	mov	r4,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	and	#3,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	tst	r0,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	bt/s	1f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	 mov	#0,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	add	#-1,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	shll2	r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	shll	r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	braf	r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	 nop
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	mov.b	@r4+,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	tst	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	bt	8f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	add	#1,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	mov.b	@r4+,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	tst	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	bt	8f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	add	#1,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) 	mov.b	@r4+,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	tst	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 	bt	8f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	add	#1,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 1:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	mov	#0,r3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 2:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) 	mov.l	@r4+,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	cmp/str	r3,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) 	bf/s	2b
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 	 add	#4,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 	add	#-4,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #ifndef __LITTLE_ENDIAN__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) 	swap.b	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) 	swap.w	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) 	swap.b	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) 	extu.b	r1,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) 	tst	r0,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) 	bt/s	8f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) 	 shlr8	r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) 	add	#1,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) 	extu.b	r1,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) 	tst	r0,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) 	bt/s	8f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) 	 shlr8	r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) 	add	#1,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) 	extu.b	r1,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) 	tst	r0,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) 	bt	8f
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) 	add	#1,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) 8:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) 	rts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) 	 mov	r2,r0