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-only */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  3)  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  4)  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  5) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  6) #include <linux/linkage.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  8) #define SMALL	7 /* Must be at least 6 to deal with alignment/loop issues.  */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) ENTRY_CFI(memset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) 	mov_s	r4,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) 	or	r12,r0,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) 	bmsk.f	r12,r12,1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) 	extb_s	r1,r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) 	asl	r3,r1,8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) 	beq.d	.Laligned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) 	or_s	r1,r1,r3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) 	brls	r2,SMALL,.Ltiny
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) 	add	r3,r2,r0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) 	stb	r1,[r3,-1]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 	bclr_s	r3,r3,0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) 	stw	r1,[r3,-2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) 	bmsk.f	r12,r0,1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) 	add_s	r2,r2,r12
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 	sub.ne	r2,r2,4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) 	stb.ab	r1,[r4,1]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) 	and	r4,r4,-2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) 	stw.ab	r1,[r4,2]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) 	and	r4,r4,-4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) .Laligned:	; This code address should be aligned for speed.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) 	asl	r3,r1,16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) 	lsr.f	lp_count,r2,2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) 	or_s	r1,r1,r3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) 	lpne	.Loop_end
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) 	st.ab	r1,[r4,4]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) .Loop_end:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 	j_s	[blink]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) 	.balign	4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) .Ltiny:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) 	mov.f	lp_count,r2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) 	lpne	.Ltiny_end
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) 	stb.ab	r1,[r4,1]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) .Ltiny_end:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) 	j_s	[blink]
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) END_CFI(memset)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) ; memzero: @r0 = mem, @r1 = size_t
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) ; memset:  @r0 = mem, @r1 = char, @r2 = size_t
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) ENTRY_CFI(memzero)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)     ; adjust bzero args to memset args
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53)     mov r2, r1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)     mov r1, 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)     b  memset    ;tail call so need to tinker with blink
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) END_CFI(memzero)