memset.s

来自「优龙2410linux2.6.8内核源代码」· S 代码 · 共 62 行

S
62
字号
/* memset.S */#include <asm/linkage.h>#if defined(__H8300H__) 	.h8300h#endif#if defined(__H8300S__) 	.h8300s#endif	.text.global	SYMBOL_NAME(memset);;void *memset(*ptr, int c, size_t count);; ptr = er0;; c   = er1(r1l);; count = er2SYMBOL_NAME_LABEL(memset)	btst	#0,r0l	beq	2f	;; odd address1:	mov.b	r1l,@er0	adds	#1,er0	dec.l	#1,er2	beq	6f	;; even address2:	mov.l	er2,er3	cmp.l	#4,er2	blo	4f	;; count>=4 -> count/4#if defined(__H8300H__)	shlr.l	er2	shlr.l	er2#endif#if defined(__H8300S__)	shlr.l	#2,er2#endif	;; byte -> long	mov.b	r1l,r1h	mov.w	r1,e13:	mov.l	er1,@er0	adds	#4,er0	dec.l	#1,er2	bne	3b4:	;; count % 4	and.b	#3,r3l	beq	6f5:	mov.b	r1l,@er0	adds	#1,er0	dec.b	r3l	bne	5b6:	rts

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?