add LCC - a better C-Compiler for WEGA
This commit is contained in:
parent
fc60ef4050
commit
debf3d71a7
|
|
@ -0,0 +1,39 @@
|
||||||
|
//
|
||||||
|
// memccpy - copies characters from memory area s2 into s1, stopping after
|
||||||
|
// the first occurrence of character c has been copied, or after
|
||||||
|
// n characters have been copied, whichever comes first. It
|
||||||
|
// returns a pointer to the character after the copy of c in s1
|
||||||
|
// or a NULL pointer if c was not found in the first n characters
|
||||||
|
// of s2.
|
||||||
|
//
|
||||||
|
.seg
|
||||||
|
|
||||||
|
sp := r15
|
||||||
|
SP := rr14
|
||||||
|
|
||||||
|
.psec
|
||||||
|
.code
|
||||||
|
_memccpy::
|
||||||
|
{
|
||||||
|
ldm r2,|_stkseg+4|(sp),#6 // rr2 = s1
|
||||||
|
// rr4 = s2
|
||||||
|
// r6 = c
|
||||||
|
// r7 = n
|
||||||
|
cp r7,#0
|
||||||
|
jr le,~ret00
|
||||||
|
ldl rr0,rr4 // save s2
|
||||||
|
cpirb rl6,@rr4,r7,eq
|
||||||
|
jr nz,~ret0
|
||||||
|
subl rr4,rr0 // new byte count
|
||||||
|
ld r7,r5
|
||||||
|
ldl rr4,rr0
|
||||||
|
ldirb @rr2,@rr4,r7
|
||||||
|
ret
|
||||||
|
~ret0:
|
||||||
|
ldl rr4,rr0
|
||||||
|
ld r7,|_stkseg+14|(sp)
|
||||||
|
ldirb @rr2,@rr4,r7
|
||||||
|
~ret00: // return ((char *)0)
|
||||||
|
subl rr2,rr2
|
||||||
|
ret
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue