| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- # the C strspn function generated by scc
- export function w $strspn_(l %s1.81.val,l %s2.82.val)
- {
- @.64
- %s1.81 =l alloc8 8
- %s2.82 =l alloc8 8
- %n.83 =l alloc4 4
- %c.84 =l alloc4 4
- %p.85 =l alloc8 8
- storel %s1.81.val,%s1.81
- storel %s2.82.val,%s2.82
- storew 0,%n.83
- jmp @.27
- @.28
- %.39 =l loadl %s2.82
- storel %.39,%p.85
- jmp @.29
- @.30
- @.31
- %.40 =l loadl %p.85
- %.41 =l add %.40,1
- storel %.41,%p.85
- @.29
- %.43 =l loadl %p.85
- %.44 =w loadsb %.43
- %.45 =w extsb %.44
- %.46 =w cnew %.45,0
- jnz %.46,@.42,@.36
- @.42
- %.47 =l loadl %p.85
- %.48 =w loadsb %.47
- %.49 =w extsb %.48
- %.50 =w loadsw %c.84
- %.51 =w cnew %.49,%.50
- jnz %.51,@.30,@.36
- @.36
- @.32
- %.52 =l loadl %p.85
- %.53 =w loadsb %.52
- %.54 =w extsb %.53
- %.55 =w cnew %.54,0
- jnz %.55,@.33,@.37
- @.37
- jmp @.34
- @.33
- @.35
- %.56 =w loaduw %n.83
- %.57 =w add %.56,1
- storew %.57,%n.83
- @.27
- %.58 =l loadl %s1.81
- %.59 =l add %.58,1
- storel %.59,%s1.81
- %.60 =w loadsb %.58
- %.61 =w extsb %.60
- storew %.61,%c.84
- %.62 =w cnew %.61,0
- jnz %.62,@.28,@.38
- @.38
- @.34
- %.63 =w loaduw %n.83
- ret %.63
- }
- # >>> driver
- # extern unsigned strspn_(const char *, const char *);
- # int main() {
- # return !(
- # strspn_("", "abc") == 0 &&
- # strspn_("abc", "") == 0 &&
- # strspn_("abc", "bac") == 3 &&
- # strspn_("xabc", "bac") == 0 &&
- # strspn_("axbc", "bca") == 1
- # );
- # }
- # <<<
|