1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
.text
.file "/tmp/tmplu1mMq/a.out.bc"
.globl main
.type main,@function
main: # @main
.param i32, i32
.result i32
# BB#0:
i32.const $push0=, .str
call $discard=, puts, $pop0
i32.const $push1=, 31
i32.shr_s $push2=, $0, $pop1
i32.const $push3=, 30
i32.shr_u $push4=, $pop2, $pop3
i32.add $push5=, $0, $pop4
i32.const $push6=, -4
i32.and $push7=, $pop5, $pop6
i32.sub $push8=, $0, $pop7
i32.const $push9=, 1
i32.ne $push10=, $pop8, $pop9
block .LBB0_5
block .LBB0_4
br_if $pop10, .LBB0_4
.LBB0_1: # %.preheader
# =>This Inner Loop Header: Depth=1
loop .LBB0_4
i32.const $push12=, 10
i32.gt_s $push13=, $0, $pop12
i32.add $0=, $pop13, $0
i32.const $push14=, 5
i32.rem_s $push15=, $0, $pop14
i32.const $push16=, 3
i32.ne $push17=, $pop15, $pop16
block .LBB0_3
br_if $pop17, .LBB0_3
# BB#2: # in Loop: Header=.LBB0_1 Depth=1
i32.const $push18=, 111
i32.rem_s $push19=, $0, $pop18
i32.add $0=, $pop19, $0
.LBB0_3: # in Loop: Header=.LBB0_1 Depth=1
i32.const $push20=, 7
i32.rem_s $push21=, $0, $pop20
i32.const $push22=, 0
i32.eq $push23=, $pop21, $pop22
br_if $pop23, .LBB0_5
br .LBB0_1
.LBB0_4:
i32.const $push11=, -12
i32.add $0=, $0, $pop11
i32.const $discard=, main # just take address for testing
.LBB0_5: # %.loopexit
return $0
.Lfunc_end0:
.size main, .Lfunc_end0-main
.type .str,@object # @.str
.data
.str:
.asciz "hello, world!\n"
.size .str, 15
.type a2,@object # @a2
.globl a2
a2:
.int8 118 # 0x76
.ascii "cq"
.size a2, 3 # surprisingly large size
.type a3,@object # @a3
.globl a3
a3:
.int32 a2-10
|