1 /* This C file is generated by NIT to compile module icode___icode_tools. */
2 #include "icode___icode_tools._sep.h"
3 void icode___icode_tools___ICodeVisitor___visit_iregister_read(val_t p0
, val_t p1
, val_t p2
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
6 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
7 fra
.me
.file
= LOCATE_icode___icode_tools
;
9 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_iregister_read
;
12 fra
.me
.REG
[0] = NIT_NULL
;
13 fra
.me
.REG
[1] = NIT_NULL
;
14 fra
.me
.REG
[2] = NIT_NULL
;
18 stack_frame_head
= fra
.me
.prev
;
21 void icode___icode_tools___ICodeVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
22 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
24 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
25 fra
.me
.file
= LOCATE_icode___icode_tools
;
27 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_iregister_write
;
30 fra
.me
.REG
[0] = NIT_NULL
;
31 fra
.me
.REG
[1] = NIT_NULL
;
32 fra
.me
.REG
[2] = NIT_NULL
;
36 stack_frame_head
= fra
.me
.prev
;
39 val_t
icode___icode_tools___ICodeVisitor___current_icode(val_t p0
){
40 struct {struct stack_frame_t me
;} fra
;
42 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
43 fra
.me
.file
= LOCATE_icode___icode_tools
;
45 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___current_icode
;
48 fra
.me
.REG
[0] = NIT_NULL
;
50 /* ./icode//icode_tools.nit:29 */
51 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]);
52 stack_frame_head
= fra
.me
.prev
;
55 void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0
, val_t p1
){
56 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
60 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
61 fra
.me
.file
= LOCATE_icode___icode_tools
;
63 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_icode
;
66 fra
.me
.REG
[0] = NIT_NULL
;
67 fra
.me
.REG
[1] = NIT_NULL
;
68 fra
.me
.REG
[2] = NIT_NULL
;
69 fra
.me
.REG
[3] = NIT_NULL
;
70 fra
.me
.REG
[4] = NIT_NULL
;
73 /* ./icode//icode_tools.nit:37 */
74 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
75 if (UNTAG_Bool(REGB0
)) {
77 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
78 if (UNTAG_Bool(REGB1
)) {
79 REGB1
= TAG_Bool(false);
82 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
86 if (UNTAG_Bool(REGB0
)) {
89 /* ./icode//icode_tools.nit:38 */
90 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___ISeq
, ID_icode___icode_base___ISeq
)) /*cast ISeq*/;
91 if (UNTAG_Bool(REGB0
)) {
92 /* ./icode//icode_tools.nit:39 */
93 fra
.me
.REG
[2] = ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]);
94 /* ./icode//icode_tools.nit:40 */
95 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
96 if (UNTAG_Bool(REGB0
)) {
97 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 40);
99 fra
.me
.REG
[3] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
100 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
101 /* ./icode//icode_tools.nit:41 */
103 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
104 if (UNTAG_Bool(REGB0
)) {
105 /* ./icode//icode_tools.nit:42 */
106 ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
107 /* ./icode//icode_tools.nit:43 */
108 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
109 /* ./icode//icode_tools.nit:44 */
110 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
111 /* ./icode//icode_tools.nit:45 */
112 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
114 /* ./icode//icode_tools.nit:41 */
119 /* ./icode//icode_tools.nit:47 */
120 ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
122 /* ./icode//icode_tools.nit:48 */
123 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___IIf
, ID_icode___icode_base___IIf
)) /*cast IIf*/;
124 if (UNTAG_Bool(REGB0
)) {
125 /* ./icode//icode_tools.nit:49 */
126 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
127 if (UNTAG_Bool(REGB0
)) {
128 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 49);
130 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
131 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
132 /* ./icode//icode_tools.nit:50 */
133 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
134 if (UNTAG_Bool(REGB0
)) {
135 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 50);
137 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
138 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
139 /* ./icode//icode_tools.nit:51 */
140 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
141 if (UNTAG_Bool(REGB0
)) {
142 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 51);
144 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
145 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
147 /* ./icode//icode_tools.nit:52 */
148 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___IOnce
, ID_icode___icode_base___IOnce
)) /*cast IOnce*/;
149 if (UNTAG_Bool(REGB0
)) {
150 /* ./icode//icode_tools.nit:53 */
151 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
152 if (UNTAG_Bool(REGB0
)) {
153 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 53);
155 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
156 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
158 /* ./icode//icode_tools.nit:54 */
159 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___ICode1
, ID_icode___icode_base___ICode1
)) /*cast ICode1*/;
160 if (UNTAG_Bool(REGB0
)) {
161 /* ./icode//icode_tools.nit:55 */
162 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
163 if (UNTAG_Bool(REGB0
)) {
164 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 55);
166 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
167 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
169 /* ./icode//icode_tools.nit:56 */
170 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___ICode2
, ID_icode___icode_base___ICode2
)) /*cast ICode2*/;
171 if (UNTAG_Bool(REGB0
)) {
172 /* ./icode//icode_tools.nit:57 */
173 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
174 if (UNTAG_Bool(REGB0
)) {
175 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 57);
177 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
178 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
179 /* ./icode//icode_tools.nit:58 */
180 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
181 if (UNTAG_Bool(REGB0
)) {
182 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 58);
184 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
185 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
187 /* ./icode//icode_tools.nit:59 */
188 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___ICodeN
, ID_icode___icode_base___ICodeN
)) /*cast ICodeN*/;
189 if (UNTAG_Bool(REGB0
)) {
190 /* ./icode//icode_tools.nit:60 */
191 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
192 if (UNTAG_Bool(REGB0
)) {
193 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 60);
195 fra
.me
.REG
[2] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
196 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[2])(fra
.me
.REG
[2], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ICodeVisitor___visit_icode_3
));
197 /* ./icode//icode_tools.nit:63 */
198 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
199 if (UNTAG_Bool(REGB0
)) {
200 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 63);
202 fra
.me
.REG
[2] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
203 /* ./icode//icode_tools.nit:64 */
204 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_icode___icode_base___IClosCall
, ID_icode___icode_base___IClosCall
)) /*cast IClosCall*/;
205 if (UNTAG_Bool(REGB0
)) {
206 /* ./icode//icode_tools.nit:65 */
207 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
208 if (UNTAG_Bool(REGB0
)) {
209 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 65);
211 fra
.me
.REG
[3] = CALL_icode___icode_base___IClosCall___break_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
212 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
214 /* ./icode//icode_tools.nit:67 */
215 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
216 if (UNTAG_Bool(REGB0
)) {
218 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
219 if (UNTAG_Bool(REGB1
)) {
220 REGB1
= TAG_Bool(false);
223 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
227 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
228 if (UNTAG_Bool(REGB0
)) {
229 /* ./icode//icode_tools.nit:68 */
230 CALL_icode___icode_tools___ICodeVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
238 /* ./icode//icode_tools.nit:71 */
239 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
240 if (UNTAG_Bool(REGB0
)) {
241 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 71);
243 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
244 /* ./icode//icode_tools.nit:72 */
245 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
246 if (UNTAG_Bool(REGB0
)) {
248 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
249 if (UNTAG_Bool(REGB1
)) {
250 REGB1
= TAG_Bool(false);
253 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
257 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
258 if (UNTAG_Bool(REGB0
)) {
259 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_write(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
262 stack_frame_head
= fra
.me
.prev
;
265 void OC_icode___icode_tools___ICodeVisitor___visit_icode_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
266 struct {struct stack_frame_t me
;} fra
;
269 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
270 fra
.me
.file
= LOCATE_icode___icode_tools
;
272 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_icode
;
273 fra
.me
.has_broke
= 0;
275 fra
.me
.REG
[0] = NIT_NULL
;
276 fra
.me
.closure_ctx
= closctx_param
;
277 fra
.me
.closure_funs
= CREG
;
280 /* ./icode//icode_tools.nit:61 */
281 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(closctx
->REG
[0])(closctx
->REG
[0], closctx
->REG
[1], fra
.me
.REG
[0]);
282 stack_frame_head
= fra
.me
.prev
;
285 void icode___icode_tools___ICodeVisitor___visit_closure_defs(val_t p0
, val_t p1
){
286 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
288 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
289 fra
.me
.file
= LOCATE_icode___icode_tools
;
291 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_closure_defs
;
292 fra
.me
.has_broke
= 0;
294 fra
.me
.REG
[0] = NIT_NULL
;
295 fra
.me
.REG
[1] = NIT_NULL
;
298 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ICodeVisitor___visit_closure_defs_1
));
299 stack_frame_head
= fra
.me
.prev
;
302 void OC_icode___icode_tools___ICodeVisitor___visit_closure_defs_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
303 struct {struct stack_frame_t me
;} fra
;
308 /* ./icode//icode_tools.nit:79 */
309 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
310 fra
.me
.file
= LOCATE_icode___icode_tools
;
312 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_closure_defs
;
313 fra
.me
.has_broke
= 0;
315 fra
.me
.REG
[0] = NIT_NULL
;
316 fra
.me
.closure_ctx
= closctx_param
;
317 fra
.me
.closure_funs
= CREG
;
320 /* ./icode//icode_tools.nit:80 */
321 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
322 if (UNTAG_Bool(REGB0
)) {
324 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
325 if (UNTAG_Bool(REGB1
)) {
326 REGB1
= TAG_Bool(false);
329 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
333 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
334 if (UNTAG_Bool(REGB0
)) {
335 /* ./icode//icode_tools.nit:81 */
336 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
338 stack_frame_head
= fra
.me
.prev
;
341 void icode___icode_tools___ICodeVisitor___visit_iroutine(val_t p0
, val_t p1
){
342 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
344 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
345 fra
.me
.file
= LOCATE_icode___icode_tools
;
347 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_iroutine
;
348 fra
.me
.has_broke
= 0;
350 fra
.me
.REG
[0] = NIT_NULL
;
351 fra
.me
.REG
[1] = NIT_NULL
;
354 /* ./icode//icode_tools.nit:91 */
355 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
356 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
357 stack_frame_head
= fra
.me
.prev
;
360 void icode___icode_tools___ICodeVisitor___init(val_t p0
, int* init_table
){
361 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_icode___icode_tools___ICodeVisitor
].i
;
362 struct {struct stack_frame_t me
;} fra
;
364 if (init_table
[itpos0
]) return;
365 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
366 fra
.me
.file
= LOCATE_icode___icode_tools
;
368 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___init
;
369 fra
.me
.has_broke
= 0;
371 stack_frame_head
= fra
.me
.prev
;
372 init_table
[itpos0
] = 1;
375 val_t
icode___icode_tools___ICodeBuilder___inline_routine(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
376 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
384 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
385 fra
.me
.file
= LOCATE_icode___icode_tools
;
387 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeBuilder___inline_routine
;
388 fra
.me
.has_broke
= 0;
389 fra
.me
.REG_size
= 10;
390 fra
.me
.REG
[0] = NIT_NULL
;
391 fra
.me
.REG
[1] = NIT_NULL
;
392 fra
.me
.REG
[2] = NIT_NULL
;
393 fra
.me
.REG
[3] = NIT_NULL
;
394 fra
.me
.REG
[4] = NIT_NULL
;
395 fra
.me
.REG
[5] = NIT_NULL
;
396 fra
.me
.REG
[6] = NIT_NULL
;
397 fra
.me
.REG
[7] = NIT_NULL
;
398 fra
.me
.REG
[8] = NIT_NULL
;
399 fra
.me
.REG
[9] = NIT_NULL
;
404 /* ./icode//icode_tools.nit:100 */
405 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
406 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[4]));
407 if (UNTAG_Bool(REGB0
)) {
409 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
412 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
413 if (UNTAG_Bool(REGB0
)) {
415 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 100);
417 /* ./icode//icode_tools.nit:101 */
418 fra
.me
.REG
[4] = NEW_ICodeDupContext_icode___icode_tools___ICodeDupContext___init(fra
.me
.REG
[0]);
419 /* ./icode//icode_tools.nit:102 */
420 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
421 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
422 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
423 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
424 if (UNTAG_Bool(REGB2
)) {
426 /* ./../lib/standard//kernel.nit:227 */
427 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
428 /* ./icode//icode_tools.nit:102 */
431 if (UNTAG_Bool(REGB2
)) {
433 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 102);
435 /* ./icode//icode_tools.nit:103 */
436 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
437 /* ./icode//icode_tools.nit:104 */
438 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
439 if (UNTAG_Bool(REGB2
)) {
441 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
442 if (UNTAG_Bool(REGB1
)) {
443 REGB1
= TAG_Bool(false);
446 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
450 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
451 if (UNTAG_Bool(REGB2
)) {
452 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
453 if (UNTAG_Bool(REGB2
)) {
454 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 104);
456 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
461 /* ./icode//icode_tools.nit:105 */
462 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
463 if (UNTAG_Bool(REGB1
)) {
465 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
466 if (UNTAG_Bool(REGB0
)) {
467 REGB0
= TAG_Bool(false);
470 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
474 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
475 if (UNTAG_Bool(REGB1
)) {
476 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
477 if (UNTAG_Bool(REGB1
)) {
478 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 105);
480 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
485 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
486 if (UNTAG_Bool(REGB0
)) {
488 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
490 /* ./../lib/standard//kernel.nit:231 */
491 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<=UNTAG_Int(REGB1
));
492 /* ./icode//icode_tools.nit:106 */
493 if (UNTAG_Bool(REGB0
)) {
495 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 106);
497 /* ./icode//icode_tools.nit:109 */
498 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[4])!=NIT_NULL
);
499 if (UNTAG_Bool(REGB0
)) {
501 nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_tools
, 109);
503 fra
.me
.REG
[6] = ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[4]);
504 /* ./icode//icode_tools.nit:110 */
505 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
506 /* ./icode//icode_tools.nit:111 */
507 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
508 if (UNTAG_Bool(REGB0
)) {
510 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
511 if (UNTAG_Bool(REGB3
)) {
512 REGB3
= TAG_Bool(false);
515 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
519 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
520 if (UNTAG_Bool(REGB0
)) {
521 /* ./icode//icode_tools.nit:112 */
522 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
523 if (UNTAG_Bool(REGB0
)) {
524 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 112);
526 fra
.me
.REG
[8] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
527 fra
.me
.REG
[8] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
528 /* ./icode//icode_tools.nit:113 */
529 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
530 /* ./icode//icode_tools.nit:114 */
531 fra
.me
.REG
[7] = fra
.me
.REG
[8];
533 /* ./icode//icode_tools.nit:116 */
534 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___registers(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
535 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[8])(fra
.me
.REG
[8], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ICodeBuilder___inline_routine_1
));
536 /* ./icode//icode_tools.nit:120 */
538 REGB3
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
539 /* ./../lib/standard//kernel.nit:352 */
541 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
542 if (UNTAG_Bool(REGB4
)) {
544 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
546 /* ./../lib/standard//kernel.nit:232 */
547 REGB4
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
548 /* ./../lib/standard//kernel.nit:352 */
549 if (UNTAG_Bool(REGB4
)) {
550 /* ./icode//icode_tools.nit:120 */
552 /* ./icode//icode_tools.nit:123 */
553 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
554 fra
.me
.REG
[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB4
);
555 fra
.me
.REG
[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
556 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8], fra
.me
.REG
[9]);
557 /* ./../lib/standard//kernel.nit:354 */
559 /* ./../lib/standard//kernel.nit:235 */
560 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
561 /* ./../lib/standard//kernel.nit:354 */
564 /* ./../lib/standard//kernel.nit:352 */
569 /* ./icode//icode_tools.nit:128 */
570 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___escape_marks(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
571 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[6])(fra
.me
.REG
[6], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ICodeBuilder___inline_routine_3
));
572 /* ./icode//icode_tools.nit:135 */
573 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
574 if (UNTAG_Bool(REGB0
)) {
576 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
577 if (UNTAG_Bool(REGB3
)) {
578 REGB3
= TAG_Bool(false);
581 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
585 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
586 if (UNTAG_Bool(REGB0
)) {
587 /* ./icode//icode_tools.nit:136 */
588 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[4])!=NIT_NULL
);
589 if (UNTAG_Bool(REGB0
)) {
591 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 136);
593 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[4]);
594 /* ./icode//icode_tools.nit:137 */
596 /* ./../lib/standard//kernel.nit:347 */
598 /* ./../lib/standard//kernel.nit:352 */
600 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
601 if (UNTAG_Bool(REGB4
)) {
603 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
605 /* ./../lib/standard//kernel.nit:232 */
606 REGB4
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
607 /* ./../lib/standard//kernel.nit:352 */
608 if (UNTAG_Bool(REGB4
)) {
609 /* ./icode//icode_tools.nit:137 */
611 /* ./icode//icode_tools.nit:138 */
612 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
613 if (UNTAG_Bool(REGB5
)) {
614 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 138);
616 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB4
);
617 REGB5
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
618 if (UNTAG_Bool(REGB5
)) {
619 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 138);
621 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB4
);
622 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6], fra
.me
.REG
[2]);
623 /* ./../lib/standard//kernel.nit:354 */
625 /* ./../lib/standard//kernel.nit:235 */
626 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
627 /* ./../lib/standard//kernel.nit:354 */
630 /* ./../lib/standard//kernel.nit:352 */
635 /* ./../lib/standard//kernel.nit:352 */
637 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
638 if (UNTAG_Bool(REGB0
)) {
640 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
642 /* ./../lib/standard//kernel.nit:232 */
643 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
644 /* ./../lib/standard//kernel.nit:352 */
645 if (UNTAG_Bool(REGB0
)) {
646 /* ./icode//icode_tools.nit:140 */
648 /* ./icode//icode_tools.nit:141 */
649 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
650 if (UNTAG_Bool(REGB3
)) {
651 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 141);
653 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
654 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], NIT_NULL
);
655 /* ./../lib/standard//kernel.nit:354 */
657 /* ./../lib/standard//kernel.nit:235 */
658 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
659 /* ./../lib/standard//kernel.nit:354 */
662 /* ./../lib/standard//kernel.nit:352 */
668 /* ./icode//icode_tools.nit:146 */
669 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
670 CALL_icode___icode_tools___ICode___dup_with(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
671 /* ./icode//icode_tools.nit:147 */
674 stack_frame_head
= fra
.me
.prev
;
675 return fra
.me
.REG
[7];
677 void OC_icode___icode_tools___ICodeBuilder___inline_routine_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
678 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
682 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
683 fra
.me
.file
= LOCATE_icode___icode_tools
;
685 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeBuilder___inline_routine
;
686 fra
.me
.has_broke
= 0;
688 fra
.me
.REG
[0] = NIT_NULL
;
689 fra
.me
.REG
[1] = NIT_NULL
;
690 fra
.me
.closure_ctx
= closctx_param
;
691 fra
.me
.closure_funs
= CREG
;
694 /* ./icode//icode_tools.nit:117 */
695 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
696 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
697 if (UNTAG_Bool(REGB0
)) {
699 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 117);
701 /* ./icode//icode_tools.nit:118 */
702 fra
.me
.REG
[1] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
703 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[1]);
704 CALL_standard___collection___abstract_collection___Map_____braeq(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0], fra
.me
.REG
[1]);
705 stack_frame_head
= fra
.me
.prev
;
708 void OC_icode___icode_tools___ICodeBuilder___inline_routine_3(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
709 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
713 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
714 fra
.me
.file
= LOCATE_icode___icode_tools
;
716 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeBuilder___inline_routine
;
717 fra
.me
.has_broke
= 0;
719 fra
.me
.REG
[0] = NIT_NULL
;
720 fra
.me
.REG
[1] = NIT_NULL
;
721 fra
.me
.REG
[2] = NIT_NULL
;
722 fra
.me
.closure_ctx
= closctx_param
;
723 fra
.me
.closure_funs
= CREG
;
726 /* ./icode//icode_tools.nit:129 */
727 fra
.me
.REG
[1] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init();
728 /* ./icode//icode_tools.nit:130 */
729 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(closctx
->REG
[0])(closctx
->REG
[0]);
730 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___escape_marks(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
731 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
732 /* ./icode//icode_tools.nit:131 */
733 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____marks(closctx
->REG
[4])!=NIT_NULL
);
734 if (UNTAG_Bool(REGB0
)) {
736 nit_abort("Uninitialized attribute %s", "_marks", LOCATE_icode___icode_tools
, 131);
738 fra
.me
.REG
[2] = ATTR_icode___icode_tools___ICodeDupContext____marks(closctx
->REG
[4]);
739 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[1]);
740 stack_frame_head
= fra
.me
.prev
;
743 val_t
icode___icode_tools___ICodeDupContext___dup_ireg(val_t p0
, val_t p1
){
744 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
747 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
748 fra
.me
.file
= LOCATE_icode___icode_tools
;
750 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_ireg
;
751 fra
.me
.has_broke
= 0;
753 fra
.me
.REG
[0] = NIT_NULL
;
754 fra
.me
.REG
[1] = NIT_NULL
;
757 /* ./icode//icode_tools.nit:158 */
758 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[0])!=NIT_NULL
);
759 if (UNTAG_Bool(REGB0
)) {
761 nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_tools
, 158);
763 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[0]);
764 /* ./icode//icode_tools.nit:159 */
765 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
766 if (UNTAG_Bool(REGB0
)) {
767 /* ./icode//icode_tools.nit:160 */
768 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
771 /* ./icode//icode_tools.nit:162 */
772 fra
.me
.REG
[0] = fra
.me
.REG
[1];
776 stack_frame_head
= fra
.me
.prev
;
777 return fra
.me
.REG
[0];
779 val_t
icode___icode_tools___ICodeDupContext___dup_iregs(val_t p0
, val_t p1
){
780 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
783 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
784 fra
.me
.file
= LOCATE_icode___icode_tools
;
786 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_iregs
;
787 fra
.me
.has_broke
= 0;
789 fra
.me
.REG
[0] = NIT_NULL
;
790 fra
.me
.REG
[1] = NIT_NULL
;
791 fra
.me
.REG
[2] = NIT_NULL
;
794 /* ./icode//icode_tools.nit:169 */
795 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
796 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
797 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[1])(fra
.me
.REG
[1], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ICodeDupContext___dup_iregs_1
));
798 /* ./icode//icode_tools.nit:173 */
801 stack_frame_head
= fra
.me
.prev
;
802 return fra
.me
.REG
[2];
804 void OC_icode___icode_tools___ICodeDupContext___dup_iregs_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
805 struct {struct stack_frame_t me
;} fra
;
808 /* ./icode//icode_tools.nit:170 */
809 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
810 fra
.me
.file
= LOCATE_icode___icode_tools
;
812 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_iregs
;
813 fra
.me
.has_broke
= 0;
815 fra
.me
.REG
[0] = NIT_NULL
;
816 fra
.me
.closure_ctx
= closctx_param
;
817 fra
.me
.closure_funs
= CREG
;
820 /* ./icode//icode_tools.nit:171 */
821 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
822 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
823 stack_frame_head
= fra
.me
.prev
;
826 val_t
icode___icode_tools___ICodeDupContext___dup_mark(val_t p0
, val_t p1
){
827 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
830 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
831 fra
.me
.file
= LOCATE_icode___icode_tools
;
833 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_mark
;
834 fra
.me
.has_broke
= 0;
836 fra
.me
.REG
[0] = NIT_NULL
;
837 fra
.me
.REG
[1] = NIT_NULL
;
840 /* ./icode//icode_tools.nit:185 */
841 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____marks(fra
.me
.REG
[0])!=NIT_NULL
);
842 if (UNTAG_Bool(REGB0
)) {
844 nit_abort("Uninitialized attribute %s", "_marks", LOCATE_icode___icode_tools
, 185);
846 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeDupContext____marks(fra
.me
.REG
[0]);
847 /* ./icode//icode_tools.nit:186 */
848 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
849 if (UNTAG_Bool(REGB0
)) {
850 /* ./icode//icode_tools.nit:187 */
851 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
854 /* ./icode//icode_tools.nit:189 */
855 fra
.me
.REG
[0] = fra
.me
.REG
[1];
859 stack_frame_head
= fra
.me
.prev
;
860 return fra
.me
.REG
[0];
862 void icode___icode_tools___ICodeDupContext___init(val_t p0
, val_t p1
, int* init_table
){
863 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_icode___icode_tools___ICodeDupContext
].i
;
864 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
866 if (init_table
[itpos1
]) return;
867 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
868 fra
.me
.file
= LOCATE_icode___icode_tools
;
870 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___init
;
871 fra
.me
.has_broke
= 0;
873 fra
.me
.REG
[0] = NIT_NULL
;
874 fra
.me
.REG
[1] = NIT_NULL
;
877 /* ./icode//icode_tools.nit:205 */
878 ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
879 stack_frame_head
= fra
.me
.prev
;
880 init_table
[itpos1
] = 1;
883 void icode___icode_tools___ICode___dup_with(val_t p0
, val_t p1
){
884 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
888 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
889 fra
.me
.file
= LOCATE_icode___icode_tools
;
891 fra
.me
.meth
= LOCATE_icode___icode_tools___ICode___dup_with
;
892 fra
.me
.has_broke
= 0;
894 fra
.me
.REG
[0] = NIT_NULL
;
895 fra
.me
.REG
[1] = NIT_NULL
;
896 fra
.me
.REG
[2] = NIT_NULL
;
897 fra
.me
.REG
[3] = NIT_NULL
;
898 fra
.me
.REG
[4] = NIT_NULL
;
901 /* ./icode//icode_tools.nit:213 */
902 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICode___inner_dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
903 /* ./icode//icode_tools.nit:214 */
904 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_icode___icode_base___ICodeN
, ID_icode___icode_base___ICodeN
)) /*cast ICodeN*/;
905 if (UNTAG_Bool(REGB0
)) {
906 /* ./icode//icode_tools.nit:215 */
907 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_icode___icode_base___ICodeN
, ID_icode___icode_base___ICodeN
)) /*cast ICodeN*/;
908 if (UNTAG_Bool(REGB0
)) {
910 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 215);
912 /* ./icode//icode_tools.nit:216 */
913 fra
.me
.REG
[3] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
914 /* ./icode//icode_tools.nit:217 */
915 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
916 if (UNTAG_Bool(REGB0
)) {
918 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
919 if (UNTAG_Bool(REGB1
)) {
920 REGB1
= TAG_Bool(false);
923 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
927 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
928 if (UNTAG_Bool(REGB0
)) {
929 /* ./icode//icode_tools.nit:219 */
930 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
931 if (UNTAG_Bool(REGB0
)) {
932 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 219);
934 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
935 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
936 /* ./icode//icode_tools.nit:220 */
937 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
938 if (UNTAG_Bool(REGB0
)) {
939 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 220);
941 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[3])(fra
.me
.REG
[3], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ICode___dup_with_1
));
942 /* ./icode//icode_tools.nit:231 */
943 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
946 /* ./icode//icode_tools.nit:234 */
947 fra
.me
.REG
[4] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
948 /* ./icode//icode_tools.nit:235 */
949 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
950 if (UNTAG_Bool(REGB0
)) {
952 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
953 if (UNTAG_Bool(REGB1
)) {
954 REGB1
= TAG_Bool(false);
957 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
961 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
962 if (UNTAG_Bool(REGB0
)) {
963 fra
.me
.REG
[4] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
964 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
966 /* ./icode//icode_tools.nit:236 */
967 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
968 CALL_icode___icode_base___ICode___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
969 /* ./icode//icode_tools.nit:237 */
970 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
971 if (UNTAG_Bool(REGB0
)) {
973 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 237);
975 fra
.me
.REG
[1] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
976 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
977 fra
.me
.REG
[1] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
978 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
979 stack_frame_head
= fra
.me
.prev
;
982 void OC_icode___icode_tools___ICode___dup_with_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
983 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
988 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
989 fra
.me
.file
= LOCATE_icode___icode_tools
;
991 fra
.me
.meth
= LOCATE_icode___icode_tools___ICode___dup_with
;
992 fra
.me
.has_broke
= 0;
994 fra
.me
.REG
[0] = NIT_NULL
;
995 fra
.me
.REG
[1] = NIT_NULL
;
996 fra
.me
.REG
[2] = NIT_NULL
;
997 fra
.me
.closure_ctx
= closctx_param
;
998 fra
.me
.closure_funs
= CREG
;
1000 CREG
[0] = clos_fun0
;
1001 /* ./icode//icode_tools.nit:221 */
1002 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1003 if (UNTAG_Bool(REGB0
)) {
1005 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1006 if (UNTAG_Bool(REGB1
)) {
1007 REGB1
= TAG_Bool(false);
1010 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1014 if (UNTAG_Bool(REGB0
)) {
1015 /* ./icode//icode_tools.nit:222 */
1016 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], NIT_NULL
);
1018 /* ./icode//icode_tools.nit:224 */
1019 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1020 if (UNTAG_Bool(REGB0
)) {
1021 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 224);
1023 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1024 /* ./icode//icode_tools.nit:225 */
1025 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1026 if (UNTAG_Bool(REGB0
)) {
1028 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1029 if (UNTAG_Bool(REGB1
)) {
1030 REGB1
= TAG_Bool(false);
1033 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1037 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1038 if (UNTAG_Bool(REGB0
)) {
1039 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
1040 fra
.me
.REG
[1] = fra
.me
.REG
[2];
1042 /* ./icode//icode_tools.nit:226 */
1043 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1044 if (UNTAG_Bool(REGB0
)) {
1045 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 226);
1047 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1048 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2]);
1049 fra
.me
.REG
[1] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1050 /* ./icode//icode_tools.nit:227 */
1051 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[1]);
1052 /* ./icode//icode_tools.nit:228 */
1053 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1054 if (UNTAG_Bool(REGB0
)) {
1055 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 228);
1057 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1058 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1059 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1], fra
.me
.REG
[1]);
1061 stack_frame_head
= fra
.me
.prev
;
1064 val_t
icode___icode_tools___ICode___inner_dup_with(val_t p0
, val_t p1
){
1065 struct {struct stack_frame_t me
;} fra
;
1067 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1068 fra
.me
.file
= LOCATE_icode___icode_tools
;
1070 fra
.me
.meth
= LOCATE_icode___icode_tools___ICode___inner_dup_with
;
1071 fra
.me
.has_broke
= 0;
1072 fra
.me
.REG_size
= 0;
1073 /* ./icode//icode_tools.nit:240 */
1074 nit_abort("Deferred method called", NULL
, LOCATE_icode___icode_tools
, 240);
1075 stack_frame_head
= fra
.me
.prev
;
1078 val_t
icode___icode_tools___ISeq___inner_dup_with(val_t p0
, val_t p1
){
1079 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1081 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1082 fra
.me
.file
= LOCATE_icode___icode_tools
;
1084 fra
.me
.meth
= LOCATE_icode___icode_tools___ISeq___inner_dup_with
;
1085 fra
.me
.has_broke
= 0;
1086 fra
.me
.REG_size
= 3;
1087 fra
.me
.REG
[0] = NIT_NULL
;
1088 fra
.me
.REG
[1] = NIT_NULL
;
1089 fra
.me
.REG
[2] = NIT_NULL
;
1092 /* ./icode//icode_tools.nit:247 */
1093 fra
.me
.REG
[2] = NEW_ISeq_icode___icode_base___ISeq___init();
1094 /* ./icode//icode_tools.nit:248 */
1095 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1096 /* ./icode//icode_tools.nit:249 */
1099 stack_frame_head
= fra
.me
.prev
;
1100 return fra
.me
.REG
[2];
1102 void icode___icode_tools___ISeq___dup_seq_to(val_t p0
, val_t p1
, val_t p2
){
1103 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1107 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1108 fra
.me
.file
= LOCATE_icode___icode_tools
;
1110 fra
.me
.meth
= LOCATE_icode___icode_tools___ISeq___dup_seq_to
;
1111 fra
.me
.has_broke
= 0;
1112 fra
.me
.REG_size
= 5;
1113 fra
.me
.REG
[0] = NIT_NULL
;
1114 fra
.me
.REG
[1] = NIT_NULL
;
1115 fra
.me
.REG
[2] = NIT_NULL
;
1116 fra
.me
.REG
[3] = NIT_NULL
;
1117 fra
.me
.REG
[4] = NIT_NULL
;
1121 /* ./icode//icode_tools.nit:256 */
1122 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1123 if (UNTAG_Bool(REGB0
)) {
1125 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 256);
1127 fra
.me
.REG
[3] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1128 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1129 /* ./icode//icode_tools.nit:257 */
1130 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1131 if (UNTAG_Bool(REGB0
)) {
1133 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 257);
1135 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1136 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1137 /* ./icode//icode_tools.nit:258 */
1138 fra
.me
.REG
[4] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1139 CALL_standard___collection___abstract_collection___Collection___iterate(fra
.me
.REG
[4])(fra
.me
.REG
[4], (&(fra
.me
)), ((fun_t
)OC_icode___icode_tools___ISeq___dup_seq_to_1
));
1140 /* ./icode//icode_tools.nit:261 */
1141 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1142 if (UNTAG_Bool(REGB0
)) {
1144 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 261);
1146 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1147 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1148 /* ./icode//icode_tools.nit:262 */
1149 fra
.me
.REG
[3] = CALL_icode___icode_base___ISeq___iescape_mark(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1150 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1151 if (UNTAG_Bool(REGB0
)) {
1153 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1154 if (UNTAG_Bool(REGB1
)) {
1155 REGB1
= TAG_Bool(false);
1158 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1162 if (UNTAG_Bool(REGB0
)) {
1164 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 262);
1166 /* ./icode//icode_tools.nit:263 */
1167 fra
.me
.REG
[0] = CALL_icode___icode_base___ISeq___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1168 /* ./icode//icode_tools.nit:264 */
1169 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1170 if (UNTAG_Bool(REGB0
)) {
1172 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1173 if (UNTAG_Bool(REGB1
)) {
1174 REGB1
= TAG_Bool(false);
1177 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1181 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1182 if (UNTAG_Bool(REGB0
)) {
1183 /* ./icode//icode_tools.nit:265 */
1184 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1185 CALL_icode___icode_base___ISeq___iescape_mark__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1187 stack_frame_head
= fra
.me
.prev
;
1190 void OC_icode___icode_tools___ISeq___dup_seq_to_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
1191 struct {struct stack_frame_t me
;} fra
;
1194 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1195 fra
.me
.file
= LOCATE_icode___icode_tools
;
1197 fra
.me
.meth
= LOCATE_icode___icode_tools___ISeq___dup_seq_to
;
1198 fra
.me
.has_broke
= 0;
1199 fra
.me
.REG_size
= 1;
1200 fra
.me
.REG
[0] = NIT_NULL
;
1201 fra
.me
.closure_ctx
= closctx_param
;
1202 fra
.me
.closure_funs
= CREG
;
1204 CREG
[0] = clos_fun0
;
1205 /* ./icode//icode_tools.nit:259 */
1206 CALL_icode___icode_tools___ICode___dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1207 stack_frame_head
= fra
.me
.prev
;
1210 val_t
icode___icode_tools___ILoop___inner_dup_with(val_t p0
, val_t p1
){
1211 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1213 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1214 fra
.me
.file
= LOCATE_icode___icode_tools
;
1216 fra
.me
.meth
= LOCATE_icode___icode_tools___ILoop___inner_dup_with
;
1217 fra
.me
.has_broke
= 0;
1218 fra
.me
.REG_size
= 3;
1219 fra
.me
.REG
[0] = NIT_NULL
;
1220 fra
.me
.REG
[1] = NIT_NULL
;
1221 fra
.me
.REG
[2] = NIT_NULL
;
1224 /* ./icode//icode_tools.nit:273 */
1225 fra
.me
.REG
[2] = NEW_ILoop_icode___icode_base___ILoop___init();
1226 /* ./icode//icode_tools.nit:274 */
1227 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1228 /* ./icode//icode_tools.nit:275 */
1231 stack_frame_head
= fra
.me
.prev
;
1232 return fra
.me
.REG
[2];
1234 val_t
icode___icode_tools___IIf___inner_dup_with(val_t p0
, val_t p1
){
1235 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1237 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1238 fra
.me
.file
= LOCATE_icode___icode_tools
;
1240 fra
.me
.meth
= LOCATE_icode___icode_tools___IIf___inner_dup_with
;
1241 fra
.me
.has_broke
= 0;
1242 fra
.me
.REG_size
= 5;
1243 fra
.me
.REG
[0] = NIT_NULL
;
1244 fra
.me
.REG
[1] = NIT_NULL
;
1245 fra
.me
.REG
[2] = NIT_NULL
;
1246 fra
.me
.REG
[3] = NIT_NULL
;
1247 fra
.me
.REG
[4] = NIT_NULL
;
1250 /* ./icode//icode_tools.nit:282 */
1251 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1252 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1253 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
1254 /* ./icode//icode_tools.nit:283 */
1255 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1256 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1257 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1258 /* ./icode//icode_tools.nit:284 */
1259 fra
.me
.REG
[0] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1260 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1261 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1262 /* ./icode//icode_tools.nit:285 */
1265 stack_frame_head
= fra
.me
.prev
;
1266 return fra
.me
.REG
[2];
1268 val_t
icode___icode_tools___IEscape___inner_dup_with(val_t p0
, val_t p1
){
1269 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1271 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1272 fra
.me
.file
= LOCATE_icode___icode_tools
;
1274 fra
.me
.meth
= LOCATE_icode___icode_tools___IEscape___inner_dup_with
;
1275 fra
.me
.has_broke
= 0;
1276 fra
.me
.REG_size
= 2;
1277 fra
.me
.REG
[0] = NIT_NULL
;
1278 fra
.me
.REG
[1] = NIT_NULL
;
1281 /* ./icode//icode_tools.nit:293 */
1282 fra
.me
.REG
[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1283 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1284 /* ./icode//icode_tools.nit:295 */
1285 fra
.me
.REG
[0] = NEW_IEscape_icode___icode_base___IEscape___init(fra
.me
.REG
[0]);
1288 stack_frame_head
= fra
.me
.prev
;
1289 return fra
.me
.REG
[0];
1291 val_t
icode___icode_tools___IAbort___inner_dup_with(val_t p0
, val_t p1
){
1292 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1294 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1295 fra
.me
.file
= LOCATE_icode___icode_tools
;
1297 fra
.me
.meth
= LOCATE_icode___icode_tools___IAbort___inner_dup_with
;
1298 fra
.me
.has_broke
= 0;
1299 fra
.me
.REG_size
= 2;
1300 fra
.me
.REG
[0] = NIT_NULL
;
1301 fra
.me
.REG
[1] = NIT_NULL
;
1304 /* ./icode//icode_tools.nit:302 */
1305 fra
.me
.REG
[1] = CALL_icode___icode_base___IAbort___texts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1306 fra
.me
.REG
[0] = CALL_icode___icode_base___IAbort___module_location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1307 fra
.me
.REG
[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1310 stack_frame_head
= fra
.me
.prev
;
1311 return fra
.me
.REG
[0];
1313 val_t
icode___icode_tools___ICall___inner_dup_with(val_t p0
, val_t p1
){
1314 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1316 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1317 fra
.me
.file
= LOCATE_icode___icode_tools
;
1319 fra
.me
.meth
= LOCATE_icode___icode_tools___ICall___inner_dup_with
;
1320 fra
.me
.has_broke
= 0;
1321 fra
.me
.REG_size
= 3;
1322 fra
.me
.REG
[0] = NIT_NULL
;
1323 fra
.me
.REG
[1] = NIT_NULL
;
1324 fra
.me
.REG
[2] = NIT_NULL
;
1327 /* ./icode//icode_tools.nit:309 */
1328 fra
.me
.REG
[2] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1329 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1330 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1331 fra
.me
.REG
[0] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1334 stack_frame_head
= fra
.me
.prev
;
1335 return fra
.me
.REG
[0];
1337 val_t
icode___icode_tools___ISuper___inner_dup_with(val_t p0
, val_t p1
){
1338 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1340 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1341 fra
.me
.file
= LOCATE_icode___icode_tools
;
1343 fra
.me
.meth
= LOCATE_icode___icode_tools___ISuper___inner_dup_with
;
1344 fra
.me
.has_broke
= 0;
1345 fra
.me
.REG_size
= 3;
1346 fra
.me
.REG
[0] = NIT_NULL
;
1347 fra
.me
.REG
[1] = NIT_NULL
;
1348 fra
.me
.REG
[2] = NIT_NULL
;
1351 /* ./icode//icode_tools.nit:316 */
1352 fra
.me
.REG
[2] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1353 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1354 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1355 fra
.me
.REG
[0] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1358 stack_frame_head
= fra
.me
.prev
;
1359 return fra
.me
.REG
[0];
1361 val_t
icode___icode_tools___INew___inner_dup_with(val_t p0
, val_t p1
){
1362 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1365 fra
.me
.file
= LOCATE_icode___icode_tools
;
1367 fra
.me
.meth
= LOCATE_icode___icode_tools___INew___inner_dup_with
;
1368 fra
.me
.has_broke
= 0;
1369 fra
.me
.REG_size
= 4;
1370 fra
.me
.REG
[0] = NIT_NULL
;
1371 fra
.me
.REG
[1] = NIT_NULL
;
1372 fra
.me
.REG
[2] = NIT_NULL
;
1373 fra
.me
.REG
[3] = NIT_NULL
;
1376 /* ./icode//icode_tools.nit:323 */
1377 fra
.me
.REG
[2] = CALL_icode___icode_base___INew___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1378 fra
.me
.REG
[3] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1379 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1380 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1381 fra
.me
.REG
[0] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1384 stack_frame_head
= fra
.me
.prev
;
1385 return fra
.me
.REG
[0];
1387 val_t
icode___icode_tools___IAllocateInstance___inner_dup_with(val_t p0
, val_t p1
){
1388 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1390 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1391 fra
.me
.file
= LOCATE_icode___icode_tools
;
1393 fra
.me
.meth
= LOCATE_icode___icode_tools___IAllocateInstance___inner_dup_with
;
1394 fra
.me
.has_broke
= 0;
1395 fra
.me
.REG_size
= 2;
1396 fra
.me
.REG
[0] = NIT_NULL
;
1397 fra
.me
.REG
[1] = NIT_NULL
;
1400 /* ./icode//icode_tools.nit:330 */
1401 fra
.me
.REG
[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1402 fra
.me
.REG
[0] = NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(fra
.me
.REG
[0]);
1405 stack_frame_head
= fra
.me
.prev
;
1406 return fra
.me
.REG
[0];
1408 val_t
icode___icode_tools___IStaticCall___inner_dup_with(val_t p0
, val_t p1
){
1409 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1411 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1412 fra
.me
.file
= LOCATE_icode___icode_tools
;
1414 fra
.me
.meth
= LOCATE_icode___icode_tools___IStaticCall___inner_dup_with
;
1415 fra
.me
.has_broke
= 0;
1416 fra
.me
.REG_size
= 3;
1417 fra
.me
.REG
[0] = NIT_NULL
;
1418 fra
.me
.REG
[1] = NIT_NULL
;
1419 fra
.me
.REG
[2] = NIT_NULL
;
1422 /* ./icode//icode_tools.nit:337 */
1423 fra
.me
.REG
[2] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1424 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1425 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1426 fra
.me
.REG
[0] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1429 stack_frame_head
= fra
.me
.prev
;
1430 return fra
.me
.REG
[0];
1432 val_t
icode___icode_tools___ICheckInstance___inner_dup_with(val_t p0
, val_t p1
){
1433 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1435 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1436 fra
.me
.file
= LOCATE_icode___icode_tools
;
1438 fra
.me
.meth
= LOCATE_icode___icode_tools___ICheckInstance___inner_dup_with
;
1439 fra
.me
.has_broke
= 0;
1440 fra
.me
.REG_size
= 3;
1441 fra
.me
.REG
[0] = NIT_NULL
;
1442 fra
.me
.REG
[1] = NIT_NULL
;
1443 fra
.me
.REG
[2] = NIT_NULL
;
1446 /* ./icode//icode_tools.nit:344 */
1447 fra
.me
.REG
[2] = CALL_icode___icode_base___ICheckInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1448 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1449 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1450 fra
.me
.REG
[0] = NEW_ICheckInstance_icode___icode_base___ICheckInstance___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1453 stack_frame_head
= fra
.me
.prev
;
1454 return fra
.me
.REG
[0];
1456 val_t
icode___icode_tools___IInitAttributes___inner_dup_with(val_t p0
, val_t p1
){
1457 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1459 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1460 fra
.me
.file
= LOCATE_icode___icode_tools
;
1462 fra
.me
.meth
= LOCATE_icode___icode_tools___IInitAttributes___inner_dup_with
;
1463 fra
.me
.has_broke
= 0;
1464 fra
.me
.REG_size
= 3;
1465 fra
.me
.REG
[0] = NIT_NULL
;
1466 fra
.me
.REG
[1] = NIT_NULL
;
1467 fra
.me
.REG
[2] = NIT_NULL
;
1470 /* ./icode//icode_tools.nit:351 */
1471 fra
.me
.REG
[2] = CALL_icode___icode_base___IInitAttributes___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1472 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1473 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1474 fra
.me
.REG
[0] = NEW_IInitAttributes_icode___icode_base___IInitAttributes___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1477 stack_frame_head
= fra
.me
.prev
;
1478 return fra
.me
.REG
[0];
1480 void icode___icode_tools___IClosCall___dup_with(val_t p0
, val_t p1
){
1481 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1485 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1486 fra
.me
.file
= LOCATE_icode___icode_tools
;
1488 fra
.me
.meth
= LOCATE_icode___icode_tools___IClosCall___dup_with
;
1489 fra
.me
.has_broke
= 0;
1490 fra
.me
.REG_size
= 7;
1491 fra
.me
.REG
[0] = NIT_NULL
;
1492 fra
.me
.REG
[1] = NIT_NULL
;
1493 fra
.me
.REG
[2] = NIT_NULL
;
1494 fra
.me
.REG
[3] = NIT_NULL
;
1495 fra
.me
.REG
[4] = NIT_NULL
;
1496 fra
.me
.REG
[5] = NIT_NULL
;
1497 fra
.me
.REG
[6] = NIT_NULL
;
1500 /* ./icode//icode_tools.nit:356 */
1501 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1502 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1503 /* ./icode//icode_tools.nit:358 */
1504 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3])!=NIT_NULL
);
1505 if (UNTAG_Bool(REGB0
)) {
1507 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 358);
1509 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3]);
1510 fra
.me
.REG
[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1511 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1512 if (UNTAG_Bool(REGB0
)) {
1513 /* ./icode//icode_tools.nit:360 */
1514 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3])!=NIT_NULL
);
1515 if (UNTAG_Bool(REGB0
)) {
1517 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 360);
1519 fra
.me
.REG
[5] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3]);
1520 fra
.me
.REG
[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1521 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1522 /* ./icode//icode_tools.nit:361 */
1523 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1524 if (UNTAG_Bool(REGB0
)) {
1526 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1527 if (UNTAG_Bool(REGB1
)) {
1528 REGB1
= TAG_Bool(false);
1531 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1535 if (UNTAG_Bool(REGB0
)) {
1536 /* ./icode//icode_tools.nit:363 */
1539 /* ./icode//icode_tools.nit:366 */
1540 fra
.me
.REG
[5] = CALL_icode___icode_base___IClosCall___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1541 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1542 if (UNTAG_Bool(REGB0
)) {
1544 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1545 if (UNTAG_Bool(REGB1
)) {
1546 REGB1
= TAG_Bool(false);
1549 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
1553 if (UNTAG_Bool(REGB0
)) {
1555 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 366);
1557 /* ./icode//icode_tools.nit:368 */
1558 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3])!=NIT_NULL
);
1559 if (UNTAG_Bool(REGB0
)) {
1561 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 368);
1563 fra
.me
.REG
[5] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3]);
1564 fra
.me
.REG
[6] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1565 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1566 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4], fra
.me
.REG
[6], NIT_NULL
);
1567 /* ./icode//icode_tools.nit:369 */
1568 fra
.me
.REG
[4] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1569 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1570 if (UNTAG_Bool(REGB0
)) {
1572 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1573 if (UNTAG_Bool(REGB1
)) {
1574 REGB1
= TAG_Bool(false);
1577 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1581 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1582 if (UNTAG_Bool(REGB0
)) {
1583 /* ./icode//icode_tools.nit:370 */
1584 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1585 if (UNTAG_Bool(REGB0
)) {
1587 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1588 if (UNTAG_Bool(REGB1
)) {
1589 REGB1
= TAG_Bool(false);
1592 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1596 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1597 if (UNTAG_Bool(REGB0
)) {
1599 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 370);
1601 /* ./icode//icode_tools.nit:371 */
1602 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3])!=NIT_NULL
);
1603 if (UNTAG_Bool(REGB0
)) {
1605 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 371);
1607 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3]);
1608 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1609 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_icode___icode_base___IRegister
, ID_icode___icode_base___IRegister
)) /*cast IRegister*/;
1610 if (UNTAG_Bool(REGB0
)) {
1612 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_tools
, 371);
1614 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1615 fra
.me
.REG
[6] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[2], fra
.me
.REG
[6]);
1616 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
1619 /* ./icode//icode_tools.nit:375 */
1620 CALL_SUPER_icode___icode_tools___IClosCall___dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1623 stack_frame_head
= fra
.me
.prev
;
1626 val_t
icode___icode_tools___IClosCall___inner_dup_with(val_t p0
, val_t p1
){
1627 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1629 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1630 fra
.me
.file
= LOCATE_icode___icode_tools
;
1632 fra
.me
.meth
= LOCATE_icode___icode_tools___IClosCall___inner_dup_with
;
1633 fra
.me
.has_broke
= 0;
1634 fra
.me
.REG_size
= 2;
1635 fra
.me
.REG
[0] = NIT_NULL
;
1636 fra
.me
.REG
[1] = NIT_NULL
;
1639 /* ./icode//icode_tools.nit:381 */
1640 fra
.me
.REG
[1] = CALL_icode___icode_base___IClosCall___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1641 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1642 fra
.me
.REG
[0] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1645 stack_frame_head
= fra
.me
.prev
;
1646 return fra
.me
.REG
[0];
1648 val_t
icode___icode_tools___INative___inner_dup_with(val_t p0
, val_t p1
){
1649 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1652 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1653 fra
.me
.file
= LOCATE_icode___icode_tools
;
1655 fra
.me
.meth
= LOCATE_icode___icode_tools___INative___inner_dup_with
;
1656 fra
.me
.has_broke
= 0;
1657 fra
.me
.REG_size
= 4;
1658 fra
.me
.REG
[0] = NIT_NULL
;
1659 fra
.me
.REG
[1] = NIT_NULL
;
1660 fra
.me
.REG
[2] = NIT_NULL
;
1661 fra
.me
.REG
[3] = NIT_NULL
;
1664 /* ./icode//icode_tools.nit:388 */
1665 fra
.me
.REG
[2] = CALL_icode___icode_base___INative___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1666 fra
.me
.REG
[3] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1667 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1668 fra
.me
.REG
[3] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1669 /* ./icode//icode_tools.nit:389 */
1670 REGB0
= CALL_icode___icode_base___ICode___is_pure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1671 CALL_icode___icode_base___INative___is_pure__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1672 /* ./icode//icode_tools.nit:390 */
1675 stack_frame_head
= fra
.me
.prev
;
1676 return fra
.me
.REG
[3];
1678 val_t
icode___icode_tools___IIntValue___inner_dup_with(val_t p0
, val_t p1
){
1679 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1681 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1682 fra
.me
.file
= LOCATE_icode___icode_tools
;
1684 fra
.me
.meth
= LOCATE_icode___icode_tools___IIntValue___inner_dup_with
;
1685 fra
.me
.has_broke
= 0;
1686 fra
.me
.REG_size
= 2;
1687 fra
.me
.REG
[0] = NIT_NULL
;
1688 fra
.me
.REG
[1] = NIT_NULL
;
1691 /* ./icode//icode_tools.nit:397 */
1692 fra
.me
.REG
[0] = CALL_icode___icode_base___IIntValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1693 fra
.me
.REG
[0] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[0]);
1696 stack_frame_head
= fra
.me
.prev
;
1697 return fra
.me
.REG
[0];
1699 val_t
icode___icode_tools___IBoolValue___inner_dup_with(val_t p0
, val_t p1
){
1700 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1703 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1704 fra
.me
.file
= LOCATE_icode___icode_tools
;
1706 fra
.me
.meth
= LOCATE_icode___icode_tools___IBoolValue___inner_dup_with
;
1707 fra
.me
.has_broke
= 0;
1708 fra
.me
.REG_size
= 2;
1709 fra
.me
.REG
[0] = NIT_NULL
;
1710 fra
.me
.REG
[1] = NIT_NULL
;
1713 /* ./icode//icode_tools.nit:404 */
1714 REGB0
= CALL_icode___icode_base___IBoolValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1715 fra
.me
.REG
[0] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0
);
1718 stack_frame_head
= fra
.me
.prev
;
1719 return fra
.me
.REG
[0];
1721 val_t
icode___icode_tools___IStringValue___inner_dup_with(val_t p0
, val_t p1
){
1722 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1724 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1725 fra
.me
.file
= LOCATE_icode___icode_tools
;
1727 fra
.me
.meth
= LOCATE_icode___icode_tools___IStringValue___inner_dup_with
;
1728 fra
.me
.has_broke
= 0;
1729 fra
.me
.REG_size
= 2;
1730 fra
.me
.REG
[0] = NIT_NULL
;
1731 fra
.me
.REG
[1] = NIT_NULL
;
1734 /* ./icode//icode_tools.nit:411 */
1735 fra
.me
.REG
[0] = CALL_icode___icode_base___IStringValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1736 fra
.me
.REG
[0] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[0]);
1739 stack_frame_head
= fra
.me
.prev
;
1740 return fra
.me
.REG
[0];
1742 val_t
icode___icode_tools___IFloatValue___inner_dup_with(val_t p0
, val_t p1
){
1743 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1745 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1746 fra
.me
.file
= LOCATE_icode___icode_tools
;
1748 fra
.me
.meth
= LOCATE_icode___icode_tools___IFloatValue___inner_dup_with
;
1749 fra
.me
.has_broke
= 0;
1750 fra
.me
.REG_size
= 2;
1751 fra
.me
.REG
[0] = NIT_NULL
;
1752 fra
.me
.REG
[1] = NIT_NULL
;
1755 /* ./icode//icode_tools.nit:418 */
1756 fra
.me
.REG
[0] = CALL_icode___icode_base___IFloatValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1757 fra
.me
.REG
[0] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[0]);
1760 stack_frame_head
= fra
.me
.prev
;
1761 return fra
.me
.REG
[0];
1763 val_t
icode___icode_tools___ICharValue___inner_dup_with(val_t p0
, val_t p1
){
1764 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1766 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1767 fra
.me
.file
= LOCATE_icode___icode_tools
;
1769 fra
.me
.meth
= LOCATE_icode___icode_tools___ICharValue___inner_dup_with
;
1770 fra
.me
.has_broke
= 0;
1771 fra
.me
.REG_size
= 2;
1772 fra
.me
.REG
[0] = NIT_NULL
;
1773 fra
.me
.REG
[1] = NIT_NULL
;
1776 /* ./icode//icode_tools.nit:425 */
1777 fra
.me
.REG
[0] = CALL_icode___icode_base___ICharValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1778 fra
.me
.REG
[0] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[0]);
1781 stack_frame_head
= fra
.me
.prev
;
1782 return fra
.me
.REG
[0];
1784 val_t
icode___icode_tools___IMove___inner_dup_with(val_t p0
, val_t p1
){
1785 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1788 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1789 fra
.me
.file
= LOCATE_icode___icode_tools
;
1791 fra
.me
.meth
= LOCATE_icode___icode_tools___IMove___inner_dup_with
;
1792 fra
.me
.has_broke
= 0;
1793 fra
.me
.REG_size
= 4;
1794 fra
.me
.REG
[0] = NIT_NULL
;
1795 fra
.me
.REG
[1] = NIT_NULL
;
1796 fra
.me
.REG
[2] = NIT_NULL
;
1797 fra
.me
.REG
[3] = NIT_NULL
;
1800 /* ./icode//icode_tools.nit:430 */
1801 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1802 /* ./icode//icode_tools.nit:432 */
1803 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1804 REGB0
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_icode___icode_base___IRegister
, ID_icode___icode_base___IRegister
)) /*cast IRegister*/;
1805 if (UNTAG_Bool(REGB0
)) {
1807 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_tools
, 432);
1809 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1810 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1811 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1812 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1815 stack_frame_head
= fra
.me
.prev
;
1816 return fra
.me
.REG
[2];
1818 val_t
icode___icode_tools___IAttrRead___inner_dup_with(val_t p0
, val_t p1
){
1819 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1821 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1822 fra
.me
.file
= LOCATE_icode___icode_tools
;
1824 fra
.me
.meth
= LOCATE_icode___icode_tools___IAttrRead___inner_dup_with
;
1825 fra
.me
.has_broke
= 0;
1826 fra
.me
.REG_size
= 3;
1827 fra
.me
.REG
[0] = NIT_NULL
;
1828 fra
.me
.REG
[1] = NIT_NULL
;
1829 fra
.me
.REG
[2] = NIT_NULL
;
1832 /* ./icode//icode_tools.nit:439 */
1833 fra
.me
.REG
[2] = CALL_icode___icode_base___IAttrRead___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1834 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1835 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1836 fra
.me
.REG
[0] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1839 stack_frame_head
= fra
.me
.prev
;
1840 return fra
.me
.REG
[0];
1842 val_t
icode___icode_tools___IAttrWrite___inner_dup_with(val_t p0
, val_t p1
){
1843 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1846 fra
.me
.file
= LOCATE_icode___icode_tools
;
1848 fra
.me
.meth
= LOCATE_icode___icode_tools___IAttrWrite___inner_dup_with
;
1849 fra
.me
.has_broke
= 0;
1850 fra
.me
.REG_size
= 4;
1851 fra
.me
.REG
[0] = NIT_NULL
;
1852 fra
.me
.REG
[1] = NIT_NULL
;
1853 fra
.me
.REG
[2] = NIT_NULL
;
1854 fra
.me
.REG
[3] = NIT_NULL
;
1857 /* ./icode//icode_tools.nit:446 */
1858 fra
.me
.REG
[2] = CALL_icode___icode_base___IAttrWrite___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1859 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1860 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1861 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1862 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1863 fra
.me
.REG
[0] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1866 stack_frame_head
= fra
.me
.prev
;
1867 return fra
.me
.REG
[0];
1869 val_t
icode___icode_tools___IAttrIsset___inner_dup_with(val_t p0
, val_t p1
){
1870 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1872 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1873 fra
.me
.file
= LOCATE_icode___icode_tools
;
1875 fra
.me
.meth
= LOCATE_icode___icode_tools___IAttrIsset___inner_dup_with
;
1876 fra
.me
.has_broke
= 0;
1877 fra
.me
.REG_size
= 3;
1878 fra
.me
.REG
[0] = NIT_NULL
;
1879 fra
.me
.REG
[1] = NIT_NULL
;
1880 fra
.me
.REG
[2] = NIT_NULL
;
1883 /* ./icode//icode_tools.nit:453 */
1884 fra
.me
.REG
[2] = CALL_icode___icode_base___IAttrIsset___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1885 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1886 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1887 fra
.me
.REG
[0] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1890 stack_frame_head
= fra
.me
.prev
;
1891 return fra
.me
.REG
[0];
1893 val_t
icode___icode_tools___ITypeCheck___inner_dup_with(val_t p0
, val_t p1
){
1894 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1896 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1897 fra
.me
.file
= LOCATE_icode___icode_tools
;
1899 fra
.me
.meth
= LOCATE_icode___icode_tools___ITypeCheck___inner_dup_with
;
1900 fra
.me
.has_broke
= 0;
1901 fra
.me
.REG_size
= 4;
1902 fra
.me
.REG
[0] = NIT_NULL
;
1903 fra
.me
.REG
[1] = NIT_NULL
;
1904 fra
.me
.REG
[2] = NIT_NULL
;
1905 fra
.me
.REG
[3] = NIT_NULL
;
1908 /* ./icode//icode_tools.nit:460 */
1909 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1910 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1911 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1912 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1913 fra
.me
.REG
[0] = CALL_icode___icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1914 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1917 stack_frame_head
= fra
.me
.prev
;
1918 return fra
.me
.REG
[0];
1920 val_t
icode___icode_tools___IIs___inner_dup_with(val_t p0
, val_t p1
){
1921 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1923 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1924 fra
.me
.file
= LOCATE_icode___icode_tools
;
1926 fra
.me
.meth
= LOCATE_icode___icode_tools___IIs___inner_dup_with
;
1927 fra
.me
.has_broke
= 0;
1928 fra
.me
.REG_size
= 3;
1929 fra
.me
.REG
[0] = NIT_NULL
;
1930 fra
.me
.REG
[1] = NIT_NULL
;
1931 fra
.me
.REG
[2] = NIT_NULL
;
1934 /* ./icode//icode_tools.nit:467 */
1935 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1936 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1937 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1938 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1939 fra
.me
.REG
[0] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1942 stack_frame_head
= fra
.me
.prev
;
1943 return fra
.me
.REG
[0];
1945 val_t
icode___icode_tools___INot___inner_dup_with(val_t p0
, val_t p1
){
1946 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1948 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1949 fra
.me
.file
= LOCATE_icode___icode_tools
;
1951 fra
.me
.meth
= LOCATE_icode___icode_tools___INot___inner_dup_with
;
1952 fra
.me
.has_broke
= 0;
1953 fra
.me
.REG_size
= 2;
1954 fra
.me
.REG
[0] = NIT_NULL
;
1955 fra
.me
.REG
[1] = NIT_NULL
;
1958 /* ./icode//icode_tools.nit:474 */
1959 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1960 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1961 fra
.me
.REG
[0] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[0]);
1964 stack_frame_head
= fra
.me
.prev
;
1965 return fra
.me
.REG
[0];
1967 val_t
icode___icode_tools___IOnce___inner_dup_with(val_t p0
, val_t p1
){
1968 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1970 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1971 fra
.me
.file
= LOCATE_icode___icode_tools
;
1973 fra
.me
.meth
= LOCATE_icode___icode_tools___IOnce___inner_dup_with
;
1974 fra
.me
.has_broke
= 0;
1975 fra
.me
.REG_size
= 4;
1976 fra
.me
.REG
[0] = NIT_NULL
;
1977 fra
.me
.REG
[1] = NIT_NULL
;
1978 fra
.me
.REG
[2] = NIT_NULL
;
1979 fra
.me
.REG
[3] = NIT_NULL
;
1982 /* ./icode//icode_tools.nit:481 */
1983 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
1984 /* ./icode//icode_tools.nit:482 */
1985 fra
.me
.REG
[0] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1986 fra
.me
.REG
[3] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1987 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
1988 /* ./icode//icode_tools.nit:483 */
1991 stack_frame_head
= fra
.me
.prev
;
1992 return fra
.me
.REG
[2];
1994 val_t
icode___icode_tools___IHasClos___inner_dup_with(val_t p0
, val_t p1
){
1995 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1999 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2000 fra
.me
.file
= LOCATE_icode___icode_tools
;
2002 fra
.me
.meth
= LOCATE_icode___icode_tools___IHasClos___inner_dup_with
;
2003 fra
.me
.has_broke
= 0;
2004 fra
.me
.REG_size
= 5;
2005 fra
.me
.REG
[0] = NIT_NULL
;
2006 fra
.me
.REG
[1] = NIT_NULL
;
2007 fra
.me
.REG
[2] = NIT_NULL
;
2008 fra
.me
.REG
[3] = NIT_NULL
;
2009 fra
.me
.REG
[4] = NIT_NULL
;
2012 /* ./icode//icode_tools.nit:488 */
2013 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2014 /* ./icode//icode_tools.nit:490 */
2015 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1])!=NIT_NULL
);
2016 if (UNTAG_Bool(REGB0
)) {
2018 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 490);
2020 fra
.me
.REG
[3] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1]);
2021 fra
.me
.REG
[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2022 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2023 if (UNTAG_Bool(REGB0
)) {
2024 /* ./icode//icode_tools.nit:492 */
2025 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1])!=NIT_NULL
);
2026 if (UNTAG_Bool(REGB0
)) {
2028 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 492);
2030 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1]);
2031 fra
.me
.REG
[3] = CALL_icode___icode_base___IHasClos___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2032 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2033 /* ./icode//icode_tools.nit:494 */
2034 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2035 if (UNTAG_Bool(REGB0
)) {
2037 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2038 if (UNTAG_Bool(REGB1
)) {
2039 REGB1
= TAG_Bool(false);
2042 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2046 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2047 if (UNTAG_Bool(REGB0
)) {
2048 /* ./icode//icode_tools.nit:495 */
2049 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
2050 if (UNTAG_Bool(REGB0
)) {
2052 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 495);
2054 fra
.me
.REG
[3] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
2055 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2057 /* ./icode//icode_tools.nit:497 */
2058 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
2059 if (UNTAG_Bool(REGB0
)) {
2061 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 497);
2063 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
2064 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2065 fra
.me
.REG
[3] = fra
.me
.REG
[4];
2067 /* ./icode//icode_tools.nit:499 */
2068 fra
.me
.REG
[4] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2069 REGB0
= TAG_Bool((fra
.me
.REG
[4]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[4], COLOR_icode___icode_base___IRegister
, ID_icode___icode_base___IRegister
)) /*cast IRegister*/;
2070 if (UNTAG_Bool(REGB0
)) {
2072 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_tools
, 499);
2074 fra
.me
.REG
[4] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2075 fra
.me
.REG
[3] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2078 /* ./icode//icode_tools.nit:501 */
2079 fra
.me
.REG
[2] = CALL_icode___icode_base___IHasClos___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2080 fra
.me
.REG
[2] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[2]);
2081 fra
.me
.REG
[3] = fra
.me
.REG
[2];
2085 stack_frame_head
= fra
.me
.prev
;
2086 return fra
.me
.REG
[3];