102 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	.file "memcpy.S"
 | 
						|
 | 
						|
	.section .text
 | 
						|
	.global _memcpy
 | 
						|
	.type	 _memcpy,@function
 | 
						|
_memcpy:
 | 
						|
	movm [d2,d3,a2,a3],(sp)
 | 
						|
.Lend_of_prologue:
 | 
						|
	mov d0,d2
 | 
						|
	mov d1,a0
 | 
						|
	mov d2,a1
 | 
						|
	mov (28,sp),d1
 | 
						|
#ifndef __OPTIMIZE_SIZE__
 | 
						|
	mov a0,d0
 | 
						|
	or d2,d0
 | 
						|
	btst 3,d0
 | 
						|
	bne .L37
 | 
						|
	cmp 15,d1
 | 
						|
	bls .L34
 | 
						|
	setlb
 | 
						|
	mov (a0),d0
 | 
						|
	mov d0,(a1)
 | 
						|
	inc4 a0
 | 
						|
	inc4 a1
 | 
						|
	mov (a0),d0
 | 
						|
	mov d0,(a1)
 | 
						|
	inc4 a0
 | 
						|
	inc4 a1
 | 
						|
	mov (a0),d0
 | 
						|
	mov d0,(a1)
 | 
						|
	inc4 a0
 | 
						|
	inc4 a1
 | 
						|
	mov (a0),d0
 | 
						|
	mov d0,(a1)
 | 
						|
	inc4 a0
 | 
						|
	inc4 a1
 | 
						|
	add -16,d1
 | 
						|
	cmp 15,d1
 | 
						|
	lhi
 | 
						|
.L34:
 | 
						|
	cmp 3,d1
 | 
						|
	bls .L37
 | 
						|
	setlb
 | 
						|
	mov (a0),d0
 | 
						|
	mov d0,(a1)
 | 
						|
	inc4 a0
 | 
						|
	inc4 a1
 | 
						|
	add -4,d1
 | 
						|
	cmp 3,d1
 | 
						|
	lhi
 | 
						|
.L37:
 | 
						|
#endif
 | 
						|
	cmp 0,d1
 | 
						|
	beq .L36
 | 
						|
	setlb
 | 
						|
	movbu (a0),d0
 | 
						|
	movbu d0,(a1)
 | 
						|
	inc a0
 | 
						|
	inc a1
 | 
						|
	sub 1,d1
 | 
						|
	lne
 | 
						|
.L36:
 | 
						|
	mov d2,a0
 | 
						|
.Lepilogue:
 | 
						|
	ret [d2,d3,a2,a3],16
 | 
						|
.Lend_of_memcpy:
 | 
						|
	.size	 _memcpy, .Lend_of_memcpy - _memcpy
 | 
						|
 | 
						|
	.section	.debug_frame,"",@progbits
 | 
						|
.Lstart_of_debug_frame:
 | 
						|
	# Common Information Entry (CIE)
 | 
						|
	.4byte	.Lend_of_CIE - .Lstart_of_CIE	# CIE Length
 | 
						|
.Lstart_of_CIE:
 | 
						|
	.4byte	 0xffffffff			# CIE Identifier Tag
 | 
						|
	.byte	 0x1				# CIE Version
 | 
						|
	.ascii   "\0"				# CIE Augmentation
 | 
						|
	.uleb128 0x1				# CIE Code Alignment Factor
 | 
						|
	.sleb128 -4				# CIE Data Alignment Factor
 | 
						|
	.byte	 0x32				# CIE RA Column
 | 
						|
	.byte	 0xc				# DW_CFA_def_cfa
 | 
						|
	.uleb128 0x9
 | 
						|
	.uleb128 0x0
 | 
						|
	.byte	 0xb2				# DW_CFA_offset, column 0x32
 | 
						|
	.uleb128 0x0
 | 
						|
	.align   2
 | 
						|
.Lend_of_CIE:
 | 
						|
	
 | 
						|
	# Frame Description Entry (FDE)
 | 
						|
	.4byte	.Lend_of_FDE - .Lstart_of_FDE	# FDE Length
 | 
						|
.Lstart_of_FDE:
 | 
						|
	.4byte	 .Lstart_of_debug_frame		# FDE CIE offset
 | 
						|
	.4byte	 _memcpy			# FDE initial location
 | 
						|
	.4byte	 .Lend_of_memcpy - _memcpy	# FDE address range
 | 
						|
	.byte	 0x4				# DW_CFA_advance_loc4
 | 
						|
	.4byte	 .Lend_of_prologue - _memcpy
 | 
						|
	.byte	 0xe				# DW_CFA_def_cfa_offset
 | 
						|
	.uleb128 0x4
 | 
						|
	.byte	 0x87				# DW_CFA_offset, column 0x7
 | 
						|
	.uleb128 0x1
 | 
						|
	.align 2
 | 
						|
.Lend_of_FDE:
 |