P8000/WEGA/contrib/lcc/lib/libc/u8k/gen/memset.s

33 lines
463 B
ArmAsm

//
// memset - set an array of nchars starting at s1 to the character c.
// Return s1.
//
// Input: s1 - destination
// c - initializing character
// n - number of bytes to copy
//
.seg
sp := r15
SP := rr14
.psec
.code
_memset::
{
ldm r2,|_stkseg+4|(sp),#4 // rr2 = s1
// r4 = c
// r5 = n
cp r5,#0
ret le
ldb @rr2,rl4
dec r5,#1
ret z
ldl rr6,rr2 // destination
inc r7,#1
ldl rr0,rr2
ldirb @rr6,@rr2,r5
ldl rr2,rr0
ret
}