export function $c() { @start.1 %.23 =l alloc4 4 %.41 =l alloc4 4 @body.2 @do_body.3 %.1 =l loadl extern $p %.2 =w loadub %.1 %.3 =w extub %.2 jmp @switch_cond.6 @switch_case.8 %.4 =l loadl extern $d %.5 =w loadub %.4 %.6 =w add %.5, 1 storeb %.6, %.4 jmp @switch_join.7 @switch_case.9 %.7 =l loadl extern $d %.8 =w loadub %.7 %.9 =w sub %.8, 1 storeb %.9, %.7 jmp @switch_join.7 @switch_case.10 %.10 =l loadl extern $d %.11 =l sub %.10, 1 storel %.11, extern $d jmp @switch_join.7 @switch_case.11 %.12 =l loadl extern $d %.13 =l add %.12, 1 storel %.13, extern $d jmp @switch_join.7 @switch_case.12 %.14 =l loadl extern $d %.15 =w loadub %.14 %.16 =w extub %.15 %.17 =w call extern $putchar(w %.16) jmp @switch_join.7 @switch_case.13 %.18 =w call extern $getchar() %.19 =l loadl extern $d storeb %.18, %.19 jmp @switch_join.7 @switch_case.14 %.20 =l loadl extern $d %.21 =w loadub %.20 %.22 =w extub %.21 jnz %.22, @if_false.16, @if_true.15 @if_true.15 storew 1, %.23 @while_cond.17 %.24 =w loadw %.23 jnz %.24, @while_body.18, @while_join.19 @while_body.18 %.25 =l loadl extern $p %.26 =l add %.25, 1 storel %.26, extern $p %.27 =w loadub %.26 %.28 =w extub %.27 %.29 =w ceqw %.28, 91 jnz %.29, @if_true.20, @if_false.21 @if_true.20 %.30 =w loadw %.23 %.31 =w add %.30, 1 storew %.31, %.23 jmp @if_join.22 @if_false.21 %.32 =l loadl extern $p %.33 =w loadub %.32 %.34 =w extub %.33 %.35 =w ceqw %.34, 93 jnz %.35, @if_true.23, @if_false.24 @if_true.23 %.36 =w loadw %.23 %.37 =w sub %.36, 1 storew %.37, %.23 @if_false.24 @if_join.22 jmp @while_cond.17 @while_join.19 @if_false.16 jmp @switch_join.7 @switch_case.25 %.38 =l loadl extern $d %.39 =w loadub %.38 %.40 =w extub %.39 jnz %.40, @if_true.26, @if_false.27 @if_true.26 storew 1, %.41 @while_cond.28 %.42 =w loadw %.41 jnz %.42, @while_body.29, @while_join.30 @while_body.29 %.43 =l loadl extern $p %.44 =l sub %.43, 1 storel %.44, extern $p %.45 =w loadub %.44 %.46 =w extub %.45 %.47 =w ceqw %.46, 93 jnz %.47, @if_true.31, @if_false.32 @if_true.31 %.48 =w loadw %.41 %.49 =w add %.48, 1 storew %.49, %.41 jmp @if_join.33 @if_false.32 %.50 =l loadl extern $p %.51 =w loadub %.50 %.52 =w extub %.51 %.53 =w ceqw %.52, 91 jnz %.53, @if_true.34, @if_false.35 @if_true.34 %.54 =w loadw %.41 %.55 =w sub %.54, 1 storew %.55, %.41 @if_false.35 @if_join.33 jmp @while_cond.28 @while_join.30 @if_false.27 jmp @switch_join.7 @switch_default.36 jmp @switch_join.7 @switch_cond.6 %.56 =w ceqw %.3, 45 jnz %.56, @switch_case.9, @switch_ne.37 @switch_ne.37 %.57 =w cultw %.3, 45 jnz %.57, @switch_lt.38, @switch_gt.39 @switch_lt.38 %.58 =w ceqw %.3, 43 jnz %.58, @switch_case.8, @switch_ne.40 @switch_ne.40 %.59 =w cultw %.3, 43 jnz %.59, @switch_lt.41, @switch_gt.42 @switch_lt.41 jmp @switch_default.36 @switch_gt.42 jmp @switch_case.13 @switch_gt.39 %.60 =w ceqw %.3, 60 jnz %.60, @switch_case.10, @switch_ne.43 @switch_ne.43 %.61 =w cultw %.3, 60 jnz %.61, @switch_lt.44, @switch_gt.45 @switch_lt.44 %.62 =w ceqw %.3, 46 jnz %.62, @switch_case.12, @switch_ne.46 @switch_ne.46 %.63 =w cultw %.3, 46 jnz %.63, @switch_lt.47, @switch_gt.48 @switch_lt.47 jmp @switch_default.36 @switch_gt.48 jmp @switch_default.36 @switch_gt.45 %.64 =w ceqw %.3, 91 jnz %.64, @switch_case.14, @switch_ne.49 @switch_ne.49 %.65 =w cultw %.3, 91 jnz %.65, @switch_lt.50, @switch_gt.51 @switch_lt.50 %.66 =w ceqw %.3, 62 jnz %.66, @switch_case.11, @switch_ne.52 @switch_ne.52 %.67 =w cultw %.3, 62 jnz %.67, @switch_lt.53, @switch_gt.54 @switch_lt.53 jmp @switch_default.36 @switch_gt.54 jmp @switch_default.36 @switch_gt.51 %.68 =w ceqw %.3, 93 jnz %.68, @switch_case.25, @switch_ne.55 @switch_ne.55 %.69 =w cultw %.3, 93 jnz %.69, @switch_lt.56, @switch_gt.57 @switch_lt.56 jmp @switch_default.36 @switch_gt.57 jmp @switch_default.36 @switch_join.7 @do_cond.4 %.70 =l loadl extern $p %.71 =l add %.70, 1 storel %.71, extern $p %.72 =w loadub %.71 %.73 =w extub %.72 jnz %.73, @do_body.3, @do_join.5 @do_join.5 ret } export function w $main(w %.1, l %.3) { @start.58 %.2 =l alloc4 4 storew %.1, %.2 %.4 =l alloc8 8 storel %.3, %.4 @body.59 %.5 =w loadw %.2 %.6 =w csltw %.5, 2 jnz %.6, @if_true.60, @if_false.61 @if_true.60 ret 1 @if_false.61 %.7 =l loadl %.4 %.8 =l extsw 1 %.9 =l mul %.8, 8 %.10 =l add %.7, %.9 %.11 =l loadl %.10 storel %.11, extern $p storel extern $t, extern $d call extern $c() ret 0 } export data $p = align 8 { z 8 } export data $t = align 1 { z 65536 } export data $i = align 1 { z 1 } export data $d = align 8 { z 8 }