# the C strcmp function generated by scc export function w $strcmp(l %s1.3.val,l %s2.5.val){@.37 %s1.3 =l alloc8 8 %s2.5 =l alloc8 8 storel %s1.3.val,%s1.3 storel %s2.5.val,%s2.5 jmp @.5@.6 %.9 =l loadl %s1.3 %.10 =l add %.9,1 storel %.10,%s1.3 %.11 =l loadl %s2.5 %.12 =l add %.11,1 storel %.12,%s2.5@.5 %.15 =l loadl %s1.3 %.16 =w loadsb %.15 %.17 =w extsb %.16 %.18 =w cnew %.17,0 jnz %.18,@.14,@.8@.14 %.19 =l loadl %s2.5 %.20 =w loadsb %.19 %.21 =w extsb %.20 %.22 =w cnew %.21,0 jnz %.22,@.13,@.8@.13 %.23 =l loadl %s1.3 %.24 =w loadsb %.23 %.25 =w extsb %.24 %.26 =l loadl %s2.5 %.27 =w loadsb %.26 %.28 =w extsb %.27 %.29 =w ceqw %.25,%.28 jnz %.29,@.6,@.8@.8@.7 %.30 =l loadl %s1.3 %.31 =w loadub %.30 %.32 =w extub %.31 %.33 =l loadl %s2.5 %.34 =w loadub %.33 %.35 =w extub %.34 %.36 =w sub %.32,%.35 ret %.36} # >>> driver# extern int strcmp(const char *, const char *);# int main() {# char a[] = "Hello world";# return !(# strcmp(a, a) == 0 &&# strcmp("aaa", "aab") < 0 &&# strcmp("..cnn", "..bbc") > 0 &&# strcmp(a, "Hellp ...") < 0 &&# strcmp(a, "Hello vorld") > 0# );# }# <<<
# the C strcmp function generated by scc
export function w $strcmp(l %s1.3.val,l %s2.5.val)
{
@.37
%s1.3 =l alloc8 8
%s2.5 =l alloc8 8
storel %s1.3.val,%s1.3
storel %s2.5.val,%s2.5
jmp @.5
@.6
%.9 =l loadl %s1.3
%.10 =l add %.9,1
storel %.10,%s1.3
%.11 =l loadl %s2.5
%.12 =l add %.11,1
storel %.12,%s2.5
@.5
%.15 =l loadl %s1.3
%.16 =w loadsb %.15
%.17 =w extsb %.16
%.18 =w cnew %.17,0
jnz %.18,@.14,@.8
@.14
%.19 =l loadl %s2.5
%.20 =w loadsb %.19
%.21 =w extsb %.20
%.22 =w cnew %.21,0
jnz %.22,@.13,@.8
@.13
%.23 =l loadl %s1.3
%.24 =w loadsb %.23
%.25 =w extsb %.24
%.26 =l loadl %s2.5
%.27 =w loadsb %.26
%.28 =w extsb %.27
%.29 =w ceqw %.25,%.28
jnz %.29,@.6,@.8
@.8
@.7
%.30 =l loadl %s1.3
%.31 =w loadub %.30
%.32 =w extub %.31
%.33 =l loadl %s2.5
%.34 =w loadub %.33
%.35 =w extub %.34
%.36 =w sub %.32,%.35
ret %.36
}
# >>> driver
# extern int strcmp(const char *, const char *);
# int main() {
# char a[] = "Hello world";
# return !(
# strcmp(a, a) == 0 &&
# strcmp("aaa", "aab") < 0 &&
# strcmp("..cnn", "..bbc") > 0 &&
# strcmp(a, "Hellp ...") < 0 &&
# strcmp(a, "Hello vorld") > 0
# );
# }
# <<<