 ec7ac6afd0
			
		
	
	
	ec7ac6afd0
	
	
	
		
			
			With commit 9df62f0544 "arch: use ASM_NL instead of ';'" the generic
macros can handle the arch specific newline quirk. Hence we can get rid
of ARC asm macros and use the "C" style macros.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
		
	
			
		
			
				
	
	
		
			66 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.2 KiB
			
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| /*
 | |
|  * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License version 2 as
 | |
|  * published by the Free Software Foundation.
 | |
|  */
 | |
| 
 | |
| #include <linux/linkage.h>
 | |
| 
 | |
| ENTRY(memcpy)
 | |
| 	or	r3,r0,r1
 | |
| 	asl_s	r3,r3,30
 | |
| 	mov_s	r5,r0
 | |
| 	brls.d	r2,r3,.Lcopy_bytewise
 | |
| 	sub.f	r3,r2,1
 | |
| 	ld_s	r12,[r1,0]
 | |
| 	asr.f	lp_count,r3,3
 | |
| 	bbit0.d	r3,2,.Lnox4
 | |
| 	bmsk_s	r2,r2,1
 | |
| 	st.ab	r12,[r5,4]
 | |
| 	ld.a	r12,[r1,4]
 | |
| .Lnox4:
 | |
| 	lppnz	.Lendloop
 | |
| 	ld_s	r3,[r1,4]
 | |
| 	st.ab	r12,[r5,4]
 | |
| 	ld.a	r12,[r1,8]
 | |
| 	st.ab	r3,[r5,4]
 | |
| .Lendloop:
 | |
| 	breq	r2,0,.Last_store
 | |
| 	ld	r3,[r5,0]
 | |
| #ifdef __LITTLE_ENDIAN__
 | |
| 	add3	r2,-1,r2
 | |
| 	; uses long immediate
 | |
| 	xor_s	r12,r12,r3
 | |
| 	bmsk	r12,r12,r2
 | |
|     xor_s	r12,r12,r3
 | |
| #else /* BIG ENDIAN */
 | |
| 	sub3	r2,31,r2
 | |
| 	; uses long immediate
 | |
|         xor_s	r3,r3,r12
 | |
|         bmsk	r3,r3,r2
 | |
|         xor_s	r12,r12,r3
 | |
| #endif /* ENDIAN */
 | |
| .Last_store:
 | |
| 	j_s.d	[blink]
 | |
| 	st	r12,[r5,0]
 | |
| 
 | |
| 	.balign	4
 | |
| .Lcopy_bytewise:
 | |
| 	jcs	[blink]
 | |
| 	ldb_s	r12,[r1,0]
 | |
| 	lsr.f	lp_count,r3
 | |
| 	bhs_s	.Lnox1
 | |
| 	stb.ab	r12,[r5,1]
 | |
| 	ldb.a	r12,[r1,1]
 | |
| .Lnox1:
 | |
| 	lppnz	.Lendbloop
 | |
| 	ldb_s	r3,[r1,1]
 | |
| 	stb.ab	r12,[r5,1]
 | |
| 	ldb.a	r12,[r1,2]
 | |
| 	stb.ab	r3,[r5,1]
 | |
| .Lendbloop:
 | |
| 	j_s.d	[blink]
 | |
| 	stb	r12,[r5,0]
 | |
| END(memcpy)
 |