add LCC - a better C-Compiler for WEGA
This commit is contained in:
parent
136f50b5bd
commit
a456e1b61f
|
|
@ -0,0 +1,41 @@
|
||||||
|
//
|
||||||
|
// memcmp - compares its arguments, looking at the first n characters only,
|
||||||
|
// and returns an integer less than, equal to, or greater than 0,
|
||||||
|
// according as s1 is lexicographically less than, equal to, or
|
||||||
|
// greater than s2.
|
||||||
|
//
|
||||||
|
// Input: s1 and s2 - the strings to compare
|
||||||
|
// n - maximum number of bytes to compare
|
||||||
|
//
|
||||||
|
// Output: 0 if s1 == s2
|
||||||
|
// <0 if s1 < s2
|
||||||
|
// >0 if s1 > s2
|
||||||
|
//
|
||||||
|
.seg
|
||||||
|
|
||||||
|
sp := r15
|
||||||
|
SP := rr14
|
||||||
|
|
||||||
|
.psec
|
||||||
|
.code
|
||||||
|
_memcmp::
|
||||||
|
{
|
||||||
|
ldm r2,|_stkseg+4|(sp),#5 // rr2 = s1
|
||||||
|
// rr4 = s2
|
||||||
|
// r6 = n
|
||||||
|
cp r7,#0
|
||||||
|
jr le,~reteq
|
||||||
|
cpsirb @rr2,@rr4,r6,ne
|
||||||
|
jr z,~noteq
|
||||||
|
~reteq: // return(0) (s1 == s2)
|
||||||
|
xor r2,r2
|
||||||
|
ret
|
||||||
|
~noteq:
|
||||||
|
jr ult,~retlt
|
||||||
|
~retgt: // return(1) (s1 > s2)
|
||||||
|
ldk r2,#1
|
||||||
|
ret
|
||||||
|
~retlt: // return(-1) (s1 < s2)
|
||||||
|
ld r2,#-1
|
||||||
|
ret
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue