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