quebex

A software analysis framework built around the QBE intermediate language

git clone https://git.8pit.net/quebex.git

 1function w $first_divisor.L2(w %a.L3.val)
 2{
 3@.L24
 4	%a.L3 =l	alloc4	4
 5	%i.L5 =l	alloc4	4
 6		storew	%a.L3.val,%a.L3
 7		storew	2,%i.L5
 8		jmp	@.L5
 9@.L6
10	%.L11 =w	loaduw	%a.L3
11	%.L12 =w	loaduw	%i.L5
12	%.L13 =w	urem	%.L11,%.L12
13	%.L14 =w	ceqw	%.L13,0
14	%.L15 =w	ceqw	%.L14,0
15		jnz	%.L15,@.L7,@.L10
16@.L10
17	%.L16 =w	loaduw	%i.L5
18		ret	%.L16
19@.L7
20@.L8
21	%.L17 =w	loaduw	%i.L5
22	%.L18 =w	add	%.L17,1
23		storew	%.L18,%i.L5
24@.L5
25	%.L19 =w	loaduw	%i.L5
26	%.L20 =w	loaduw	%a.L3
27	%.L21 =w	cultw	%.L19,%.L20
28	%.L22 =w	cnew	%.L21,0
29		jnz	%.L22,@.L6,@.L9
30@.L9
31	%.L23 =w	loaduw	%a.L3
32		ret	%.L23
33}
34export function w $entry(w %a.L12.val)
35{
36@.L51
37	%a.L12 =l	alloc4	4
38	%b.L14 =l	alloc4	4
39	%c.L17 =l	alloc4	4
40		storew	%a.L12.val,%a.L12
41	%.L37 =w	loaduw	%a.L12
42	%.L38 =w	culew	%.L37,50
43	%.L39 =w	ceqw	%.L38,0
44		jnz	%.L39,@.L27,@.L34
45@.L34
46	%.L40 =w	loaduw	%a.L12
47		storew	%.L40,%b.L14
48	%.L41 =w	loaduw	%b.L14
49	%.L42 =w	culew	%.L41,1
50	%.L43 =w	ceqw	%.L42,0
51		jnz	%.L43,@.L29,@.L35
52@.L35
53		ret	0
54@.L52
55		jmp	@.L30
56@.L29
57	%.L44 =w	loaduw	%b.L14
58		storew	%.L44,%c.L17
59	%.L45 =w	loaduw	%c.L17
60	%.L46 =w	call	$first_divisor.L2(w %.L45)
61	%.L48 =w	loaduw	%c.L17
62	%.L49 =w	ceqw	%.L46,%.L48
63	%.L50 =w	ceqw	%.L49,0
64		jnz	%.L50,@.L32,@.L36
65@.L36
66		ret	1
67@.L53
68		jmp	@.L33
69@.L32
70		ret	0
71@.L33
72@.L30
73@.L27
74		ret	0
75}