1/*
2Copyright (c) 1990 The Regents of the University of California.
3All rights reserved.
4
5Redistribution and use in source and binary forms are permitted
6provided that the above copyright notice and this paragraph are
7duplicated in all such forms and that any documentation,
8and/or other materials related to such
9distribution and use acknowledge that the software was developed
10by the University of California, Berkeley.  The name of the
11University may not be used to endorse or promote products derived
12from this software without specific prior written permission.
13THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16 */
17	.file "memcpy.S"
18
19	.section .text
20	.global _memcpy
21	.type	 _memcpy,@function
22_memcpy:
23	movm [d2,d3,a2,a3],(sp)
24.Lend_of_prologue:
25	mov d0,d2
26	mov d1,a0
27	mov d2,a1
28	mov (28,sp),d1
29#ifndef __OPTIMIZE_SIZE__
30	mov a0,d0
31	or d2,d0
32	btst 3,d0
33	bne .L37
34	cmp 15,d1
35	bls .L34
36	setlb
37	mov (a0),d0
38	mov d0,(a1)
39	inc4 a0
40	inc4 a1
41	mov (a0),d0
42	mov d0,(a1)
43	inc4 a0
44	inc4 a1
45	mov (a0),d0
46	mov d0,(a1)
47	inc4 a0
48	inc4 a1
49	mov (a0),d0
50	mov d0,(a1)
51	inc4 a0
52	inc4 a1
53	add -16,d1
54	cmp 15,d1
55	lhi
56.L34:
57	cmp 3,d1
58	bls .L37
59	setlb
60	mov (a0),d0
61	mov d0,(a1)
62	inc4 a0
63	inc4 a1
64	add -4,d1
65	cmp 3,d1
66	lhi
67.L37:
68#endif
69	cmp 0,d1
70	beq .L36
71	setlb
72	movbu (a0),d0
73	movbu d0,(a1)
74	inc a0
75	inc a1
76	sub 1,d1
77	lne
78.L36:
79	mov d2,a0
80.Lepilogue:
81	ret [d2,d3,a2,a3],16
82.Lend_of_memcpy:
83	.size	 _memcpy, .Lend_of_memcpy - _memcpy
84
85	.section	.debug_frame,"",@progbits
86.Lstart_of_debug_frame:
87	# Common Information Entry (CIE)
88	.4byte	.Lend_of_CIE - .Lstart_of_CIE	# CIE Length
89.Lstart_of_CIE:
90	.4byte	 0xffffffff			# CIE Identifier Tag
91	.byte	 0x1				# CIE Version
92	.ascii   "\0"				# CIE Augmentation
93	.uleb128 0x1				# CIE Code Alignment Factor
94	.sleb128 -4				# CIE Data Alignment Factor
95	.byte	 0x32				# CIE RA Column
96	.byte	 0xc				# DW_CFA_def_cfa
97	.uleb128 0x9
98	.uleb128 0x0
99	.byte	 0xb2				# DW_CFA_offset, column 0x32
100	.uleb128 0x0
101	.align   2
102.Lend_of_CIE:
103
104	# Frame Description Entry (FDE)
105	.4byte	.Lend_of_FDE - .Lstart_of_FDE	# FDE Length
106.Lstart_of_FDE:
107	.4byte	 .Lstart_of_debug_frame		# FDE CIE offset
108	.4byte	 _memcpy			# FDE initial location
109	.4byte	 .Lend_of_memcpy - _memcpy	# FDE address range
110	.byte	 0x4				# DW_CFA_advance_loc4
111	.4byte	 .Lend_of_prologue - _memcpy
112	.byte	 0xe				# DW_CFA_def_cfa_offset
113	.uleb128 0x4
114	.byte	 0x87				# DW_CFA_offset, column 0x7
115	.uleb128 0x1
116	.align 2
117.Lend_of_FDE:
118