Skip to content

Instantly share code, notes, and snippets.

@exjam
Created March 4, 2017 15:11
Show Gist options
  • Save exjam/150ac4762e8adb91be5ec2c65a45476c to your computer and use it in GitHub Desktop.
Save exjam/150ac4762e8adb91be5ec2c65a45476c to your computer and use it in GitHub Desktop.
0: LOAD_ARG r1, 0
1: LOAD_ARG r2, 1
2: GET_ALIAS r3, a3
3: SLTSI r4, r3, 0
r3: a3
4: SGTSI r5, r3, 0
r3: a3
5: SEQI r6, r3, 0
r3: a3
6: GET_ALIAS r7, a15
7: BFEXT r8, r7, 31, 1
r7: a15
8: GET_ALIAS r9, a13
9: SLLI r10, r4, 3
r4: (signed) r3 < 0
10: SLLI r11, r5, 2
r5: (signed) r3 > 0
11: SLLI r12, r6, 1
r6: r3 == 0
12: OR r13, r10, r11
r10: r4 << 3
r11: r5 << 2
13: OR r14, r12, r8
r12: r6 << 1
r8: bfext(r7, 31, 1)
14: OR r15, r13, r14
r13: r10 | r11
r14: r12 | r8
15: BFINS r16, r9, r15, 28, 4
r9: a13
r15: r13 | r14
16: SET_ALIAS a13, r16
r16: bfins(r9, r15, 28, 4)
17: ANDI r17, r16, 536870912
r16: bfins(r9, r15, 28, 4)
18: GOTO_IF_Z r17, L4
r17: r16 & 536870912
19: LOAD r18, 812(r1)
r1: arg[0]
20: GOTO_IF_Z r18, L1
r18: @812(r1).i32
21: LOAD_IMM r19, 0x3ABBAC0
22: SET_ALIAS a1, r19
r19: 0x3ABBAC0
23: GOTO L5
24: LABEL L4
25: LOAD_IMM r20, 0x3ABBAA8
26: SET_ALIAS a1, r20
r20: 0x3ABBAA8
27: LOAD_IMM r21, 0x2B40000
28: NOP
29: LOAD_IMM r22, 0x3AC0000
30: NOP
31: ADDI r23, r21, 15316
r21: 0x2B40000
32: SET_ALIAS a4, r23
r23: r21 + 15316
33: LOAD_IMM r24, 2
34: SET_ALIAS a3, r24
r24: 2
35: ADDI r25, r22, -17936
r22: 0x3AC0000
36: SET_ALIAS a5, r25
r25: r22 + -17936
37: GET_ALIAS r26, a2
38: GET_ALIAS r27, a12
39: LOAD_IMM r28, 0x3ABBABC
40: SET_ALIAS a1, r28
r28: 0x3ABBABC
41: LOAD r29, 864(r1)
r1: arg[0]
42: CALL @r29, r1
r29: @864(r1).addr
r1: arg[0]
43: RETURN
44: LOAD_IMM r30, 0x3ABBAC0
45: SET_ALIAS a1, r30
r30: 0x3ABBAC0
46: LABEL L1
47: LOAD_IMM r31, 0
48: NOP
49: ADDI r32, r31, 0
r31: 0
50: SET_ALIAS a8, r32
r32: r31 + 0
51: GET_ALIAS r33, a15
52: SLTUI r34, r32, 0
r32: r31 + 0
53: BFINS r35, r33, r34, 29, 1
r33: a15
r34: r32 < 0
54: SET_ALIAS a15, r35
r35: bfins(r33, r34, 29, 1)
55: SLTSI r36, r32, 0
r32: r31 + 0
56: SGTSI r37, r32, 0
r32: r31 + 0
57: SEQI r38, r32, 0
r32: r31 + 0
58: BFEXT r39, r35, 31, 1
r35: bfins(r33, r34, 29, 1)
59: GET_ALIAS r40, a13
60: SLLI r41, r36, 3
r36: (signed) r32 < 0
61: SLLI r42, r37, 2
r37: (signed) r32 > 0
62: SLLI r43, r38, 1
r38: r32 == 0
63: OR r44, r41, r42
r41: r36 << 3
r42: r37 << 2
64: OR r45, r43, r39
r43: r38 << 1
r39: bfext(r35, 31, 1)
65: OR r46, r44, r45
r44: r41 | r42
r45: r43 | r39
66: BFINS r47, r40, r46, 28, 4
r40: a13
r46: r44 | r45
67: SET_ALIAS a13, r47
r47: bfins(r40, r46, 28, 4)
68: ANDI r48, r47, 536870912
r47: bfins(r40, r46, 28, 4)
69: GOTO_IF_Z r48, L7
r48: r47 & 536870912
70: LOAD r49, 812(r1)
r1: arg[0]
71: GOTO_IF_Z r49, L2
r49: @812(r1).i32
72: LOAD_IMM r50, 0x3ABBAF4
73: SET_ALIAS a1, r50
r50: 0x3ABBAF4
74: GOTO L5
75: LABEL L7
76: LOAD_IMM r51, 0x3ABBACC
77: SET_ALIAS a1, r51
r51: 0x3ABBACC
78: LOAD_IMM r52, 0
79: NOP
80: LOAD_IMM r53, 0x1000000
81: SET_ALIAS a7, r53
r53: 0x1000000
82: LOAD_IMM r54, 0
83: NOP
84: ADDI r55, r52, 0
r52: 0
85: SET_ALIAS a2, r55
r55: r52 + 0
86: GET_ALIAS r56, a15
87: SLTUI r57, r55, 0
r55: r52 + 0
88: BFINS r58, r56, r57, 29, 1
r56: a15
r57: r55 < 0
89: SET_ALIAS a15, r58
r58: bfins(r56, r57, 29, 1)
90: LOAD_IMM r59, 0x1000000
91: SET_ALIAS a6, r59
r59: 0x1000000
92: ADDI r60, r54, 0
r54: 0
93: SET_ALIAS a9, r60
r60: r54 + 0
94: ZCAST r61, r53
r53: 0x1000000
95: ADD r62, r2, r61
r2: arg[1]
r61: zcast(r53)
96: STORE_BR 18640(r62), r55
r62: r2 + r61
r55: r52 + 0
97: GET_ALIAS r63, a11
98: ADDI r64, r63, 1032
r63: a11
99: SET_ALIAS a3, r64
r64: r63 + 1032
100: ZCAST r65, r59
r59: 0x1000000
101: ADD r66, r2, r65
r2: arg[1]
r65: zcast(r59)
102: STORE_BR 18660(r66), r60
r66: r2 + r65
r60: r54 + 0
103: LOAD_IMM r67, 0x4000000
104: LOAD_IMM r68, 0x3ABBAF4
105: SET_ALIAS a14, r68
r68: 0x3ABBAF4
106: SET_ALIAS a1, r67
r67: 0x4000000
107: GOTO L5
108: LOAD_IMM r69, 0x3ABBAF4
109: SET_ALIAS a1, r69
r69: 0x3ABBAF4
110: LABEL L2
111: LOAD_IMM r70, 0
112: NOP
113: ADDI r71, r70, 0
r70: 0
114: SET_ALIAS a10, r71
r71: r70 + 0
115: GET_ALIAS r72, a15
116: SLTUI r73, r71, 0
r71: r70 + 0
117: BFINS r74, r72, r73, 29, 1
r72: a15
r73: r71 < 0
118: SET_ALIAS a15, r74
r74: bfins(r72, r73, 29, 1)
119: SLTSI r75, r71, 0
r71: r70 + 0
120: SGTSI r76, r71, 0
r71: r70 + 0
121: SEQI r77, r71, 0
r71: r70 + 0
122: BFEXT r78, r74, 31, 1
r74: bfins(r72, r73, 29, 1)
123: GET_ALIAS r79, a13
124: SLLI r80, r75, 3
r75: (signed) r71 < 0
125: SLLI r81, r76, 2
r76: (signed) r71 > 0
126: SLLI r82, r77, 1
r77: r71 == 0
127: OR r83, r80, r81
r80: r75 << 3
r81: r76 << 2
128: OR r84, r82, r78
r82: r77 << 1
r78: bfext(r74, 31, 1)
129: OR r85, r83, r84
r83: r80 | r81
r84: r82 | r78
130: BFINS r86, r79, r85, 28, 4
r79: a13
r85: r83 | r84
131: SET_ALIAS a13, r86
r86: bfins(r79, r85, 28, 4)
132: ANDI r87, r86, 536870912
r86: bfins(r79, r85, 28, 4)
133: GOTO_IF_Z r87, L8
r87: r86 & 536870912
134: LOAD r88, 812(r1)
r1: arg[0]
135: GOTO_IF_Z r88, L3
r88: @812(r1).i32
136: LOAD_IMM r89, 0x3ABBB04
137: SET_ALIAS a1, r89
r89: 0x3ABBB04
138: GOTO L5
139: LABEL L8
140: LOAD_IMM r90, 0x3ABBB00
141: SET_ALIAS a1, r90
r90: 0x3ABBB00
142: LOAD_IMM r91, 0x4000000
143: LOAD_IMM r92, 0x3ABBB04
144: SET_ALIAS a14, r92
r92: 0x3ABBB04
145: SET_ALIAS a1, r91
r91: 0x4000000
146: GOTO L5
147: LOAD_IMM r93, 0x3ABBB04
148: SET_ALIAS a1, r93
r93: 0x3ABBB04
149: LABEL L3
150: LOAD_IMM r94, 0x3ABB9F0
151: LOAD_IMM r95, 0x3ABBB08
152: SET_ALIAS a14, r95
r95: 0x3ABBB08
153: SET_ALIAS a1, r94
r94: 0x3ABB9F0
154: GOTO L5
155: LOAD_IMM r96, 0x3ABBB08
156: SET_ALIAS a1, r96
r96: 0x3ABBB08
157: LABEL L5
158: RETURN
Alias 1: int32 @ 4(r1)
Alias 2: int32 @ 8(r1)
Alias 3: int32 @ 20(r1)
Alias 4: int32 @ 24(r1)
Alias 5: int32 @ 28(r1)
Alias 6: int32 @ 32(r1)
Alias 7: int32 @ 40(r1)
Alias 8: int32 @ 44(r1)
Alias 9: int32 @ 52(r1)
Alias 10: int32 @ 56(r1)
Alias 11: int32 @ 124(r1)
Alias 12: int32 @ 128(r1)
Alias 13: int32 @ 656(r1)
Alias 14: int32 @ 664(r1)
Alias 15: int32 @ 660(r1)
Block 0: <none> --> [0,18] --> 3
Block 1: <none> --> [19,20] --> 5
Block 2: <none> --> [21,23] --> 17
Block 3: 0 --> [24,43] --> <none>
Block 4: <none> --> [44,45] --> <none>
Block 5: 1 --> [46,69] --> 8
Block 6: <none> --> [70,71] --> 10
Block 7: <none> --> [72,74] --> 17
Block 8: 5 --> [75,107] --> 17
Block 9: <none> --> [108,109] --> <none>
Block 10: 6 --> [110,133] --> 13
Block 11: <none> --> [134,135] --> 15
Block 12: <none> --> [136,138] --> 17
Block 13: 10 --> [139,146] --> 17
Block 14: <none> --> [147,148] --> <none>
Block 15: 11 --> [149,154] --> 17
Block 16: <none> --> [155,156] --> <none>
Block 17: 2,7,8,12,13,15 --> [157,158] --> <none>
0: LOAD_ARG r1, 0
1: LOAD_ARG r2, 1
2: GET_ALIAS r3, a3
3: SLTSI r4, r3, 0
r3: a3
4: SGTSI r5, r3, 0
r3: a3
5: SEQI r6, r3, 0
r3: a3
6: GET_ALIAS r7, a15
7: BFEXT r8, r7, 31, 1
r7: a15
8: GET_ALIAS r9, a13
9: SLLI r10, r4, 3
r4: (signed) r3 < 0
10: SLLI r11, r5, 2
r5: (signed) r3 > 0
11: SLLI r12, r6, 1
r6: r3 == 0
12: OR r13, r10, r11
r10: r4 << 3
r11: r5 << 2
13: OR r14, r12, r8
r12: r6 << 1
r8: bfext(r7, 31, 1)
14: OR r15, r13, r14
r13: r10 | r11
r14: r12 | r8
15: BFINS r16, r9, r15, 28, 4
r9: a13
r15: r13 | r14
16: SET_ALIAS a13, r16
r16: bfins(r9, r15, 28, 4)
17: ANDI r17, r16, 536870912
r16: bfins(r9, r15, 28, 4)
18: NOP
19: NOP
20: NOP
21: NOP
22: NOP
23: NOP
24: NOP
25: LOAD_IMM r20, 0x3ABBAA8
26: SET_ALIAS a1, r20
r20: 0x3ABBAA8
27: LOAD_IMM r21, 0x2B40000
28: NOP
29: LOAD_IMM r22, 0x3AC0000
30: NOP
31: ADDI r23, r21, 15316
r21: 0x2B40000
32: SET_ALIAS a4, r23
r23: r21 + 15316
33: LOAD_IMM r24, 2
34: SET_ALIAS a3, r24
r24: 2
35: ADDI r25, r22, -17936
r22: 0x3AC0000
36: SET_ALIAS a5, r25
r25: r22 + -17936
37: GET_ALIAS r26, a2
38: GET_ALIAS r27, a12
39: LOAD_IMM r28, 0x3ABBABC
40: SET_ALIAS a1, r28
r28: 0x3ABBABC
41: LOAD r29, 864(r1)
r1: arg[0]
42: CALL @r29, r1
r29: @864(r1).addr
r1: arg[0]
43: RETURN
44: NOP
45: NOP
46: NOP
47: NOP
48: NOP
49: NOP
50: NOP
51: NOP
52: NOP
53: NOP
54: NOP
55: NOP
56: NOP
57: NOP
58: NOP
59: NOP
60: NOP
61: NOP
62: NOP
63: NOP
64: NOP
65: NOP
66: NOP
67: NOP
68: NOP
69: NOP
70: NOP
71: NOP
72: NOP
73: NOP
74: NOP
75: NOP
76: NOP
77: NOP
78: NOP
79: NOP
80: NOP
81: NOP
82: NOP
83: NOP
84: NOP
85: NOP
86: NOP
87: NOP
88: NOP
89: NOP
90: NOP
91: NOP
92: NOP
93: NOP
94: NOP
95: NOP
96: NOP
97: NOP
98: NOP
99: NOP
100: NOP
101: NOP
102: NOP
103: NOP
104: NOP
105: NOP
106: NOP
107: NOP
108: NOP
109: NOP
110: NOP
111: NOP
112: NOP
113: NOP
114: NOP
115: NOP
116: NOP
117: NOP
118: NOP
119: NOP
120: NOP
121: NOP
122: NOP
123: NOP
124: NOP
125: NOP
126: NOP
127: NOP
128: NOP
129: NOP
130: NOP
131: NOP
132: NOP
133: NOP
134: NOP
135: NOP
136: NOP
137: NOP
138: NOP
139: NOP
140: NOP
141: NOP
142: NOP
143: NOP
144: NOP
145: NOP
146: NOP
147: NOP
148: NOP
149: NOP
150: NOP
151: NOP
152: NOP
153: NOP
154: NOP
155: NOP
156: NOP
157: NOP
158: NOP
Alias 1: int32 @ 4(r1)
Alias 2: int32 @ 8(r1)
Alias 3: int32 @ 20(r1)
Alias 4: int32 @ 24(r1)
Alias 5: int32 @ 28(r1)
Alias 6: int32 @ 32(r1)
Alias 7: int32 @ 40(r1)
Alias 8: int32 @ 44(r1)
Alias 9: int32 @ 52(r1)
Alias 10: int32 @ 56(r1)
Alias 11: int32 @ 124(r1)
Alias 12: int32 @ 128(r1)
Alias 13: int32 @ 656(r1)
Alias 14: int32 @ 664(r1)
Alias 15: int32 @ 660(r1)
Block 0: <none> --> [0,18] --> 3
Block 3: 0 --> [24,43] --> <none>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment