| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | /* * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com) * Copyright (C) 2007 ARC International (UK) LTD * * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. */#include <sysdep.h>#define SMALL	7 /* Must be at least 6 to deal with alignment/loop issues.  */ENTRY(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.Laligned:	; This code address should be aligned for speed.	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]END(memset)libc_hidden_def(memset)
 |