156 lines · 2.5 KB · Assembly
RawDownload
/* * arch/score/lib/string.S * * Score Processor version. * * Copyright (C) 2009 Sunplus Core Technology Co., Ltd. *  Chen Liqin <liqin.chen@sunplusct.com> *  Lennox Wu <lennox.wu@sunplusct.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see the file COPYING, or write * to the Free Software Foundation, Inc., * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */ #include <linux/linkage.h>#include <asm-generic/errno.h> 	.text	.align 2ENTRY(__strncpy_from_user)	cmpi.c	r6, 0	mv	r9, r6	ble	.L20:	lbu	r7, [r5]	ldi	r8, 01:	sb	r7, [r4]2:	lb	r6, [r5]	cmp.c	r6, r8	beq	.L2 .L5:	addi	r8, 1	cmp.c	r8, r9	beq	.L73:	lbu	r6, [r5, 1]+4:	sb	r6, [r4, 1]+5:	lb	r7, [r5]	cmpi.c	r7, 0	bne	.L5.L7:	mv	r4, r8	br	r3.L2:	ldi	r8, 0	mv	r4, r8	br	r3	.section .fixup, "ax"99:	ldi	r4, -EFAULT	br	r3	.previous	.section __ex_table, "a"	.align	2	.word	0b ,99b	.word	1b ,99b	.word	2b ,99b	.word	3b ,99b	.word	4b ,99b	.word	5b ,99b	.previous 	.align 2ENTRY(__strnlen_user)	cmpi.c	r5, 0	ble	.L110:	lb	r6, [r4]	ldi	r7, 0	cmp.c	r6, r7	beq	.L11.L15:	addi	r7, 1	cmp.c	r7, r5	beq	.L231:	lb	r6, [r4,1]+	cmpi.c	r6, 0	bne	.L15.L23:	addri	r4, r7, 1	br	r3 .L11:	ldi	r4, 1	br	r3	.section .fixup, "ax"99:	ldi	r4, 0	br	r3 	.section __ex_table,"a"	.align 2	.word	0b, 99b	.word	1b, 99b	.previous 	.align 2ENTRY(__copy_tofrom_user)	cmpi.c	r6, 0	mv	r10,r6	beq	.L32	ldi	r9, 0.L34:	add	r6, r5, r90:	lbu	r8, [r6]	add	r7, r4, r91:	sb	r8, [r7]	addi	r9, 1	cmp.c	r9, r10	bne	.L34.L32:	ldi	r4, 0	br	r3	.section .fixup, "ax"99:	sub	r4, r10, r9	br	r3	.previous	.section __ex_table, "a"	.align	2	.word	0b, 99b	.word	1b, 99b	.previous 	.align 2ENTRY(__clear_user)	cmpi.c	r5, 0	beq	.L38	ldi	r6, 0	mv	r7, r6.L40:	addi	r6, 10:	sb	r7, [r4]+, 1	cmp.c	r6, r5	bne	.L40.L38:	ldi	r4, 0	br	r3 	.section .fixup, "ax"99:	br	r3	.previous	.section __ex_table, "a"	.align	2	.word	0b, 99b	.previous