1 /* This C file is generated by NIT to compile module icode_tools. */
2 #include "icode_tools._sep.h"
3 void 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_tools
;
9 fra
.me
.meth
= LOCATE_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 /* ./icode//icode_tools.nit:22 */
19 stack_frame_head
= fra
.me
.prev
;
22 void icode_tools___ICodeVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
23 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
25 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
26 fra
.me
.file
= LOCATE_icode_tools
;
28 fra
.me
.meth
= LOCATE_icode_tools___ICodeVisitor___visit_iregister_write
;
31 fra
.me
.REG
[0] = NIT_NULL
;
32 fra
.me
.REG
[1] = NIT_NULL
;
33 fra
.me
.REG
[2] = NIT_NULL
;
37 /* ./icode//icode_tools.nit:25 */
38 stack_frame_head
= fra
.me
.prev
;
41 val_t
icode_tools___ICodeVisitor___current_icode(val_t p0
){
42 struct {struct stack_frame_t me
;} fra
;
44 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
45 fra
.me
.file
= LOCATE_icode_tools
;
47 fra
.me
.meth
= LOCATE_icode_tools___ICodeVisitor___current_icode
;
50 fra
.me
.REG
[0] = NIT_NULL
;
52 fra
.me
.REG
[0] = ATTR_icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]);
53 /* ./icode//icode_tools.nit:28 */
54 stack_frame_head
= fra
.me
.prev
;
57 void icode_tools___ICodeVisitor___visit_icode(val_t p0
, val_t p1
){
58 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
62 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
63 fra
.me
.file
= LOCATE_icode_tools
;
65 fra
.me
.meth
= LOCATE_icode_tools___ICodeVisitor___visit_icode
;
68 fra
.me
.REG
[0] = NIT_NULL
;
69 fra
.me
.REG
[1] = NIT_NULL
;
70 fra
.me
.REG
[2] = NIT_NULL
;
71 fra
.me
.REG
[3] = NIT_NULL
;
72 fra
.me
.REG
[4] = NIT_NULL
;
75 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
76 /* ./icode//icode_tools.nit:36 */
77 if (UNTAG_Bool(REGB0
)) {
79 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
80 if (UNTAG_Bool(REGB1
)) {
81 REGB1
= TAG_Bool(false);
84 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
88 if (UNTAG_Bool(REGB0
)) {
91 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_ISeq
, ID_ISeq
)) /*cast ISeq*/;
92 /* ./icode//icode_tools.nit:37 */
93 if (UNTAG_Bool(REGB0
)) {
94 fra
.me
.REG
[2] = ATTR_icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]);
95 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
96 /* ./icode//icode_tools.nit:39 */
97 if (UNTAG_Bool(REGB0
)) {
98 fprintf(stderr
, "Reciever is null");
99 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 39);
102 fra
.me
.REG
[3] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
103 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
104 /* ./icode//icode_tools.nit:40 */
106 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
107 if (UNTAG_Bool(REGB0
)) {
108 /* ./icode//icode_tools.nit:41 */
109 ATTR_icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
110 fra
.me
.REG
[4] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
111 /* ./icode//icode_tools.nit:43 */
112 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
113 /* ./icode//icode_tools.nit:44 */
114 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
116 /* ./icode//icode_tools.nit:40 */
121 /* ./icode//icode_tools.nit:46 */
122 ATTR_icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
124 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_IIf
, ID_IIf
)) /*cast IIf*/;
125 /* ./icode//icode_tools.nit:47 */
126 if (UNTAG_Bool(REGB0
)) {
127 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
128 /* ./icode//icode_tools.nit:48 */
129 if (UNTAG_Bool(REGB0
)) {
130 fprintf(stderr
, "Reciever is null");
131 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 48);
134 fra
.me
.REG
[2] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
135 CALL_icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
136 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
137 /* ./icode//icode_tools.nit:49 */
138 if (UNTAG_Bool(REGB0
)) {
139 fprintf(stderr
, "Reciever is null");
140 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 49);
143 fra
.me
.REG
[2] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
144 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
145 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
146 /* ./icode//icode_tools.nit:50 */
147 if (UNTAG_Bool(REGB0
)) {
148 fprintf(stderr
, "Reciever is null");
149 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 50);
152 fra
.me
.REG
[2] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
153 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
155 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_IOnce
, ID_IOnce
)) /*cast IOnce*/;
156 /* ./icode//icode_tools.nit:51 */
157 if (UNTAG_Bool(REGB0
)) {
158 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
159 /* ./icode//icode_tools.nit:52 */
160 if (UNTAG_Bool(REGB0
)) {
161 fprintf(stderr
, "Reciever is null");
162 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 52);
165 fra
.me
.REG
[2] = CALL_icode_base___IOnce___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
166 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
168 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_ICode1
, ID_ICode1
)) /*cast ICode1*/;
169 /* ./icode//icode_tools.nit:53 */
170 if (UNTAG_Bool(REGB0
)) {
171 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
172 /* ./icode//icode_tools.nit:54 */
173 if (UNTAG_Bool(REGB0
)) {
174 fprintf(stderr
, "Reciever is null");
175 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 54);
178 fra
.me
.REG
[2] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
179 CALL_icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
181 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_ICode2
, ID_ICode2
)) /*cast ICode2*/;
182 /* ./icode//icode_tools.nit:55 */
183 if (UNTAG_Bool(REGB0
)) {
184 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
185 /* ./icode//icode_tools.nit:56 */
186 if (UNTAG_Bool(REGB0
)) {
187 fprintf(stderr
, "Reciever is null");
188 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 56);
191 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
192 CALL_icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
193 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
194 /* ./icode//icode_tools.nit:57 */
195 if (UNTAG_Bool(REGB0
)) {
196 fprintf(stderr
, "Reciever is null");
197 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 57);
200 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
201 CALL_icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
203 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_ICodeN
, ID_ICodeN
)) /*cast ICodeN*/;
204 /* ./icode//icode_tools.nit:58 */
205 if (UNTAG_Bool(REGB0
)) {
206 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
207 /* ./icode//icode_tools.nit:59 */
208 if (UNTAG_Bool(REGB0
)) {
209 fprintf(stderr
, "Reciever is null");
210 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 59);
213 fra
.me
.REG
[2] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
214 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
216 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
217 if (UNTAG_Bool(REGB0
)) {
218 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
219 /* ./icode//icode_tools.nit:60 */
220 CALL_icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
222 /* ./icode//icode_tools.nit:59 */
225 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
228 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
229 /* ./icode//icode_tools.nit:62 */
230 if (UNTAG_Bool(REGB0
)) {
231 fprintf(stderr
, "Reciever is null");
232 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 62);
235 fra
.me
.REG
[2] = CALL_icode_base___ICodeN___closure_defs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
236 REGB0
= TAG_Bool((fra
.me
.REG
[1]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[1], COLOR_IClosCall
, ID_IClosCall
)) /*cast IClosCall*/;
237 /* ./icode//icode_tools.nit:63 */
238 if (UNTAG_Bool(REGB0
)) {
239 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
240 /* ./icode//icode_tools.nit:64 */
241 if (UNTAG_Bool(REGB0
)) {
242 fprintf(stderr
, "Reciever is null");
243 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 64);
246 fra
.me
.REG
[3] = CALL_icode_base___IClosCall___break_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
247 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
249 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
250 /* ./icode//icode_tools.nit:66 */
251 if (UNTAG_Bool(REGB0
)) {
253 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
254 if (UNTAG_Bool(REGB1
)) {
255 REGB1
= TAG_Bool(false);
258 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
262 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
263 if (UNTAG_Bool(REGB0
)) {
264 /* ./icode//icode_tools.nit:67 */
265 CALL_icode_tools___ICodeVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
273 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
274 /* ./icode//icode_tools.nit:70 */
275 if (UNTAG_Bool(REGB0
)) {
276 fprintf(stderr
, "Reciever is null");
277 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 70);
280 fra
.me
.REG
[2] = CALL_icode_base___ICode___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
281 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
282 /* ./icode//icode_tools.nit:71 */
283 if (UNTAG_Bool(REGB0
)) {
285 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
286 if (UNTAG_Bool(REGB1
)) {
287 REGB1
= TAG_Bool(false);
290 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
294 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
295 if (UNTAG_Bool(REGB0
)) {
296 CALL_icode_tools___ICodeVisitor___visit_iregister_write(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
299 stack_frame_head
= fra
.me
.prev
;
302 void icode_tools___ICodeVisitor___visit_closure_defs(val_t p0
, val_t p1
){
303 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
307 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
308 fra
.me
.file
= LOCATE_icode_tools
;
310 fra
.me
.meth
= LOCATE_icode_tools___ICodeVisitor___visit_closure_defs
;
311 fra
.me
.has_broke
= 0;
313 fra
.me
.REG
[0] = NIT_NULL
;
314 fra
.me
.REG
[1] = NIT_NULL
;
315 fra
.me
.REG
[2] = NIT_NULL
;
318 fra
.me
.REG
[1] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
319 /* ./icode//icode_tools.nit:78 */
321 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
322 if (UNTAG_Bool(REGB0
)) {
323 fra
.me
.REG
[2] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
324 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
325 /* ./icode//icode_tools.nit:79 */
326 if (UNTAG_Bool(REGB0
)) {
328 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
329 if (UNTAG_Bool(REGB1
)) {
330 REGB1
= TAG_Bool(false);
333 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
337 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
338 if (UNTAG_Bool(REGB0
)) {
339 /* ./icode//icode_tools.nit:80 */
340 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
343 /* ./icode//icode_tools.nit:78 */
346 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
349 stack_frame_head
= fra
.me
.prev
;
352 void icode_tools___ICodeVisitor___visit_iroutine(val_t p0
, val_t p1
){
353 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
355 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
356 fra
.me
.file
= LOCATE_icode_tools
;
358 fra
.me
.meth
= LOCATE_icode_tools___ICodeVisitor___visit_iroutine
;
359 fra
.me
.has_broke
= 0;
361 fra
.me
.REG
[0] = NIT_NULL
;
362 fra
.me
.REG
[1] = NIT_NULL
;
365 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
366 /* ./icode//icode_tools.nit:90 */
367 CALL_icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
368 stack_frame_head
= fra
.me
.prev
;
371 void icode_tools___ICodeVisitor___init(val_t p0
, int* init_table
){
372 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_ICodeVisitor
].i
;
373 struct {struct stack_frame_t me
;} fra
;
375 if (init_table
[itpos0
]) return;
376 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
377 fra
.me
.file
= LOCATE_icode_tools
;
379 fra
.me
.meth
= LOCATE_icode_tools___ICodeVisitor___init
;
380 fra
.me
.has_broke
= 0;
382 stack_frame_head
= fra
.me
.prev
;
383 init_table
[itpos0
] = 1;
386 val_t
icode_tools___ICodeBuilder___is_currently_inlining_routine(val_t p0
, val_t p1
){
387 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
391 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
392 fra
.me
.file
= LOCATE_icode_tools
;
394 fra
.me
.meth
= LOCATE_icode_tools___ICodeBuilder___is_currently_inlining_routine
;
395 fra
.me
.has_broke
= 0;
397 fra
.me
.REG
[0] = NIT_NULL
;
398 fra
.me
.REG
[1] = NIT_NULL
;
399 fra
.me
.REG
[2] = NIT_NULL
;
402 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
403 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[2]));
404 /* ./icode//icode_tools.nit:102 */
405 if (UNTAG_Bool(REGB0
)) {
407 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
410 if (UNTAG_Bool(REGB0
)) {
411 REGB0
= TAG_Bool(true);
413 REGB1
= TAG_Bool(ATTR_icode_tools___ICodeBuilder____current_inlining(fra
.me
.REG
[0])!=NIT_NULL
);
414 if (UNTAG_Bool(REGB1
)) {
416 fprintf(stderr
, "Uninitialized attribute %s", "_current_inlining");
417 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 102);
420 fra
.me
.REG
[0] = ATTR_icode_tools___ICodeBuilder____current_inlining(fra
.me
.REG
[0]);
421 REGB1
= CALL_abstract_collection___Collection___has(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
426 stack_frame_head
= fra
.me
.prev
;
429 val_t
icode_tools___ICodeBuilder___inline_routine(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
430 struct {struct stack_frame_t me
; val_t MORE_REG
[10];} fra
;
436 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
437 fra
.me
.file
= LOCATE_icode_tools
;
439 fra
.me
.meth
= LOCATE_icode_tools___ICodeBuilder___inline_routine
;
440 fra
.me
.has_broke
= 0;
441 fra
.me
.REG_size
= 11;
442 fra
.me
.REG
[0] = NIT_NULL
;
443 fra
.me
.REG
[1] = NIT_NULL
;
444 fra
.me
.REG
[2] = NIT_NULL
;
445 fra
.me
.REG
[3] = NIT_NULL
;
446 fra
.me
.REG
[4] = NIT_NULL
;
447 fra
.me
.REG
[5] = NIT_NULL
;
448 fra
.me
.REG
[6] = NIT_NULL
;
449 fra
.me
.REG
[7] = NIT_NULL
;
450 fra
.me
.REG
[8] = NIT_NULL
;
451 fra
.me
.REG
[9] = NIT_NULL
;
452 fra
.me
.REG
[10] = NIT_NULL
;
457 REGB0
= CALL_icode_tools___ICodeBuilder___is_currently_inlining_routine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
458 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
459 /* ./icode//icode_tools.nit:109 */
460 if (UNTAG_Bool(REGB0
)) {
462 fprintf(stderr
, "Assert failed");
463 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 109);
466 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeBuilder____current_inlining(fra
.me
.REG
[0])!=NIT_NULL
);
467 /* ./icode//icode_tools.nit:110 */
468 if (UNTAG_Bool(REGB0
)) {
470 fprintf(stderr
, "Uninitialized attribute %s", "_current_inlining");
471 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 110);
474 fra
.me
.REG
[4] = ATTR_icode_tools___ICodeBuilder____current_inlining(fra
.me
.REG
[0]);
475 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[1]);
476 fra
.me
.REG
[4] = NEW_ICodeDupContext_icode_tools___ICodeDupContext___init(fra
.me
.REG
[0]);
477 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
478 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
479 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
480 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
481 /* ./icode//icode_tools.nit:112 */
482 if (UNTAG_Bool(REGB2
)) {
484 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
486 /* ./icode//icode_tools.nit:112 */
488 if (UNTAG_Bool(REGB2
)) {
490 fprintf(stderr
, "Assert failed");
491 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 112);
494 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___closure_decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
495 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
496 /* ./icode//icode_tools.nit:114 */
497 if (UNTAG_Bool(REGB2
)) {
499 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
500 if (UNTAG_Bool(REGB1
)) {
501 REGB1
= TAG_Bool(false);
504 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
508 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
509 if (UNTAG_Bool(REGB2
)) {
510 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
511 if (UNTAG_Bool(REGB2
)) {
512 fprintf(stderr
, "Reciever is null");
513 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 114);
516 REGB2
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
521 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
522 /* ./icode//icode_tools.nit:115 */
523 if (UNTAG_Bool(REGB1
)) {
525 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
526 if (UNTAG_Bool(REGB0
)) {
527 REGB0
= TAG_Bool(false);
530 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
534 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
535 if (UNTAG_Bool(REGB1
)) {
536 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
537 if (UNTAG_Bool(REGB1
)) {
538 fprintf(stderr
, "Reciever is null");
539 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 115);
542 REGB1
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
547 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<=UNTAG_Int(REGB1
));
548 /* ./icode//icode_tools.nit:116 */
549 if (UNTAG_Bool(REGB0
)) {
551 fprintf(stderr
, "Assert failed");
552 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 116);
555 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____registers(fra
.me
.REG
[4])!=NIT_NULL
);
556 /* ./icode//icode_tools.nit:119 */
557 if (UNTAG_Bool(REGB0
)) {
559 fprintf(stderr
, "Uninitialized attribute %s", "_registers");
560 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 119);
563 fra
.me
.REG
[6] = ATTR_icode_tools___ICodeDupContext____registers(fra
.me
.REG
[4]);
564 fra
.me
.REG
[7] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
565 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
566 /* ./icode//icode_tools.nit:121 */
567 if (UNTAG_Bool(REGB0
)) {
569 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
570 if (UNTAG_Bool(REGB3
)) {
571 REGB3
= TAG_Bool(false);
574 REGB3
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
578 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
579 if (UNTAG_Bool(REGB0
)) {
580 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
581 /* ./icode//icode_tools.nit:122 */
582 if (UNTAG_Bool(REGB0
)) {
583 fprintf(stderr
, "Reciever is null");
584 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 122);
587 fra
.me
.REG
[8] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
588 fra
.me
.REG
[8] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
589 /* ./icode//icode_tools.nit:123 */
590 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
591 fra
.me
.REG
[7] = fra
.me
.REG
[8];
592 /* ./icode//icode_tools.nit:124 */
594 fra
.me
.REG
[8] = CALL_icode_base___IRoutine___registers(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
595 fra
.me
.REG
[8] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
596 /* ./icode//icode_tools.nit:126 */
598 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
599 if (UNTAG_Bool(REGB0
)) {
600 fra
.me
.REG
[9] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
601 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[9]);
602 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
603 /* ./icode//icode_tools.nit:127 */
604 if (UNTAG_Bool(REGB0
)) {
606 fprintf(stderr
, "Assert failed");
607 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 127);
610 fra
.me
.REG
[10] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
611 fra
.me
.REG
[10] = CALL_icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[10]);
612 /* ./icode//icode_tools.nit:128 */
613 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[9], fra
.me
.REG
[10]);
615 /* ./icode//icode_tools.nit:126 */
618 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
622 REGB3
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
623 fra
.me
.REG
[8] = NEW_Range_range___Range___without_last(REGB0
, REGB3
);
624 fra
.me
.REG
[8] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
625 /* ./icode//icode_tools.nit:130 */
627 REGB3
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
628 if (UNTAG_Bool(REGB3
)) {
629 REGB3
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
630 fra
.me
.REG
[10] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
631 fra
.me
.REG
[10] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[10])(fra
.me
.REG
[10], REGB3
);
632 fra
.me
.REG
[9] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB3
);
633 /* ./icode//icode_tools.nit:133 */
634 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[10], fra
.me
.REG
[9]);
636 /* ./icode//icode_tools.nit:130 */
639 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
642 fra
.me
.REG
[8] = CALL_icode_base___IRoutine___escape_marks(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
643 fra
.me
.REG
[8] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
644 /* ./icode//icode_tools.nit:138 */
646 REGB3
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
647 if (UNTAG_Bool(REGB3
)) {
648 fra
.me
.REG
[6] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
649 fra
.me
.REG
[2] = NEW_IEscapeMark_icode_base___IEscapeMark___init();
650 fra
.me
.REG
[9] = CALL_icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
651 fra
.me
.REG
[9] = CALL_icode_base___IRoutine___escape_marks(fra
.me
.REG
[9])(fra
.me
.REG
[9]);
652 /* ./icode//icode_tools.nit:140 */
653 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[2]);
654 REGB3
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____marks(fra
.me
.REG
[4])!=NIT_NULL
);
655 /* ./icode//icode_tools.nit:141 */
656 if (UNTAG_Bool(REGB3
)) {
658 fprintf(stderr
, "Uninitialized attribute %s", "_marks");
659 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 141);
662 fra
.me
.REG
[9] = ATTR_icode_tools___ICodeDupContext____marks(fra
.me
.REG
[4]);
663 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[9])(fra
.me
.REG
[9], fra
.me
.REG
[6], fra
.me
.REG
[2]);
665 /* ./icode//icode_tools.nit:138 */
668 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[8])(fra
.me
.REG
[8]);
671 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
672 /* ./icode//icode_tools.nit:145 */
673 if (UNTAG_Bool(REGB3
)) {
675 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
676 if (UNTAG_Bool(REGB0
)) {
677 REGB0
= TAG_Bool(false);
680 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
684 REGB3
= TAG_Bool(!UNTAG_Bool(REGB3
));
685 if (UNTAG_Bool(REGB3
)) {
686 REGB3
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____closures(fra
.me
.REG
[4])!=NIT_NULL
);
687 /* ./icode//icode_tools.nit:146 */
688 if (UNTAG_Bool(REGB3
)) {
690 fprintf(stderr
, "Uninitialized attribute %s", "_closures");
691 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 146);
694 fra
.me
.REG
[8] = ATTR_icode_tools___ICodeDupContext____closures(fra
.me
.REG
[4]);
696 fra
.me
.REG
[2] = NEW_Range_range___Range___without_last(REGB3
, REGB2
);
697 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
698 /* ./icode//icode_tools.nit:147 */
700 REGB3
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
701 if (UNTAG_Bool(REGB3
)) {
702 REGB3
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
703 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
704 /* ./icode//icode_tools.nit:148 */
705 if (UNTAG_Bool(REGB0
)) {
706 fprintf(stderr
, "Reciever is null");
707 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 148);
710 fra
.me
.REG
[6] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB3
);
711 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
712 if (UNTAG_Bool(REGB0
)) {
713 fprintf(stderr
, "Reciever is null");
714 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 148);
717 fra
.me
.REG
[9] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB3
);
718 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[6], fra
.me
.REG
[9]);
720 /* ./icode//icode_tools.nit:147 */
723 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
726 fra
.me
.REG
[2] = NEW_Range_range___Range___without_last(REGB2
, REGB1
);
727 fra
.me
.REG
[2] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
728 /* ./icode//icode_tools.nit:150 */
730 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
731 if (UNTAG_Bool(REGB1
)) {
732 REGB1
= CALL_abstract_collection___Iterator___item(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
733 REGB2
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
734 /* ./icode//icode_tools.nit:151 */
735 if (UNTAG_Bool(REGB2
)) {
736 fprintf(stderr
, "Reciever is null");
737 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 151);
740 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB1
);
741 CALL_abstract_collection___Map_____braeq(fra
.me
.REG
[8])(fra
.me
.REG
[8], fra
.me
.REG
[3], NIT_NULL
);
743 /* ./icode//icode_tools.nit:150 */
746 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
750 fra
.me
.REG
[1] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
751 /* ./icode//icode_tools.nit:156 */
752 CALL_icode_tools___ICode___dup_with(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
753 REGB1
= TAG_Bool(ATTR_icode_tools___ICodeBuilder____current_inlining(fra
.me
.REG
[0])!=NIT_NULL
);
754 /* ./icode//icode_tools.nit:157 */
755 if (UNTAG_Bool(REGB1
)) {
757 fprintf(stderr
, "Uninitialized attribute %s", "_current_inlining");
758 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 157);
761 fra
.me
.REG
[0] = ATTR_icode_tools___ICodeBuilder____current_inlining(fra
.me
.REG
[0]);
762 CALL_abstract_collection___Sequence___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
763 /* ./icode//icode_tools.nit:158 */
766 stack_frame_head
= fra
.me
.prev
;
767 return fra
.me
.REG
[7];
769 val_t
icode_tools___ICodeDupContext___dup_ireg(val_t p0
, val_t p1
){
770 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
773 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
774 fra
.me
.file
= LOCATE_icode_tools
;
776 fra
.me
.meth
= LOCATE_icode_tools___ICodeDupContext___dup_ireg
;
777 fra
.me
.has_broke
= 0;
779 fra
.me
.REG
[0] = NIT_NULL
;
780 fra
.me
.REG
[1] = NIT_NULL
;
783 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____registers(fra
.me
.REG
[0])!=NIT_NULL
);
784 /* ./icode//icode_tools.nit:169 */
785 if (UNTAG_Bool(REGB0
)) {
787 fprintf(stderr
, "Uninitialized attribute %s", "_registers");
788 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 169);
791 fra
.me
.REG
[0] = ATTR_icode_tools___ICodeDupContext____registers(fra
.me
.REG
[0]);
792 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
793 /* ./icode//icode_tools.nit:170 */
794 if (UNTAG_Bool(REGB0
)) {
795 fra
.me
.REG
[0] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
796 /* ./icode//icode_tools.nit:171 */
799 fra
.me
.REG
[0] = fra
.me
.REG
[1];
800 /* ./icode//icode_tools.nit:173 */
804 stack_frame_head
= fra
.me
.prev
;
805 return fra
.me
.REG
[0];
807 val_t
icode_tools___ICodeDupContext___dup_iregs(val_t p0
, val_t p1
){
808 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
811 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
812 fra
.me
.file
= LOCATE_icode_tools
;
814 fra
.me
.meth
= LOCATE_icode_tools___ICodeDupContext___dup_iregs
;
815 fra
.me
.has_broke
= 0;
817 fra
.me
.REG
[0] = NIT_NULL
;
818 fra
.me
.REG
[1] = NIT_NULL
;
819 fra
.me
.REG
[2] = NIT_NULL
;
820 fra
.me
.REG
[3] = NIT_NULL
;
823 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
824 fra
.me
.REG
[2] = NEW_Array_array___Array___with_capacity(REGB0
);
825 fra
.me
.REG
[1] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
826 /* ./icode//icode_tools.nit:181 */
828 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
829 if (UNTAG_Bool(REGB0
)) {
830 fra
.me
.REG
[3] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
831 fra
.me
.REG
[3] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
832 /* ./icode//icode_tools.nit:182 */
833 array___Array___add(fra
.me
.REG
[2], fra
.me
.REG
[3]);
835 /* ./icode//icode_tools.nit:181 */
838 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
841 /* ./icode//icode_tools.nit:184 */
844 stack_frame_head
= fra
.me
.prev
;
845 return fra
.me
.REG
[2];
847 val_t
icode_tools___ICodeDupContext___dup_mark(val_t p0
, val_t p1
){
848 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
851 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
852 fra
.me
.file
= LOCATE_icode_tools
;
854 fra
.me
.meth
= LOCATE_icode_tools___ICodeDupContext___dup_mark
;
855 fra
.me
.has_broke
= 0;
857 fra
.me
.REG
[0] = NIT_NULL
;
858 fra
.me
.REG
[1] = NIT_NULL
;
861 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____marks(fra
.me
.REG
[0])!=NIT_NULL
);
862 /* ./icode//icode_tools.nit:196 */
863 if (UNTAG_Bool(REGB0
)) {
865 fprintf(stderr
, "Uninitialized attribute %s", "_marks");
866 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 196);
869 fra
.me
.REG
[0] = ATTR_icode_tools___ICodeDupContext____marks(fra
.me
.REG
[0]);
870 REGB0
= CALL_abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
871 /* ./icode//icode_tools.nit:197 */
872 if (UNTAG_Bool(REGB0
)) {
873 fra
.me
.REG
[0] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
874 /* ./icode//icode_tools.nit:198 */
877 fra
.me
.REG
[0] = fra
.me
.REG
[1];
878 /* ./icode//icode_tools.nit:200 */
882 stack_frame_head
= fra
.me
.prev
;
883 return fra
.me
.REG
[0];
885 void icode_tools___ICodeDupContext___init(val_t p0
, val_t p1
, int* init_table
){
886 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_ICodeDupContext
].i
;
887 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
889 if (init_table
[itpos1
]) return;
890 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
891 fra
.me
.file
= LOCATE_icode_tools
;
893 fra
.me
.meth
= LOCATE_icode_tools___ICodeDupContext___init
;
894 fra
.me
.has_broke
= 0;
896 fra
.me
.REG
[0] = NIT_NULL
;
897 fra
.me
.REG
[1] = NIT_NULL
;
900 /* ./icode//icode_tools.nit:216 */
901 ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
902 stack_frame_head
= fra
.me
.prev
;
903 init_table
[itpos1
] = 1;
906 void icode_tools___ICode___dup_with(val_t p0
, val_t p1
){
907 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
911 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
912 fra
.me
.file
= LOCATE_icode_tools
;
914 fra
.me
.meth
= LOCATE_icode_tools___ICode___dup_with
;
915 fra
.me
.has_broke
= 0;
917 fra
.me
.REG
[0] = NIT_NULL
;
918 fra
.me
.REG
[1] = NIT_NULL
;
919 fra
.me
.REG
[2] = NIT_NULL
;
920 fra
.me
.REG
[3] = NIT_NULL
;
921 fra
.me
.REG
[4] = NIT_NULL
;
922 fra
.me
.REG
[5] = NIT_NULL
;
923 fra
.me
.REG
[6] = NIT_NULL
;
924 fra
.me
.REG
[7] = NIT_NULL
;
927 fra
.me
.REG
[2] = CALL_icode_tools___ICode___inner_dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
928 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_ICodeN
, ID_ICodeN
)) /*cast ICodeN*/;
929 /* ./icode//icode_tools.nit:225 */
930 if (UNTAG_Bool(REGB0
)) {
931 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_ICodeN
, ID_ICodeN
)) /*cast ICodeN*/;
932 /* ./icode//icode_tools.nit:226 */
933 if (UNTAG_Bool(REGB0
)) {
935 fprintf(stderr
, "Assert failed");
936 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 226);
939 fra
.me
.REG
[3] = CALL_icode_base___ICodeN___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
940 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
941 /* ./icode//icode_tools.nit:228 */
942 if (UNTAG_Bool(REGB0
)) {
944 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
945 if (UNTAG_Bool(REGB1
)) {
946 REGB1
= TAG_Bool(false);
949 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
953 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
954 if (UNTAG_Bool(REGB0
)) {
955 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
956 /* ./icode//icode_tools.nit:230 */
957 if (UNTAG_Bool(REGB0
)) {
958 fprintf(stderr
, "Reciever is null");
959 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 230);
962 REGB0
= CALL_abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
963 fra
.me
.REG
[4] = NEW_Array_array___Array___with_capacity(REGB0
);
964 fra
.me
.REG
[3] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
965 /* ./icode//icode_tools.nit:231 */
967 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
968 if (UNTAG_Bool(REGB0
)) {
969 fra
.me
.REG
[5] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
970 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
971 /* ./icode//icode_tools.nit:232 */
972 if (UNTAG_Bool(REGB0
)) {
974 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
975 if (UNTAG_Bool(REGB1
)) {
976 REGB1
= TAG_Bool(false);
979 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
983 if (UNTAG_Bool(REGB0
)) {
984 /* ./icode//icode_tools.nit:233 */
985 array___Array___add(fra
.me
.REG
[4], NIT_NULL
);
987 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
988 /* ./icode//icode_tools.nit:235 */
989 if (UNTAG_Bool(REGB0
)) {
990 fprintf(stderr
, "Reciever is null");
991 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 235);
994 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
995 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
996 /* ./icode//icode_tools.nit:236 */
997 if (UNTAG_Bool(REGB0
)) {
999 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1000 if (UNTAG_Bool(REGB1
)) {
1001 REGB1
= TAG_Bool(false);
1004 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1008 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1009 if (UNTAG_Bool(REGB0
)) {
1010 fra
.me
.REG
[7] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[6]);
1011 fra
.me
.REG
[6] = fra
.me
.REG
[7];
1013 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1014 /* ./icode//icode_tools.nit:237 */
1015 if (UNTAG_Bool(REGB0
)) {
1016 fprintf(stderr
, "Reciever is null");
1017 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 237);
1020 fra
.me
.REG
[7] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1021 fra
.me
.REG
[7] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[7]);
1022 fra
.me
.REG
[6] = NEW_IClosureDef_icode_base___IClosureDef___init(fra
.me
.REG
[7], fra
.me
.REG
[6]);
1023 /* ./icode//icode_tools.nit:238 */
1024 array___Array___add(fra
.me
.REG
[4], fra
.me
.REG
[6]);
1025 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1026 /* ./icode//icode_tools.nit:239 */
1027 if (UNTAG_Bool(REGB0
)) {
1028 fprintf(stderr
, "Reciever is null");
1029 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 239);
1032 fra
.me
.REG
[5] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
1033 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___body(fra
.me
.REG
[6])(fra
.me
.REG
[6]);
1034 CALL_icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1], fra
.me
.REG
[6]);
1037 /* ./icode//icode_tools.nit:231 */
1040 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1043 /* ./icode//icode_tools.nit:242 */
1044 CALL_icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1047 fra
.me
.REG
[4] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1048 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1049 /* ./icode//icode_tools.nit:246 */
1050 if (UNTAG_Bool(REGB0
)) {
1052 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1053 if (UNTAG_Bool(REGB1
)) {
1054 REGB1
= TAG_Bool(false);
1057 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1061 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1062 if (UNTAG_Bool(REGB0
)) {
1063 fra
.me
.REG
[4] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1064 CALL_icode_base___ICode___result__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
1066 fra
.me
.REG
[0] = CALL_icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1067 /* ./icode//icode_tools.nit:247 */
1068 CALL_icode_base___ICode___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1069 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1070 /* ./icode//icode_tools.nit:248 */
1071 if (UNTAG_Bool(REGB0
)) {
1073 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1074 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 248);
1077 fra
.me
.REG
[1] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1078 fra
.me
.REG
[1] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1079 fra
.me
.REG
[1] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1080 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1081 stack_frame_head
= fra
.me
.prev
;
1084 val_t
icode_tools___ICode___inner_dup_with(val_t p0
, val_t p1
){
1085 struct {struct stack_frame_t me
;} fra
;
1087 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1088 fra
.me
.file
= LOCATE_icode_tools
;
1090 fra
.me
.meth
= LOCATE_icode_tools___ICode___inner_dup_with
;
1091 fra
.me
.has_broke
= 0;
1092 fra
.me
.REG_size
= 0;
1093 /* ./icode//icode_tools.nit:251 */
1094 fprintf(stderr
, "Deferred method called");
1095 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 251);
1097 stack_frame_head
= fra
.me
.prev
;
1100 val_t
icode_tools___ISeq___inner_dup_with(val_t p0
, val_t p1
){
1101 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1103 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1104 fra
.me
.file
= LOCATE_icode_tools
;
1106 fra
.me
.meth
= LOCATE_icode_tools___ISeq___inner_dup_with
;
1107 fra
.me
.has_broke
= 0;
1108 fra
.me
.REG_size
= 3;
1109 fra
.me
.REG
[0] = NIT_NULL
;
1110 fra
.me
.REG
[1] = NIT_NULL
;
1111 fra
.me
.REG
[2] = NIT_NULL
;
1114 fra
.me
.REG
[2] = NEW_ISeq_icode_base___ISeq___init();
1115 /* ./icode//icode_tools.nit:259 */
1116 CALL_icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1117 /* ./icode//icode_tools.nit:260 */
1120 stack_frame_head
= fra
.me
.prev
;
1121 return fra
.me
.REG
[2];
1123 void icode_tools___ISeq___dup_seq_to(val_t p0
, val_t p1
, val_t p2
){
1124 struct {struct stack_frame_t me
; val_t MORE_REG
[5];} fra
;
1128 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1129 fra
.me
.file
= LOCATE_icode_tools
;
1131 fra
.me
.meth
= LOCATE_icode_tools___ISeq___dup_seq_to
;
1132 fra
.me
.has_broke
= 0;
1133 fra
.me
.REG_size
= 6;
1134 fra
.me
.REG
[0] = NIT_NULL
;
1135 fra
.me
.REG
[1] = NIT_NULL
;
1136 fra
.me
.REG
[2] = NIT_NULL
;
1137 fra
.me
.REG
[3] = NIT_NULL
;
1138 fra
.me
.REG
[4] = NIT_NULL
;
1139 fra
.me
.REG
[5] = NIT_NULL
;
1143 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1144 /* ./icode//icode_tools.nit:267 */
1145 if (UNTAG_Bool(REGB0
)) {
1147 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1148 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 267);
1151 fra
.me
.REG
[3] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1152 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1153 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1154 /* ./icode//icode_tools.nit:268 */
1155 if (UNTAG_Bool(REGB0
)) {
1157 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1158 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 268);
1161 fra
.me
.REG
[4] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1162 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1163 fra
.me
.REG
[4] = CALL_icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1164 fra
.me
.REG
[4] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1165 /* ./icode//icode_tools.nit:269 */
1167 REGB0
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1168 if (UNTAG_Bool(REGB0
)) {
1169 fra
.me
.REG
[5] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1170 /* ./icode//icode_tools.nit:270 */
1171 CALL_icode_tools___ICode___dup_with(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[1]);
1173 /* ./icode//icode_tools.nit:269 */
1176 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
1179 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1180 /* ./icode//icode_tools.nit:272 */
1181 if (UNTAG_Bool(REGB0
)) {
1183 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1184 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 272);
1187 fra
.me
.REG
[4] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1188 CALL_icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1189 fra
.me
.REG
[3] = CALL_icode_base___ISeq___iescape_mark(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1190 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1191 /* ./icode//icode_tools.nit:273 */
1192 if (UNTAG_Bool(REGB0
)) {
1194 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1195 if (UNTAG_Bool(REGB1
)) {
1196 REGB1
= TAG_Bool(false);
1199 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1203 if (UNTAG_Bool(REGB0
)) {
1205 fprintf(stderr
, "Assert failed");
1206 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 273);
1209 fra
.me
.REG
[0] = CALL_icode_base___ISeq___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1210 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1211 /* ./icode//icode_tools.nit:275 */
1212 if (UNTAG_Bool(REGB0
)) {
1214 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1215 if (UNTAG_Bool(REGB1
)) {
1216 REGB1
= TAG_Bool(false);
1219 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1223 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1224 if (UNTAG_Bool(REGB0
)) {
1225 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1226 /* ./icode//icode_tools.nit:276 */
1227 CALL_icode_base___ISeq___iescape_mark__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1229 stack_frame_head
= fra
.me
.prev
;
1232 val_t
icode_tools___ILoop___inner_dup_with(val_t p0
, val_t p1
){
1233 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1235 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1236 fra
.me
.file
= LOCATE_icode_tools
;
1238 fra
.me
.meth
= LOCATE_icode_tools___ILoop___inner_dup_with
;
1239 fra
.me
.has_broke
= 0;
1240 fra
.me
.REG_size
= 3;
1241 fra
.me
.REG
[0] = NIT_NULL
;
1242 fra
.me
.REG
[1] = NIT_NULL
;
1243 fra
.me
.REG
[2] = NIT_NULL
;
1246 fra
.me
.REG
[2] = NEW_ILoop_icode_base___ILoop___init();
1247 /* ./icode//icode_tools.nit:285 */
1248 CALL_icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1249 /* ./icode//icode_tools.nit:286 */
1252 stack_frame_head
= fra
.me
.prev
;
1253 return fra
.me
.REG
[2];
1255 val_t
icode_tools___IIf___inner_dup_with(val_t p0
, val_t p1
){
1256 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1258 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1259 fra
.me
.file
= LOCATE_icode_tools
;
1261 fra
.me
.meth
= LOCATE_icode_tools___IIf___inner_dup_with
;
1262 fra
.me
.has_broke
= 0;
1263 fra
.me
.REG_size
= 5;
1264 fra
.me
.REG
[0] = NIT_NULL
;
1265 fra
.me
.REG
[1] = NIT_NULL
;
1266 fra
.me
.REG
[2] = NIT_NULL
;
1267 fra
.me
.REG
[3] = NIT_NULL
;
1268 fra
.me
.REG
[4] = NIT_NULL
;
1271 fra
.me
.REG
[2] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1272 fra
.me
.REG
[2] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1273 fra
.me
.REG
[2] = NEW_IIf_icode_base___IIf___init(fra
.me
.REG
[2]);
1274 fra
.me
.REG
[3] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1275 fra
.me
.REG
[4] = CALL_icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1276 /* ./icode//icode_tools.nit:294 */
1277 CALL_icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1278 fra
.me
.REG
[0] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1279 fra
.me
.REG
[4] = CALL_icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1280 /* ./icode//icode_tools.nit:295 */
1281 CALL_icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1282 /* ./icode//icode_tools.nit:296 */
1285 stack_frame_head
= fra
.me
.prev
;
1286 return fra
.me
.REG
[2];
1288 val_t
icode_tools___IEscape___inner_dup_with(val_t p0
, val_t p1
){
1289 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1291 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1292 fra
.me
.file
= LOCATE_icode_tools
;
1294 fra
.me
.meth
= LOCATE_icode_tools___IEscape___inner_dup_with
;
1295 fra
.me
.has_broke
= 0;
1296 fra
.me
.REG_size
= 2;
1297 fra
.me
.REG
[0] = NIT_NULL
;
1298 fra
.me
.REG
[1] = NIT_NULL
;
1301 fra
.me
.REG
[0] = CALL_icode_base___IEscape___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1302 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1303 fra
.me
.REG
[0] = NEW_IEscape_icode_base___IEscape___init(fra
.me
.REG
[0]);
1304 /* ./icode//icode_tools.nit:306 */
1307 stack_frame_head
= fra
.me
.prev
;
1308 return fra
.me
.REG
[0];
1310 val_t
icode_tools___IAbort___inner_dup_with(val_t p0
, val_t p1
){
1311 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1313 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1314 fra
.me
.file
= LOCATE_icode_tools
;
1316 fra
.me
.meth
= LOCATE_icode_tools___IAbort___inner_dup_with
;
1317 fra
.me
.has_broke
= 0;
1318 fra
.me
.REG_size
= 2;
1319 fra
.me
.REG
[0] = NIT_NULL
;
1320 fra
.me
.REG
[1] = NIT_NULL
;
1323 fra
.me
.REG
[1] = CALL_icode_base___IAbort___texts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1324 fra
.me
.REG
[0] = CALL_icode_base___IAbort___module_location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1325 fra
.me
.REG
[0] = NEW_IAbort_icode_base___IAbort___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1326 /* ./icode//icode_tools.nit:313 */
1329 stack_frame_head
= fra
.me
.prev
;
1330 return fra
.me
.REG
[0];
1332 val_t
icode_tools___ICall___inner_dup_with(val_t p0
, val_t p1
){
1333 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1335 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1336 fra
.me
.file
= LOCATE_icode_tools
;
1338 fra
.me
.meth
= LOCATE_icode_tools___ICall___inner_dup_with
;
1339 fra
.me
.has_broke
= 0;
1340 fra
.me
.REG_size
= 3;
1341 fra
.me
.REG
[0] = NIT_NULL
;
1342 fra
.me
.REG
[1] = NIT_NULL
;
1343 fra
.me
.REG
[2] = NIT_NULL
;
1346 fra
.me
.REG
[2] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1347 fra
.me
.REG
[0] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1348 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1349 fra
.me
.REG
[0] = NEW_ICall_icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1350 /* ./icode//icode_tools.nit:320 */
1353 stack_frame_head
= fra
.me
.prev
;
1354 return fra
.me
.REG
[0];
1356 val_t
icode_tools___ISuper___inner_dup_with(val_t p0
, val_t p1
){
1357 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1359 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1360 fra
.me
.file
= LOCATE_icode_tools
;
1362 fra
.me
.meth
= LOCATE_icode_tools___ISuper___inner_dup_with
;
1363 fra
.me
.has_broke
= 0;
1364 fra
.me
.REG_size
= 3;
1365 fra
.me
.REG
[0] = NIT_NULL
;
1366 fra
.me
.REG
[1] = NIT_NULL
;
1367 fra
.me
.REG
[2] = NIT_NULL
;
1370 fra
.me
.REG
[2] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1371 fra
.me
.REG
[0] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1372 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1373 fra
.me
.REG
[0] = NEW_ISuper_icode_base___ISuper___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1374 /* ./icode//icode_tools.nit:327 */
1377 stack_frame_head
= fra
.me
.prev
;
1378 return fra
.me
.REG
[0];
1380 val_t
icode_tools___INew___inner_dup_with(val_t p0
, val_t p1
){
1381 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1383 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1384 fra
.me
.file
= LOCATE_icode_tools
;
1386 fra
.me
.meth
= LOCATE_icode_tools___INew___inner_dup_with
;
1387 fra
.me
.has_broke
= 0;
1388 fra
.me
.REG_size
= 4;
1389 fra
.me
.REG
[0] = NIT_NULL
;
1390 fra
.me
.REG
[1] = NIT_NULL
;
1391 fra
.me
.REG
[2] = NIT_NULL
;
1392 fra
.me
.REG
[3] = NIT_NULL
;
1395 fra
.me
.REG
[2] = CALL_icode_base___INew___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1396 fra
.me
.REG
[3] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1397 fra
.me
.REG
[0] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1398 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1399 fra
.me
.REG
[0] = NEW_INew_icode_base___INew___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1400 /* ./icode//icode_tools.nit:334 */
1403 stack_frame_head
= fra
.me
.prev
;
1404 return fra
.me
.REG
[0];
1406 val_t
icode_tools___IAllocateInstance___inner_dup_with(val_t p0
, val_t p1
){
1407 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1409 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1410 fra
.me
.file
= LOCATE_icode_tools
;
1412 fra
.me
.meth
= LOCATE_icode_tools___IAllocateInstance___inner_dup_with
;
1413 fra
.me
.has_broke
= 0;
1414 fra
.me
.REG_size
= 2;
1415 fra
.me
.REG
[0] = NIT_NULL
;
1416 fra
.me
.REG
[1] = NIT_NULL
;
1419 fra
.me
.REG
[0] = CALL_icode_base___IAllocateInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1420 fra
.me
.REG
[0] = NEW_IAllocateInstance_icode_base___IAllocateInstance___init(fra
.me
.REG
[0]);
1421 /* ./icode//icode_tools.nit:341 */
1424 stack_frame_head
= fra
.me
.prev
;
1425 return fra
.me
.REG
[0];
1427 val_t
icode_tools___IStaticCall___inner_dup_with(val_t p0
, val_t p1
){
1428 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1430 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1431 fra
.me
.file
= LOCATE_icode_tools
;
1433 fra
.me
.meth
= LOCATE_icode_tools___IStaticCall___inner_dup_with
;
1434 fra
.me
.has_broke
= 0;
1435 fra
.me
.REG_size
= 3;
1436 fra
.me
.REG
[0] = NIT_NULL
;
1437 fra
.me
.REG
[1] = NIT_NULL
;
1438 fra
.me
.REG
[2] = NIT_NULL
;
1441 fra
.me
.REG
[2] = CALL_icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1442 fra
.me
.REG
[0] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1443 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1444 fra
.me
.REG
[0] = NEW_IStaticCall_icode_base___IStaticCall___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1445 /* ./icode//icode_tools.nit:348 */
1448 stack_frame_head
= fra
.me
.prev
;
1449 return fra
.me
.REG
[0];
1451 val_t
icode_tools___ICheckInstance___inner_dup_with(val_t p0
, val_t p1
){
1452 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1454 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1455 fra
.me
.file
= LOCATE_icode_tools
;
1457 fra
.me
.meth
= LOCATE_icode_tools___ICheckInstance___inner_dup_with
;
1458 fra
.me
.has_broke
= 0;
1459 fra
.me
.REG_size
= 3;
1460 fra
.me
.REG
[0] = NIT_NULL
;
1461 fra
.me
.REG
[1] = NIT_NULL
;
1462 fra
.me
.REG
[2] = NIT_NULL
;
1465 fra
.me
.REG
[2] = CALL_icode_base___ICheckInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1466 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1467 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1468 fra
.me
.REG
[0] = NEW_ICheckInstance_icode_base___ICheckInstance___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1469 /* ./icode//icode_tools.nit:355 */
1472 stack_frame_head
= fra
.me
.prev
;
1473 return fra
.me
.REG
[0];
1475 val_t
icode_tools___IInitAttributes___inner_dup_with(val_t p0
, val_t p1
){
1476 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1478 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1479 fra
.me
.file
= LOCATE_icode_tools
;
1481 fra
.me
.meth
= LOCATE_icode_tools___IInitAttributes___inner_dup_with
;
1482 fra
.me
.has_broke
= 0;
1483 fra
.me
.REG_size
= 3;
1484 fra
.me
.REG
[0] = NIT_NULL
;
1485 fra
.me
.REG
[1] = NIT_NULL
;
1486 fra
.me
.REG
[2] = NIT_NULL
;
1489 fra
.me
.REG
[2] = CALL_icode_base___IInitAttributes___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1490 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1491 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1492 fra
.me
.REG
[0] = NEW_IInitAttributes_icode_base___IInitAttributes___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1493 /* ./icode//icode_tools.nit:362 */
1496 stack_frame_head
= fra
.me
.prev
;
1497 return fra
.me
.REG
[0];
1499 void icode_tools___IClosCall___dup_with(val_t p0
, val_t p1
){
1500 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1504 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1505 fra
.me
.file
= LOCATE_icode_tools
;
1507 fra
.me
.meth
= LOCATE_icode_tools___IClosCall___dup_with
;
1508 fra
.me
.has_broke
= 0;
1509 fra
.me
.REG_size
= 5;
1510 fra
.me
.REG
[0] = NIT_NULL
;
1511 fra
.me
.REG
[1] = NIT_NULL
;
1512 fra
.me
.REG
[2] = NIT_NULL
;
1513 fra
.me
.REG
[3] = NIT_NULL
;
1514 fra
.me
.REG
[4] = NIT_NULL
;
1517 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1])!=NIT_NULL
);
1518 /* ./icode//icode_tools.nit:369 */
1519 if (UNTAG_Bool(REGB0
)) {
1521 fprintf(stderr
, "Uninitialized attribute %s", "_closures");
1522 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 369);
1525 fra
.me
.REG
[2] = ATTR_icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1]);
1526 fra
.me
.REG
[3] = CALL_icode_base___IClosCall___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1527 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1528 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1529 /* ./icode//icode_tools.nit:370 */
1530 if (UNTAG_Bool(REGB0
)) {
1532 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1533 if (UNTAG_Bool(REGB1
)) {
1534 REGB1
= TAG_Bool(false);
1537 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1541 if (UNTAG_Bool(REGB0
)) {
1542 /* ./icode//icode_tools.nit:372 */
1545 fra
.me
.REG
[2] = CALL_icode_base___IClosCall___break_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1546 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1547 /* ./icode//icode_tools.nit:375 */
1548 if (UNTAG_Bool(REGB0
)) {
1550 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
1551 if (UNTAG_Bool(REGB1
)) {
1552 REGB1
= TAG_Bool(false);
1555 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
1559 if (UNTAG_Bool(REGB0
)) {
1561 fprintf(stderr
, "Assert failed");
1562 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 375);
1565 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1566 /* ./icode//icode_tools.nit:376 */
1567 if (UNTAG_Bool(REGB0
)) {
1569 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1570 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 376);
1573 fra
.me
.REG
[2] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1574 fra
.me
.REG
[4] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1575 fra
.me
.REG
[4] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
1576 fra
.me
.REG
[4] = CALL_icode_tools___ICodeBuilder___inline_routine(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[4], NIT_NULL
);
1577 fra
.me
.REG
[3] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1578 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1579 /* ./icode//icode_tools.nit:377 */
1580 if (UNTAG_Bool(REGB0
)) {
1582 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1583 if (UNTAG_Bool(REGB1
)) {
1584 REGB1
= TAG_Bool(false);
1587 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1591 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1592 if (UNTAG_Bool(REGB0
)) {
1593 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1594 /* ./icode//icode_tools.nit:378 */
1595 if (UNTAG_Bool(REGB0
)) {
1597 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1598 if (UNTAG_Bool(REGB1
)) {
1599 REGB1
= TAG_Bool(false);
1602 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1606 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1607 if (UNTAG_Bool(REGB0
)) {
1609 fprintf(stderr
, "Assert failed");
1610 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 378);
1613 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1614 /* ./icode//icode_tools.nit:379 */
1615 if (UNTAG_Bool(REGB0
)) {
1617 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1618 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 379);
1621 fra
.me
.REG
[3] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1622 fra
.me
.REG
[0] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1623 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
1624 if (UNTAG_Bool(REGB0
)) {
1626 fprintf(stderr
, "Cast failed");
1627 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 379);
1630 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1631 fra
.me
.REG
[4] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[0], fra
.me
.REG
[4]);
1632 CALL_icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
1635 stack_frame_head
= fra
.me
.prev
;
1638 val_t
icode_tools___INative___inner_dup_with(val_t p0
, val_t p1
){
1639 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1642 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1643 fra
.me
.file
= LOCATE_icode_tools
;
1645 fra
.me
.meth
= LOCATE_icode_tools___INative___inner_dup_with
;
1646 fra
.me
.has_broke
= 0;
1647 fra
.me
.REG_size
= 4;
1648 fra
.me
.REG
[0] = NIT_NULL
;
1649 fra
.me
.REG
[1] = NIT_NULL
;
1650 fra
.me
.REG
[2] = NIT_NULL
;
1651 fra
.me
.REG
[3] = NIT_NULL
;
1654 fra
.me
.REG
[2] = CALL_icode_base___INative___code(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1655 fra
.me
.REG
[3] = CALL_icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1656 fra
.me
.REG
[3] = CALL_icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1657 fra
.me
.REG
[3] = NEW_INative_icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1658 REGB0
= CALL_icode_base___ICode___is_pure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1659 /* ./icode//icode_tools.nit:388 */
1660 CALL_icode_base___INative___is_pure__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1661 /* ./icode//icode_tools.nit:389 */
1664 stack_frame_head
= fra
.me
.prev
;
1665 return fra
.me
.REG
[3];
1667 val_t
icode_tools___IMove___inner_dup_with(val_t p0
, val_t p1
){
1668 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1671 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1672 fra
.me
.file
= LOCATE_icode_tools
;
1674 fra
.me
.meth
= LOCATE_icode_tools___IMove___inner_dup_with
;
1675 fra
.me
.has_broke
= 0;
1676 fra
.me
.REG_size
= 3;
1677 fra
.me
.REG
[0] = NIT_NULL
;
1678 fra
.me
.REG
[1] = NIT_NULL
;
1679 fra
.me
.REG
[2] = NIT_NULL
;
1682 fra
.me
.REG
[2] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1683 REGB0
= TAG_Bool((fra
.me
.REG
[2]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[2], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
1684 /* ./icode//icode_tools.nit:396 */
1685 if (UNTAG_Bool(REGB0
)) {
1687 fprintf(stderr
, "Cast failed");
1688 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 396);
1691 fra
.me
.REG
[2] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1692 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1693 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1694 fra
.me
.REG
[0] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1697 stack_frame_head
= fra
.me
.prev
;
1698 return fra
.me
.REG
[0];
1700 val_t
icode_tools___IAttrRead___inner_dup_with(val_t p0
, val_t p1
){
1701 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1703 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1704 fra
.me
.file
= LOCATE_icode_tools
;
1706 fra
.me
.meth
= LOCATE_icode_tools___IAttrRead___inner_dup_with
;
1707 fra
.me
.has_broke
= 0;
1708 fra
.me
.REG_size
= 3;
1709 fra
.me
.REG
[0] = NIT_NULL
;
1710 fra
.me
.REG
[1] = NIT_NULL
;
1711 fra
.me
.REG
[2] = NIT_NULL
;
1714 fra
.me
.REG
[2] = CALL_icode_base___IAttrRead___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1715 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1716 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1717 fra
.me
.REG
[0] = NEW_IAttrRead_icode_base___IAttrRead___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1718 /* ./icode//icode_tools.nit:403 */
1721 stack_frame_head
= fra
.me
.prev
;
1722 return fra
.me
.REG
[0];
1724 val_t
icode_tools___IAttrWrite___inner_dup_with(val_t p0
, val_t p1
){
1725 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1727 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1728 fra
.me
.file
= LOCATE_icode_tools
;
1730 fra
.me
.meth
= LOCATE_icode_tools___IAttrWrite___inner_dup_with
;
1731 fra
.me
.has_broke
= 0;
1732 fra
.me
.REG_size
= 4;
1733 fra
.me
.REG
[0] = NIT_NULL
;
1734 fra
.me
.REG
[1] = NIT_NULL
;
1735 fra
.me
.REG
[2] = NIT_NULL
;
1736 fra
.me
.REG
[3] = NIT_NULL
;
1739 fra
.me
.REG
[2] = CALL_icode_base___IAttrWrite___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1740 fra
.me
.REG
[3] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1741 fra
.me
.REG
[3] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1742 fra
.me
.REG
[0] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1743 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1744 fra
.me
.REG
[0] = NEW_IAttrWrite_icode_base___IAttrWrite___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1745 /* ./icode//icode_tools.nit:410 */
1748 stack_frame_head
= fra
.me
.prev
;
1749 return fra
.me
.REG
[0];
1751 val_t
icode_tools___IAttrIsset___inner_dup_with(val_t p0
, val_t p1
){
1752 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1754 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1755 fra
.me
.file
= LOCATE_icode_tools
;
1757 fra
.me
.meth
= LOCATE_icode_tools___IAttrIsset___inner_dup_with
;
1758 fra
.me
.has_broke
= 0;
1759 fra
.me
.REG_size
= 3;
1760 fra
.me
.REG
[0] = NIT_NULL
;
1761 fra
.me
.REG
[1] = NIT_NULL
;
1762 fra
.me
.REG
[2] = NIT_NULL
;
1765 fra
.me
.REG
[2] = CALL_icode_base___IAttrIsset___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1766 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1767 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1768 fra
.me
.REG
[0] = NEW_IAttrIsset_icode_base___IAttrIsset___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1769 /* ./icode//icode_tools.nit:417 */
1772 stack_frame_head
= fra
.me
.prev
;
1773 return fra
.me
.REG
[0];
1775 val_t
icode_tools___ITypeCheck___inner_dup_with(val_t p0
, val_t p1
){
1776 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1778 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1779 fra
.me
.file
= LOCATE_icode_tools
;
1781 fra
.me
.meth
= LOCATE_icode_tools___ITypeCheck___inner_dup_with
;
1782 fra
.me
.has_broke
= 0;
1783 fra
.me
.REG_size
= 3;
1784 fra
.me
.REG
[0] = NIT_NULL
;
1785 fra
.me
.REG
[1] = NIT_NULL
;
1786 fra
.me
.REG
[2] = NIT_NULL
;
1789 fra
.me
.REG
[2] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1790 fra
.me
.REG
[2] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1791 fra
.me
.REG
[0] = CALL_icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1792 fra
.me
.REG
[0] = NEW_ITypeCheck_icode_base___ITypeCheck___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1793 /* ./icode//icode_tools.nit:424 */
1796 stack_frame_head
= fra
.me
.prev
;
1797 return fra
.me
.REG
[0];
1799 val_t
icode_tools___IIs___inner_dup_with(val_t p0
, val_t p1
){
1800 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1802 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1803 fra
.me
.file
= LOCATE_icode_tools
;
1805 fra
.me
.meth
= LOCATE_icode_tools___IIs___inner_dup_with
;
1806 fra
.me
.has_broke
= 0;
1807 fra
.me
.REG_size
= 3;
1808 fra
.me
.REG
[0] = NIT_NULL
;
1809 fra
.me
.REG
[1] = NIT_NULL
;
1810 fra
.me
.REG
[2] = NIT_NULL
;
1813 fra
.me
.REG
[2] = CALL_icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1814 fra
.me
.REG
[2] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1815 fra
.me
.REG
[0] = CALL_icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1816 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1817 fra
.me
.REG
[0] = NEW_IIs_icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1818 /* ./icode//icode_tools.nit:431 */
1821 stack_frame_head
= fra
.me
.prev
;
1822 return fra
.me
.REG
[0];
1824 val_t
icode_tools___INot___inner_dup_with(val_t p0
, val_t p1
){
1825 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1827 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1828 fra
.me
.file
= LOCATE_icode_tools
;
1830 fra
.me
.meth
= LOCATE_icode_tools___INot___inner_dup_with
;
1831 fra
.me
.has_broke
= 0;
1832 fra
.me
.REG_size
= 2;
1833 fra
.me
.REG
[0] = NIT_NULL
;
1834 fra
.me
.REG
[1] = NIT_NULL
;
1837 fra
.me
.REG
[0] = CALL_icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1838 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1839 fra
.me
.REG
[0] = NEW_INot_icode_base___INot___init(fra
.me
.REG
[0]);
1840 /* ./icode//icode_tools.nit:438 */
1843 stack_frame_head
= fra
.me
.prev
;
1844 return fra
.me
.REG
[0];
1846 val_t
icode_tools___IOnce___inner_dup_with(val_t p0
, val_t p1
){
1847 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1849 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1850 fra
.me
.file
= LOCATE_icode_tools
;
1852 fra
.me
.meth
= LOCATE_icode_tools___IOnce___inner_dup_with
;
1853 fra
.me
.has_broke
= 0;
1854 fra
.me
.REG_size
= 4;
1855 fra
.me
.REG
[0] = NIT_NULL
;
1856 fra
.me
.REG
[1] = NIT_NULL
;
1857 fra
.me
.REG
[2] = NIT_NULL
;
1858 fra
.me
.REG
[3] = NIT_NULL
;
1861 fra
.me
.REG
[2] = NEW_IOnce_icode_base___IOnce___init();
1862 fra
.me
.REG
[0] = CALL_icode_base___IOnce___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1863 fra
.me
.REG
[3] = CALL_icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1864 /* ./icode//icode_tools.nit:446 */
1865 CALL_icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
1866 /* ./icode//icode_tools.nit:447 */
1869 stack_frame_head
= fra
.me
.prev
;
1870 return fra
.me
.REG
[2];
1872 val_t
icode_tools___IHasClos___inner_dup_with(val_t p0
, val_t p1
){
1873 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1877 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1878 fra
.me
.file
= LOCATE_icode_tools
;
1880 fra
.me
.meth
= LOCATE_icode_tools___IHasClos___inner_dup_with
;
1881 fra
.me
.has_broke
= 0;
1882 fra
.me
.REG_size
= 4;
1883 fra
.me
.REG
[0] = NIT_NULL
;
1884 fra
.me
.REG
[1] = NIT_NULL
;
1885 fra
.me
.REG
[2] = NIT_NULL
;
1886 fra
.me
.REG
[3] = NIT_NULL
;
1889 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1])!=NIT_NULL
);
1890 /* ./icode//icode_tools.nit:454 */
1891 if (UNTAG_Bool(REGB0
)) {
1893 fprintf(stderr
, "Uninitialized attribute %s", "_closures");
1894 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 454);
1897 fra
.me
.REG
[2] = ATTR_icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1]);
1898 fra
.me
.REG
[3] = CALL_icode_base___IHasClos___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1899 fra
.me
.REG
[3] = CALL_abstract_collection___MapRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1900 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1901 /* ./icode//icode_tools.nit:456 */
1902 if (UNTAG_Bool(REGB0
)) {
1904 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1905 if (UNTAG_Bool(REGB1
)) {
1906 REGB1
= TAG_Bool(false);
1909 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1913 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1914 if (UNTAG_Bool(REGB0
)) {
1915 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1916 /* ./icode//icode_tools.nit:457 */
1917 if (UNTAG_Bool(REGB0
)) {
1919 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1920 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 457);
1923 fra
.me
.REG
[3] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1924 fra
.me
.REG
[3] = CALL_icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1926 REGB0
= TAG_Bool(ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1927 /* ./icode//icode_tools.nit:459 */
1928 if (UNTAG_Bool(REGB0
)) {
1930 fprintf(stderr
, "Uninitialized attribute %s", "_icb");
1931 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 459);
1934 fra
.me
.REG
[2] = ATTR_icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1935 fra
.me
.REG
[2] = CALL_icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1936 fra
.me
.REG
[3] = fra
.me
.REG
[2];
1938 fra
.me
.REG
[0] = CALL_icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1939 REGB0
= TAG_Bool((fra
.me
.REG
[0]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[0], COLOR_IRegister
, ID_IRegister
)) /*cast IRegister*/;
1940 /* ./icode//icode_tools.nit:461 */
1941 if (UNTAG_Bool(REGB0
)) {
1943 fprintf(stderr
, "Cast failed");
1944 fprintf(stderr
, " (%s:%d)\n", LOCATE_icode_tools
, 461);
1947 fra
.me
.REG
[0] = CALL_icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1948 fra
.me
.REG
[3] = NEW_IMove_icode_base___IMove___init(fra
.me
.REG
[0], fra
.me
.REG
[3]);
1951 stack_frame_head
= fra
.me
.prev
;
1952 return fra
.me
.REG
[3];