mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	These are library functions used by ARC700 architecture. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: Francois Bedard <fbedard@synopsys.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Heiko Schocher <hs@denx.de>
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2004, 2007-2010, 2011-2014 Synopsys, Inc. All rights reserved.
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| 
 | |
| #define SMALL	7 /* Must be at least 6 to deal with alignment/loop issues.  */
 | |
| 
 | |
| .global memset
 | |
| .align 4
 | |
| memset:
 | |
| 	mov_s	%r4, %r0
 | |
| 	or	%r12, %r0, %r2
 | |
| 	bmsk.f	%r12, %r12, 1
 | |
| 	extb_s	%r1, %r1
 | |
| 	asl	%r3, %r1, 8
 | |
| 	beq.d	.Laligned
 | |
| 	or_s	%r1, %r1, %r3
 | |
| 	brls	%r2, SMALL, .Ltiny
 | |
| 	add	%r3, %r2, %r0
 | |
| 	stb	%r1, [%r3, -1]
 | |
| 	bclr_s	%r3, %r3, 0
 | |
| 	stw	%r1, [%r3, -2]
 | |
| 	bmsk.f	%r12, %r0, 1
 | |
| 	add_s	%r2, %r2, %r12
 | |
| 	sub.ne	%r2, %r2, 4
 | |
| 	stb.ab	%r1, [%r4, 1]
 | |
| 	and	%r4, %r4, -2
 | |
| 	stw.ab	%r1, [%r4, 2]
 | |
| 	and	%r4, %r4, -4
 | |
| 
 | |
| 	.balign	4
 | |
| .Laligned:
 | |
| 	asl	%r3, %r1, 16
 | |
| 	lsr.f	%lp_count, %r2, 2
 | |
| 	or_s	%r1, %r1, %r3
 | |
| 	lpne	.Loop_end
 | |
| 	st.ab	%r1, [%r4, 4]
 | |
| .Loop_end:
 | |
| 	j_s	[%blink]
 | |
| 
 | |
| 	.balign	4
 | |
| .Ltiny:
 | |
| 	mov.f	%lp_count, %r2
 | |
| 	lpne	.Ltiny_end
 | |
| 	stb.ab	%r1, [%r4, 1]
 | |
| .Ltiny_end:
 | |
| 	j_s	[%blink]
 | |
| 
 | |
| /*
 | |
|  * memzero: @r0 = mem, @r1 = size_t
 | |
|  * memset:  @r0 = mem, @r1 = char, @r2 = size_t
 | |
|  */
 | |
| 
 | |
| .global memzero
 | |
| .align 4
 | |
| memzero:
 | |
| 	/* adjust bzero args to memset args */
 | |
| 	mov	%r2, %r1
 | |
| 	mov	%r1, 0
 | |
| 	/* tail call so need to tinker with blink */
 | |
| 	b	memset
 |