Welcome to mirror list, hosted at ThFree Co, Russian Federation.

strncpy.S « rx « machine « libc « newlib - cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e04922a59ad9ea2f59758a2d445d57aa2845ba8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
	.file	"strncpy.S"

	.section .text
	.global  _strncpy
	.type	 _strncpy,@function
_strncpy:
	mov	r1, r4		; Save a copy of the dest pointer.
	mov	r3, r5		; Save a copy of the byte count
	smovu	    		; Copy the bytes
	cmp	#0, r3		; If we have copied the number of bytes requested
	beq	1f  		;  then skip the next bit:
	add	r4, r5, r1	; Point to the last byte that we are supposed to write.
	sub	r3, r1		; Subtract the number of bytes left to be written.
	mov	#0, r2		; Fill the remaining bytes with NULs,
	sstr.b
1:
	mov	r4, r1		; Return the destination pointer
	rts