| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | /* * Copyright (C) 2004-2007 Atmel Corporation * * This file is subject to the terms and conditions of the GNU Lesser General * Public License.  See the file "COPYING.LIB" in the main directory of this * archive for more details. */#include <features.h>#define s r12#define c r11#define n r10	.text	.global memset	.type	memset, @function	.align	1memset:	cp.w	n, 32	mov	r9, s	brge	.Llarge_memset	sub	n, 1	retlt	s1:	st.b	s++, c	sub	n, 1	brge	1b	retal	r9.Llarge_memset:	mov	r8, r11	mov	r11, 3	bfins	r8, r8, 8, 8	bfins	r8, r8, 16, 16	tst	s, r11	breq	2f1:	st.b	s++, r8	sub	n, 1	tst	s, r11	brne	1b2:	mov	r11, r9	mov	r9, r8	sub	n, 83:	st.d	s++, r8	sub	n, 8	brge	3b	/* If we are done, n == -8 and we'll skip all st.b insns below */	neg	n	lsl	n, 1	add	pc, n	.rept	7	st.b	s++, r8	.endr	retal	r11	.size	memset, . - memsetlibc_hidden_def(memset)
 |