1export
2function $bubble_sort(l %.1) {
3@start.1
4 %.2 =l alloc8 8
5 storel %.1, %.2
6 %.3 =l alloc4 1
7 %.9 =l alloc4 4
8 %.27 =l alloc4 4
9 jmp @body.2
10@body.2
11 %.4 =w cnew 0, 0
12 storeb %.4, %.3
13 jmp @while_cond.3
14@while_cond.3
15 %.5 =w loadub %.3
16 %.6 =w extub %.5
17 %.7 =w ceqw %.6, 0
18 jnz %.7, @while_body.4, @while_join.5
19@while_body.4
20 %.8 =w cnew 1, 0
21 storeb %.8, %.3
22 storew 0, %.9
23 jmp @while_body.4
24@for_cond.6
25 %.10 =w loadw %.9
26 %.11 =w sub 6, 1
27 %.12 =w csltw %.10, %.11
28 jnz %.12, @for_body.7, @for_join.9
29@for_body.7
30 %.13 =l loadl %.2
31 %.14 =w loadw %.9
32 %.15 =l extsw %.14
33 %.16 =l mul %.15, 4
34 %.17 =l add %.13, %.16
35 %.18 =w loadw %.17
36 %.19 =l loadl %.2
37 %.20 =w loadw %.9
38 %.21 =w add %.20, 1
39 %.22 =l extsw %.21
40 %.23 =l mul %.22, 4
41 %.24 =l add %.19, %.23
42 %.25 =w loadw %.24
43 %.26 =w csgtw %.18, %.25
44 jnz %.26, @if_true.10, @if_false.11
45@if_true.10
46 %.28 =l loadl %.2
47 %.29 =w loadw %.9
48 %.30 =l extsw %.29
49 %.31 =l mul %.30, 4
50 %.32 =l add %.28, %.31
51 %.33 =w loadw %.32
52 storew %.33, %.27
53 %.34 =l loadl %.2
54 %.35 =w loadw %.9
55 %.36 =w add %.35, 1
56 %.37 =l extsw %.36
57 %.38 =l mul %.37, 4
58 %.39 =l add %.34, %.38
59 %.40 =w loadw %.39
60 %.41 =l loadl %.2
61 %.42 =w loadw %.9
62 %.43 =l extsw %.42
63 %.44 =l mul %.43, 4
64 %.45 =l add %.41, %.44
65 storew %.40, %.45
66 %.46 =w loadw %.27
67 %.47 =l loadl %.2
68 %.48 =w loadw %.9
69 %.49 =w add %.48, 1
70 %.50 =l extsw %.49
71 %.51 =l mul %.50, 4
72 %.52 =l add %.47, %.51
73 storew %.46, %.52
74 %.53 =w cnew 0, 0
75 storeb %.53, %.3
76 jmp @if_false.11
77@if_false.11
78 jmp @for_cont.8
79@for_cont.8
80 %.54 =w loadw %.9
81 %.55 =w add %.54, 1
82 storew %.55, %.9
83 jmp @for_cond.6
84@for_join.9
85 jmp @while_cond.3
86@while_join.5
87 ret
88}
89export
90function w $main() {
91@start.12
92 %.1 =l alloc4 24
93 jmp @body.13
94@body.13
95 storew 1, %.1
96 %.2 =l add %.1, 4
97 storew 2, %.2
98 %.3 =l add %.1, 8
99 storew 3, %.3
100 %.4 =l add %.1, 12
101 storew 4, %.4
102 %.5 =l add %.1, 16
103 storew 5, %.5
104 %.6 =l add %.1, 20
105 storew 6, %.6
106 call $bubble_sort(l %.1)
107 ret 0
108}