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
.nitni_local_ref_head
= NULL
;
13 fra
.me
.REG
[0] = NIT_NULL
;
14 fra
.me
.REG
[1] = NIT_NULL
;
15 fra
.me
.REG
[2] = NIT_NULL
;
19 stack_frame_head
= fra
.me
.prev
;
22 void icode___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___icode_tools
;
28 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_iregister_write
;
31 fra
.me
.nitni_local_ref_head
= NULL
;
32 fra
.me
.REG
[0] = NIT_NULL
;
33 fra
.me
.REG
[1] = NIT_NULL
;
34 fra
.me
.REG
[2] = NIT_NULL
;
38 stack_frame_head
= fra
.me
.prev
;
41 val_t
icode___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___icode_tools
;
47 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___current_icode
;
50 fra
.me
.nitni_local_ref_head
= NULL
;
51 fra
.me
.REG
[0] = NIT_NULL
;
53 /* icode/icode_tools.nit:29 */
54 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]);
55 stack_frame_head
= fra
.me
.prev
;
58 void icode___icode_tools___ICodeVisitor___visit_icode(val_t p0
, val_t p1
){
59 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
63 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
64 fra
.me
.file
= LOCATE_icode___icode_tools
;
66 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_icode
;
69 fra
.me
.nitni_local_ref_head
= NULL
;
70 fra
.me
.REG
[0] = NIT_NULL
;
71 fra
.me
.REG
[1] = NIT_NULL
;
72 fra
.me
.REG
[2] = NIT_NULL
;
73 fra
.me
.REG
[3] = NIT_NULL
;
74 fra
.me
.REG
[4] = NIT_NULL
;
77 /* icode/icode_tools.nit:37 */
78 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
79 if (UNTAG_Bool(REGB0
)) {
81 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
82 if (UNTAG_Bool(REGB1
)) {
83 REGB1
= TAG_Bool(false);
86 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
90 if (UNTAG_Bool(REGB0
)) {
93 /* icode/icode_tools.nit:38 */
94 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*/;
95 if (UNTAG_Bool(REGB0
)) {
96 /* icode/icode_tools.nit:39 */
97 fra
.me
.REG
[2] = ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]);
98 /* icode/icode_tools.nit:40 */
99 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
100 if (UNTAG_Bool(REGB0
)) {
101 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 40);
103 fra
.me
.REG
[3] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
104 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___Collection___iterator(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
105 /* icode/icode_tools.nit:41 */
107 REGB0
= CALL_standard___collection___abstract_collection___Iterator___is_ok(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
108 if (UNTAG_Bool(REGB0
)) {
109 /* icode/icode_tools.nit:42 */
110 ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]) = fra
.me
.REG
[3];
111 /* icode/icode_tools.nit:43 */
112 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___Iterator___item(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
113 /* icode/icode_tools.nit:44 */
114 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[4]);
115 /* icode/icode_tools.nit:45 */
116 CALL_standard___collection___abstract_collection___Iterator___next(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
118 /* icode/icode_tools.nit:41 */
123 /* icode/icode_tools.nit:47 */
124 ATTR_icode___icode_tools___ICodeVisitor____current_icode(fra
.me
.REG
[0]) = fra
.me
.REG
[2];
126 /* icode/icode_tools.nit:48 */
127 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*/;
128 if (UNTAG_Bool(REGB0
)) {
129 /* icode/icode_tools.nit:49 */
130 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
131 if (UNTAG_Bool(REGB0
)) {
132 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 49);
134 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
135 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
136 /* icode/icode_tools.nit:50 */
137 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
138 if (UNTAG_Bool(REGB0
)) {
139 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 50);
141 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
142 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
143 /* icode/icode_tools.nit:51 */
144 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
145 if (UNTAG_Bool(REGB0
)) {
146 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 51);
148 fra
.me
.REG
[2] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
149 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
151 /* icode/icode_tools.nit:52 */
152 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*/;
153 if (UNTAG_Bool(REGB0
)) {
154 /* icode/icode_tools.nit:53 */
155 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
156 if (UNTAG_Bool(REGB0
)) {
157 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 53);
159 fra
.me
.REG
[2] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
160 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
162 /* icode/icode_tools.nit:54 */
163 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*/;
164 if (UNTAG_Bool(REGB0
)) {
165 /* icode/icode_tools.nit:55 */
166 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
167 if (UNTAG_Bool(REGB0
)) {
168 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 55);
170 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
171 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
173 /* icode/icode_tools.nit:56 */
174 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*/;
175 if (UNTAG_Bool(REGB0
)) {
176 /* icode/icode_tools.nit:57 */
177 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
178 if (UNTAG_Bool(REGB0
)) {
179 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 57);
181 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
182 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
183 /* icode/icode_tools.nit:58 */
184 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
185 if (UNTAG_Bool(REGB0
)) {
186 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 58);
188 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
189 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
191 /* icode/icode_tools.nit:59 */
192 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*/;
193 if (UNTAG_Bool(REGB0
)) {
194 /* icode/icode_tools.nit:60 */
195 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
196 if (UNTAG_Bool(REGB0
)) {
197 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 60);
199 fra
.me
.REG
[2] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
200 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
));
201 /* icode/icode_tools.nit:63 */
202 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
203 if (UNTAG_Bool(REGB0
)) {
204 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 63);
206 fra
.me
.REG
[2] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
207 /* icode/icode_tools.nit:64 */
208 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*/;
209 if (UNTAG_Bool(REGB0
)) {
210 /* icode/icode_tools.nit:65 */
211 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
212 if (UNTAG_Bool(REGB0
)) {
213 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 65);
215 fra
.me
.REG
[3] = CALL_icode___icode_base___IClosCall___break_seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
216 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3]);
218 /* icode/icode_tools.nit:67 */
219 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
220 if (UNTAG_Bool(REGB0
)) {
222 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
223 if (UNTAG_Bool(REGB1
)) {
224 REGB1
= TAG_Bool(false);
227 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
231 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
232 if (UNTAG_Bool(REGB0
)) {
233 /* icode/icode_tools.nit:68 */
234 CALL_icode___icode_tools___ICodeVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
242 /* icode/icode_tools.nit:71 */
243 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
244 if (UNTAG_Bool(REGB0
)) {
245 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 71);
247 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
248 /* icode/icode_tools.nit:72 */
249 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
250 if (UNTAG_Bool(REGB0
)) {
252 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
253 if (UNTAG_Bool(REGB1
)) {
254 REGB1
= TAG_Bool(false);
257 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
261 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
262 if (UNTAG_Bool(REGB0
)) {
263 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_write(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
266 stack_frame_head
= fra
.me
.prev
;
269 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
){
270 struct {struct stack_frame_t me
;} fra
;
273 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
274 fra
.me
.file
= LOCATE_icode___icode_tools
;
276 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_icode
;
277 fra
.me
.has_broke
= 0;
279 fra
.me
.nitni_local_ref_head
= NULL
;
280 fra
.me
.REG
[0] = NIT_NULL
;
281 fra
.me
.closure_ctx
= closctx_param
;
282 fra
.me
.closure_funs
= CREG
;
285 /* icode/icode_tools.nit:61 */
286 CALL_icode___icode_tools___ICodeVisitor___visit_iregister_read(closctx
->REG
[0])(closctx
->REG
[0], closctx
->REG
[1], fra
.me
.REG
[0]);
287 stack_frame_head
= fra
.me
.prev
;
290 void icode___icode_tools___ICodeVisitor___visit_closure_defs(val_t p0
, val_t p1
){
291 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
293 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
294 fra
.me
.file
= LOCATE_icode___icode_tools
;
296 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_closure_defs
;
297 fra
.me
.has_broke
= 0;
299 fra
.me
.nitni_local_ref_head
= NULL
;
300 fra
.me
.REG
[0] = NIT_NULL
;
301 fra
.me
.REG
[1] = NIT_NULL
;
304 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
));
305 stack_frame_head
= fra
.me
.prev
;
308 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
){
309 struct {struct stack_frame_t me
;} fra
;
314 /* icode/icode_tools.nit:79 */
315 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
316 fra
.me
.file
= LOCATE_icode___icode_tools
;
318 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_closure_defs
;
319 fra
.me
.has_broke
= 0;
321 fra
.me
.nitni_local_ref_head
= NULL
;
322 fra
.me
.REG
[0] = NIT_NULL
;
323 fra
.me
.closure_ctx
= closctx_param
;
324 fra
.me
.closure_funs
= CREG
;
327 /* icode/icode_tools.nit:80 */
328 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
329 if (UNTAG_Bool(REGB0
)) {
331 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
332 if (UNTAG_Bool(REGB1
)) {
333 REGB1
= TAG_Bool(false);
336 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
340 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
341 if (UNTAG_Bool(REGB0
)) {
342 /* icode/icode_tools.nit:81 */
343 CALL_icode___icode_tools___ICodeVisitor___visit_iroutine(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
345 stack_frame_head
= fra
.me
.prev
;
348 void icode___icode_tools___ICodeVisitor___visit_iroutine(val_t p0
, val_t p1
){
349 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
351 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
352 fra
.me
.file
= LOCATE_icode___icode_tools
;
354 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___visit_iroutine
;
355 fra
.me
.has_broke
= 0;
357 fra
.me
.nitni_local_ref_head
= NULL
;
358 fra
.me
.REG
[0] = NIT_NULL
;
359 fra
.me
.REG
[1] = NIT_NULL
;
362 /* icode/icode_tools.nit:91 */
363 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
364 CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
365 stack_frame_head
= fra
.me
.prev
;
368 void icode___icode_tools___ICodeVisitor___init(val_t p0
, int* init_table
){
369 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_icode___icode_tools___ICodeVisitor
].i
;
370 struct {struct stack_frame_t me
;} fra
;
372 if (init_table
[itpos0
]) return;
373 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
374 fra
.me
.file
= LOCATE_icode___icode_tools
;
376 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeVisitor___init
;
377 fra
.me
.has_broke
= 0;
379 fra
.me
.nitni_local_ref_head
= NULL
;
380 stack_frame_head
= fra
.me
.prev
;
381 init_table
[itpos0
] = 1;
384 val_t
icode___icode_tools___ICodeBuilder___inline_routine(val_t p0
, val_t p1
, val_t p2
, val_t p3
){
385 struct {struct stack_frame_t me
; val_t MORE_REG
[9];} fra
;
393 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
394 fra
.me
.file
= LOCATE_icode___icode_tools
;
396 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeBuilder___inline_routine
;
397 fra
.me
.has_broke
= 0;
398 fra
.me
.REG_size
= 10;
399 fra
.me
.nitni_local_ref_head
= NULL
;
400 fra
.me
.REG
[0] = NIT_NULL
;
401 fra
.me
.REG
[1] = NIT_NULL
;
402 fra
.me
.REG
[2] = NIT_NULL
;
403 fra
.me
.REG
[3] = NIT_NULL
;
404 fra
.me
.REG
[4] = NIT_NULL
;
405 fra
.me
.REG
[5] = NIT_NULL
;
406 fra
.me
.REG
[6] = NIT_NULL
;
407 fra
.me
.REG
[7] = NIT_NULL
;
408 fra
.me
.REG
[8] = NIT_NULL
;
409 fra
.me
.REG
[9] = NIT_NULL
;
414 /* icode/icode_tools.nit:100 */
415 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
416 REGB0
= TAG_Bool(IS_EQUAL_OO(fra
.me
.REG
[1],fra
.me
.REG
[4]));
417 if (UNTAG_Bool(REGB0
)) {
419 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
422 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
423 if (UNTAG_Bool(REGB0
)) {
425 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 100);
427 /* icode/icode_tools.nit:101 */
428 fra
.me
.REG
[4] = NEW_ICodeDupContext_icode___icode_tools___ICodeDupContext___init(fra
.me
.REG
[0]);
429 /* icode/icode_tools.nit:102 */
430 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
431 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
432 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
433 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
434 if (UNTAG_Bool(REGB2
)) {
436 /* ../lib/standard/kernel.nit:227 */
437 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
438 /* icode/icode_tools.nit:102 */
441 if (UNTAG_Bool(REGB2
)) {
443 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 102);
445 /* icode/icode_tools.nit:103 */
446 fra
.me
.REG
[5] = CALL_icode___icode_base___IRoutine___closure_decls(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
447 /* icode/icode_tools.nit:104 */
448 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
449 if (UNTAG_Bool(REGB2
)) {
451 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
452 if (UNTAG_Bool(REGB1
)) {
453 REGB1
= TAG_Bool(false);
456 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
460 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
461 if (UNTAG_Bool(REGB2
)) {
462 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
463 if (UNTAG_Bool(REGB2
)) {
464 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 104);
466 REGB2
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
471 /* icode/icode_tools.nit:105 */
472 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
473 if (UNTAG_Bool(REGB1
)) {
475 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
476 if (UNTAG_Bool(REGB0
)) {
477 REGB0
= TAG_Bool(false);
480 REGB0
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
484 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
485 if (UNTAG_Bool(REGB1
)) {
486 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
487 if (UNTAG_Bool(REGB1
)) {
488 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 105);
490 REGB1
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[5])(fra
.me
.REG
[5]);
495 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
496 if (UNTAG_Bool(REGB0
)) {
498 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
500 /* ../lib/standard/kernel.nit:231 */
501 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<=UNTAG_Int(REGB1
));
502 /* icode/icode_tools.nit:106 */
503 if (UNTAG_Bool(REGB0
)) {
505 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 106);
507 /* icode/icode_tools.nit:109 */
508 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[4])!=NIT_NULL
);
509 if (UNTAG_Bool(REGB0
)) {
511 nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_tools
, 109);
513 fra
.me
.REG
[6] = ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[4]);
514 /* icode/icode_tools.nit:110 */
515 fra
.me
.REG
[7] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
516 /* icode/icode_tools.nit:111 */
517 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
518 if (UNTAG_Bool(REGB0
)) {
520 REGB3
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
521 if (UNTAG_Bool(REGB3
)) {
522 REGB3
= TAG_Bool(false);
525 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[7])(fra
.me
.REG
[7], NIT_NULL
);
529 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
530 if (UNTAG_Bool(REGB0
)) {
531 /* icode/icode_tools.nit:112 */
532 REGB0
= TAG_Bool(fra
.me
.REG
[7]==NIT_NULL
);
533 if (UNTAG_Bool(REGB0
)) {
534 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 112);
536 fra
.me
.REG
[8] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[7])(fra
.me
.REG
[7]);
537 fra
.me
.REG
[8] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[8]);
538 /* icode/icode_tools.nit:113 */
539 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[7], fra
.me
.REG
[8]);
540 /* icode/icode_tools.nit:114 */
541 fra
.me
.REG
[7] = fra
.me
.REG
[8];
543 /* icode/icode_tools.nit:116 */
544 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___registers(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
545 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
));
546 /* icode/icode_tools.nit:120 */
548 REGB3
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
549 /* ../lib/standard/kernel.nit:352 */
551 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
552 if (UNTAG_Bool(REGB4
)) {
554 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
556 /* ../lib/standard/kernel.nit:232 */
557 REGB4
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
558 /* ../lib/standard/kernel.nit:352 */
559 if (UNTAG_Bool(REGB4
)) {
560 /* icode/icode_tools.nit:120 */
562 /* icode/icode_tools.nit:123 */
563 fra
.me
.REG
[8] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
564 fra
.me
.REG
[8] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[8])(fra
.me
.REG
[8], REGB4
);
565 fra
.me
.REG
[9] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[2])(fra
.me
.REG
[2], REGB4
);
566 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], fra
.me
.REG
[8], fra
.me
.REG
[9]);
567 /* ../lib/standard/kernel.nit:354 */
569 /* ../lib/standard/kernel.nit:235 */
570 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
571 /* ../lib/standard/kernel.nit:354 */
574 /* ../lib/standard/kernel.nit:352 */
579 /* icode/icode_tools.nit:128 */
580 fra
.me
.REG
[6] = CALL_icode___icode_base___IRoutine___escape_marks(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
581 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
));
582 /* icode/icode_tools.nit:135 */
583 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
584 if (UNTAG_Bool(REGB0
)) {
586 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
587 if (UNTAG_Bool(REGB3
)) {
588 REGB3
= TAG_Bool(false);
591 REGB3
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
595 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
596 if (UNTAG_Bool(REGB0
)) {
597 /* icode/icode_tools.nit:136 */
598 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[4])!=NIT_NULL
);
599 if (UNTAG_Bool(REGB0
)) {
601 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 136);
603 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[4]);
604 /* icode/icode_tools.nit:137 */
606 /* ../lib/standard/kernel.nit:347 */
608 /* ../lib/standard/kernel.nit:352 */
610 REGB4
= TAG_Bool(VAL_ISA(REGB3
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0
), VTID_standard___kernel___Comparable___OTHER(REGB0
))) /*cast OTHER*/;
611 if (UNTAG_Bool(REGB4
)) {
613 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
615 /* ../lib/standard/kernel.nit:232 */
616 REGB4
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB3
));
617 /* ../lib/standard/kernel.nit:352 */
618 if (UNTAG_Bool(REGB4
)) {
619 /* icode/icode_tools.nit:137 */
621 /* icode/icode_tools.nit:138 */
622 REGB5
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
623 if (UNTAG_Bool(REGB5
)) {
624 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 138);
626 fra
.me
.REG
[6] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB4
);
627 REGB5
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
628 if (UNTAG_Bool(REGB5
)) {
629 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 138);
631 fra
.me
.REG
[2] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB4
);
632 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[6], fra
.me
.REG
[2]);
633 /* ../lib/standard/kernel.nit:354 */
635 /* ../lib/standard/kernel.nit:235 */
636 REGB4
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB4
));
637 /* ../lib/standard/kernel.nit:354 */
640 /* ../lib/standard/kernel.nit:352 */
645 /* ../lib/standard/kernel.nit:352 */
647 REGB0
= TAG_Bool(VAL_ISA(REGB1
, VTCOLOR_standard___kernel___Comparable___OTHER(REGB2
), VTID_standard___kernel___Comparable___OTHER(REGB2
))) /*cast OTHER*/;
648 if (UNTAG_Bool(REGB0
)) {
650 nit_abort("Cast failed", NULL
, LOCATE_standard___kernel
, 0);
652 /* ../lib/standard/kernel.nit:232 */
653 REGB0
= TAG_Bool(UNTAG_Int(REGB2
)<UNTAG_Int(REGB1
));
654 /* ../lib/standard/kernel.nit:352 */
655 if (UNTAG_Bool(REGB0
)) {
656 /* icode/icode_tools.nit:140 */
658 /* icode/icode_tools.nit:141 */
659 REGB3
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
660 if (UNTAG_Bool(REGB3
)) {
661 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 141);
663 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___SequenceRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], REGB0
);
664 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[3], NIT_NULL
);
665 /* ../lib/standard/kernel.nit:354 */
667 /* ../lib/standard/kernel.nit:235 */
668 REGB0
= TAG_Int(UNTAG_Int(REGB2
)+UNTAG_Int(REGB0
));
669 /* ../lib/standard/kernel.nit:354 */
672 /* ../lib/standard/kernel.nit:352 */
678 /* icode/icode_tools.nit:146 */
679 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
680 CALL_icode___icode_tools___ICode___dup_with(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
681 /* icode/icode_tools.nit:147 */
684 stack_frame_head
= fra
.me
.prev
;
685 return fra
.me
.REG
[7];
687 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
){
688 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
692 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
693 fra
.me
.file
= LOCATE_icode___icode_tools
;
695 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeBuilder___inline_routine
;
696 fra
.me
.has_broke
= 0;
698 fra
.me
.nitni_local_ref_head
= NULL
;
699 fra
.me
.REG
[0] = NIT_NULL
;
700 fra
.me
.REG
[1] = NIT_NULL
;
701 fra
.me
.closure_ctx
= closctx_param
;
702 fra
.me
.closure_funs
= CREG
;
705 /* icode/icode_tools.nit:117 */
706 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0]);
707 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
708 if (UNTAG_Bool(REGB0
)) {
710 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 117);
712 /* icode/icode_tools.nit:118 */
713 fra
.me
.REG
[1] = CALL_icode___icode_base___IRegister___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
714 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[1]);
715 CALL_standard___collection___abstract_collection___Map_____braeq(closctx
->REG
[6])(closctx
->REG
[6], fra
.me
.REG
[0], fra
.me
.REG
[1]);
716 stack_frame_head
= fra
.me
.prev
;
719 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
){
720 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
724 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
725 fra
.me
.file
= LOCATE_icode___icode_tools
;
727 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeBuilder___inline_routine
;
728 fra
.me
.has_broke
= 0;
730 fra
.me
.nitni_local_ref_head
= NULL
;
731 fra
.me
.REG
[0] = NIT_NULL
;
732 fra
.me
.REG
[1] = NIT_NULL
;
733 fra
.me
.REG
[2] = NIT_NULL
;
734 fra
.me
.closure_ctx
= closctx_param
;
735 fra
.me
.closure_funs
= CREG
;
738 /* icode/icode_tools.nit:129 */
739 fra
.me
.REG
[1] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init();
740 /* icode/icode_tools.nit:130 */
741 fra
.me
.REG
[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(closctx
->REG
[0])(closctx
->REG
[0]);
742 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___escape_marks(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
743 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
744 /* icode/icode_tools.nit:131 */
745 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____marks(closctx
->REG
[4])!=NIT_NULL
);
746 if (UNTAG_Bool(REGB0
)) {
748 nit_abort("Uninitialized attribute %s", "_marks", LOCATE_icode___icode_tools
, 131);
750 fra
.me
.REG
[2] = ATTR_icode___icode_tools___ICodeDupContext____marks(closctx
->REG
[4]);
751 CALL_standard___collection___abstract_collection___Map_____braeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0], fra
.me
.REG
[1]);
752 stack_frame_head
= fra
.me
.prev
;
755 val_t
icode___icode_tools___ICodeDupContext___dup_ireg(val_t p0
, val_t p1
){
756 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
759 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
760 fra
.me
.file
= LOCATE_icode___icode_tools
;
762 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_ireg
;
763 fra
.me
.has_broke
= 0;
765 fra
.me
.nitni_local_ref_head
= NULL
;
766 fra
.me
.REG
[0] = NIT_NULL
;
767 fra
.me
.REG
[1] = NIT_NULL
;
770 /* icode/icode_tools.nit:158 */
771 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[0])!=NIT_NULL
);
772 if (UNTAG_Bool(REGB0
)) {
774 nit_abort("Uninitialized attribute %s", "_registers", LOCATE_icode___icode_tools
, 158);
776 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeDupContext____registers(fra
.me
.REG
[0]);
777 /* icode/icode_tools.nit:159 */
778 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
779 if (UNTAG_Bool(REGB0
)) {
780 /* icode/icode_tools.nit:160 */
781 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
784 /* icode/icode_tools.nit:162 */
785 fra
.me
.REG
[0] = fra
.me
.REG
[1];
789 stack_frame_head
= fra
.me
.prev
;
790 return fra
.me
.REG
[0];
792 val_t
icode___icode_tools___ICodeDupContext___dup_iregs(val_t p0
, val_t p1
){
793 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
796 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
797 fra
.me
.file
= LOCATE_icode___icode_tools
;
799 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_iregs
;
800 fra
.me
.has_broke
= 0;
802 fra
.me
.nitni_local_ref_head
= NULL
;
803 fra
.me
.REG
[0] = NIT_NULL
;
804 fra
.me
.REG
[1] = NIT_NULL
;
805 fra
.me
.REG
[2] = NIT_NULL
;
808 /* icode/icode_tools.nit:169 */
809 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
810 fra
.me
.REG
[2] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
811 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
));
812 /* icode/icode_tools.nit:173 */
815 stack_frame_head
= fra
.me
.prev
;
816 return fra
.me
.REG
[2];
818 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
){
819 struct {struct stack_frame_t me
;} fra
;
822 /* icode/icode_tools.nit:170 */
823 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
824 fra
.me
.file
= LOCATE_icode___icode_tools
;
826 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_iregs
;
827 fra
.me
.has_broke
= 0;
829 fra
.me
.nitni_local_ref_head
= NULL
;
830 fra
.me
.REG
[0] = NIT_NULL
;
831 fra
.me
.closure_ctx
= closctx_param
;
832 fra
.me
.closure_funs
= CREG
;
835 /* icode/icode_tools.nit:171 */
836 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(closctx
->REG
[0])(closctx
->REG
[0], fra
.me
.REG
[0]);
837 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
838 stack_frame_head
= fra
.me
.prev
;
841 val_t
icode___icode_tools___ICodeDupContext___dup_mark(val_t p0
, val_t p1
){
842 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
845 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
846 fra
.me
.file
= LOCATE_icode___icode_tools
;
848 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___dup_mark
;
849 fra
.me
.has_broke
= 0;
851 fra
.me
.nitni_local_ref_head
= NULL
;
852 fra
.me
.REG
[0] = NIT_NULL
;
853 fra
.me
.REG
[1] = NIT_NULL
;
856 /* icode/icode_tools.nit:185 */
857 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____marks(fra
.me
.REG
[0])!=NIT_NULL
);
858 if (UNTAG_Bool(REGB0
)) {
860 nit_abort("Uninitialized attribute %s", "_marks", LOCATE_icode___icode_tools
, 185);
862 fra
.me
.REG
[0] = ATTR_icode___icode_tools___ICodeDupContext____marks(fra
.me
.REG
[0]);
863 /* icode/icode_tools.nit:186 */
864 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
865 if (UNTAG_Bool(REGB0
)) {
866 /* icode/icode_tools.nit:187 */
867 fra
.me
.REG
[0] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
870 /* icode/icode_tools.nit:189 */
871 fra
.me
.REG
[0] = fra
.me
.REG
[1];
875 stack_frame_head
= fra
.me
.prev
;
876 return fra
.me
.REG
[0];
878 void icode___icode_tools___ICodeDupContext___init(val_t p0
, val_t p1
, int* init_table
){
879 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_icode___icode_tools___ICodeDupContext
].i
;
880 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
882 if (init_table
[itpos1
]) return;
883 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
884 fra
.me
.file
= LOCATE_icode___icode_tools
;
886 fra
.me
.meth
= LOCATE_icode___icode_tools___ICodeDupContext___init
;
887 fra
.me
.has_broke
= 0;
889 fra
.me
.nitni_local_ref_head
= NULL
;
890 fra
.me
.REG
[0] = NIT_NULL
;
891 fra
.me
.REG
[1] = NIT_NULL
;
894 /* icode/icode_tools.nit:205 */
895 ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
896 stack_frame_head
= fra
.me
.prev
;
897 init_table
[itpos1
] = 1;
900 void icode___icode_tools___ICode___dup_with(val_t p0
, val_t p1
){
901 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
905 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
906 fra
.me
.file
= LOCATE_icode___icode_tools
;
908 fra
.me
.meth
= LOCATE_icode___icode_tools___ICode___dup_with
;
909 fra
.me
.has_broke
= 0;
911 fra
.me
.nitni_local_ref_head
= NULL
;
912 fra
.me
.REG
[0] = NIT_NULL
;
913 fra
.me
.REG
[1] = NIT_NULL
;
914 fra
.me
.REG
[2] = NIT_NULL
;
915 fra
.me
.REG
[3] = NIT_NULL
;
916 fra
.me
.REG
[4] = NIT_NULL
;
919 /* icode/icode_tools.nit:213 */
920 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICode___inner_dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
921 /* icode/icode_tools.nit:214 */
922 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[0], COLOR_icode___icode_base___ICodeN
, ID_icode___icode_base___ICodeN
)) /*cast ICodeN*/;
923 if (UNTAG_Bool(REGB0
)) {
924 /* icode/icode_tools.nit:215 */
925 REGB0
= TAG_Bool(VAL_ISA(fra
.me
.REG
[2], COLOR_icode___icode_base___ICodeN
, ID_icode___icode_base___ICodeN
)) /*cast ICodeN*/;
926 if (UNTAG_Bool(REGB0
)) {
928 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 215);
930 /* icode/icode_tools.nit:216 */
931 fra
.me
.REG
[3] = CALL_icode___icode_base___ICodeN___closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
932 /* icode/icode_tools.nit:217 */
933 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
934 if (UNTAG_Bool(REGB0
)) {
936 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
937 if (UNTAG_Bool(REGB1
)) {
938 REGB1
= TAG_Bool(false);
941 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
945 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
946 if (UNTAG_Bool(REGB0
)) {
947 /* icode/icode_tools.nit:219 */
948 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
949 if (UNTAG_Bool(REGB0
)) {
950 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 219);
952 REGB0
= CALL_standard___collection___abstract_collection___Collection___length(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
953 fra
.me
.REG
[4] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0
);
954 /* icode/icode_tools.nit:220 */
955 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
956 if (UNTAG_Bool(REGB0
)) {
957 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 220);
959 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
));
960 /* icode/icode_tools.nit:231 */
961 CALL_icode___icode_base___ICodeN___closure_defs__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
964 /* icode/icode_tools.nit:234 */
965 fra
.me
.REG
[4] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
966 /* icode/icode_tools.nit:235 */
967 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
968 if (UNTAG_Bool(REGB0
)) {
970 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
971 if (UNTAG_Bool(REGB1
)) {
972 REGB1
= TAG_Bool(false);
975 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
979 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
980 if (UNTAG_Bool(REGB0
)) {
981 fra
.me
.REG
[4] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
982 CALL_icode___icode_base___ICode___result__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
984 /* icode/icode_tools.nit:236 */
985 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode___location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
986 CALL_icode___icode_base___ICode___location__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
987 /* icode/icode_tools.nit:237 */
988 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
989 if (UNTAG_Bool(REGB0
)) {
991 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 237);
993 fra
.me
.REG
[1] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
994 fra
.me
.REG
[1] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
995 fra
.me
.REG
[1] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
996 CALL_standard___collection___abstract_collection___SimpleCollection___add(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
997 stack_frame_head
= fra
.me
.prev
;
1000 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
){
1001 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1006 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1007 fra
.me
.file
= LOCATE_icode___icode_tools
;
1009 fra
.me
.meth
= LOCATE_icode___icode_tools___ICode___dup_with
;
1010 fra
.me
.has_broke
= 0;
1011 fra
.me
.REG_size
= 3;
1012 fra
.me
.nitni_local_ref_head
= NULL
;
1013 fra
.me
.REG
[0] = NIT_NULL
;
1014 fra
.me
.REG
[1] = NIT_NULL
;
1015 fra
.me
.REG
[2] = NIT_NULL
;
1016 fra
.me
.closure_ctx
= closctx_param
;
1017 fra
.me
.closure_funs
= CREG
;
1019 CREG
[0] = clos_fun0
;
1020 /* icode/icode_tools.nit:221 */
1021 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1022 if (UNTAG_Bool(REGB0
)) {
1024 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1025 if (UNTAG_Bool(REGB1
)) {
1026 REGB1
= TAG_Bool(false);
1029 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1033 if (UNTAG_Bool(REGB0
)) {
1034 /* icode/icode_tools.nit:222 */
1035 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], NIT_NULL
);
1037 /* icode/icode_tools.nit:224 */
1038 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1039 if (UNTAG_Bool(REGB0
)) {
1040 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 224);
1042 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___result(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1043 /* icode/icode_tools.nit:225 */
1044 REGB0
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1045 if (UNTAG_Bool(REGB0
)) {
1047 REGB1
= TAG_Bool(fra
.me
.REG
[1]==NIT_NULL
);
1048 if (UNTAG_Bool(REGB1
)) {
1049 REGB1
= TAG_Bool(false);
1052 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[1])(fra
.me
.REG
[1], NIT_NULL
);
1056 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1057 if (UNTAG_Bool(REGB0
)) {
1058 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[1]);
1059 fra
.me
.REG
[1] = fra
.me
.REG
[2];
1061 /* icode/icode_tools.nit:226 */
1062 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1063 if (UNTAG_Bool(REGB0
)) {
1064 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 226);
1066 fra
.me
.REG
[2] = CALL_icode___icode_base___IRoutine___params(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1067 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(closctx
->REG
[1])(closctx
->REG
[1], fra
.me
.REG
[2]);
1068 fra
.me
.REG
[1] = NEW_IClosureDef_icode___icode_base___IClosureDef___init(fra
.me
.REG
[2], fra
.me
.REG
[1]);
1069 /* icode/icode_tools.nit:227 */
1070 CALL_standard___collection___abstract_collection___SimpleCollection___add(closctx
->REG
[4])(closctx
->REG
[4], fra
.me
.REG
[1]);
1071 /* icode/icode_tools.nit:228 */
1072 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1073 if (UNTAG_Bool(REGB0
)) {
1074 nit_abort("Reciever is null", NULL
, LOCATE_icode___icode_tools
, 228);
1076 fra
.me
.REG
[0] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1077 fra
.me
.REG
[1] = CALL_icode___icode_base___IRoutine___body(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
1078 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1], fra
.me
.REG
[1]);
1080 stack_frame_head
= fra
.me
.prev
;
1083 val_t
icode___icode_tools___ICode___inner_dup_with(val_t p0
, val_t p1
){
1084 struct {struct stack_frame_t me
;} fra
;
1086 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1087 fra
.me
.file
= LOCATE_icode___icode_tools
;
1089 fra
.me
.meth
= LOCATE_icode___icode_tools___ICode___inner_dup_with
;
1090 fra
.me
.has_broke
= 0;
1091 fra
.me
.REG_size
= 0;
1092 fra
.me
.nitni_local_ref_head
= NULL
;
1093 /* icode/icode_tools.nit:240 */
1094 nit_abort("Deferred method called", NULL
, LOCATE_icode___icode_tools
, 240);
1095 stack_frame_head
= fra
.me
.prev
;
1098 val_t
icode___icode_tools___ISeq___inner_dup_with(val_t p0
, val_t p1
){
1099 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1101 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1102 fra
.me
.file
= LOCATE_icode___icode_tools
;
1104 fra
.me
.meth
= LOCATE_icode___icode_tools___ISeq___inner_dup_with
;
1105 fra
.me
.has_broke
= 0;
1106 fra
.me
.REG_size
= 3;
1107 fra
.me
.nitni_local_ref_head
= NULL
;
1108 fra
.me
.REG
[0] = NIT_NULL
;
1109 fra
.me
.REG
[1] = NIT_NULL
;
1110 fra
.me
.REG
[2] = NIT_NULL
;
1113 /* icode/icode_tools.nit:247 */
1114 fra
.me
.REG
[2] = NEW_ISeq_icode___icode_base___ISeq___init();
1115 /* icode/icode_tools.nit:248 */
1116 CALL_icode___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:249 */
1120 stack_frame_head
= fra
.me
.prev
;
1121 return fra
.me
.REG
[2];
1123 void icode___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
[4];} fra
;
1128 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1129 fra
.me
.file
= LOCATE_icode___icode_tools
;
1131 fra
.me
.meth
= LOCATE_icode___icode_tools___ISeq___dup_seq_to
;
1132 fra
.me
.has_broke
= 0;
1133 fra
.me
.REG_size
= 5;
1134 fra
.me
.nitni_local_ref_head
= NULL
;
1135 fra
.me
.REG
[0] = NIT_NULL
;
1136 fra
.me
.REG
[1] = NIT_NULL
;
1137 fra
.me
.REG
[2] = NIT_NULL
;
1138 fra
.me
.REG
[3] = NIT_NULL
;
1139 fra
.me
.REG
[4] = NIT_NULL
;
1143 /* icode/icode_tools.nit:256 */
1144 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1145 if (UNTAG_Bool(REGB0
)) {
1147 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 256);
1149 fra
.me
.REG
[3] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1150 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___seq(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
1151 /* icode/icode_tools.nit:257 */
1152 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1153 if (UNTAG_Bool(REGB0
)) {
1155 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 257);
1157 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1158 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[2]);
1159 /* icode/icode_tools.nit:258 */
1160 fra
.me
.REG
[4] = CALL_icode___icode_base___ISeq___icodes(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1161 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
));
1162 /* icode/icode_tools.nit:261 */
1163 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
1164 if (UNTAG_Bool(REGB0
)) {
1166 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 261);
1168 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
1169 CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
1170 /* icode/icode_tools.nit:262 */
1171 fra
.me
.REG
[3] = CALL_icode___icode_base___ISeq___iescape_mark(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1172 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1173 if (UNTAG_Bool(REGB0
)) {
1175 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
1176 if (UNTAG_Bool(REGB1
)) {
1177 REGB1
= TAG_Bool(false);
1180 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
1184 if (UNTAG_Bool(REGB0
)) {
1186 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 262);
1188 /* icode/icode_tools.nit:263 */
1189 fra
.me
.REG
[0] = CALL_icode___icode_base___ISeq___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1190 /* icode/icode_tools.nit:264 */
1191 REGB0
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1192 if (UNTAG_Bool(REGB0
)) {
1194 REGB1
= TAG_Bool(fra
.me
.REG
[0]==NIT_NULL
);
1195 if (UNTAG_Bool(REGB1
)) {
1196 REGB1
= TAG_Bool(false);
1199 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[0])(fra
.me
.REG
[0], NIT_NULL
);
1203 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1204 if (UNTAG_Bool(REGB0
)) {
1205 /* icode/icode_tools.nit:265 */
1206 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1207 CALL_icode___icode_base___ISeq___iescape_mark__eq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1209 stack_frame_head
= fra
.me
.prev
;
1212 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
){
1213 struct {struct stack_frame_t me
;} fra
;
1216 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1217 fra
.me
.file
= LOCATE_icode___icode_tools
;
1219 fra
.me
.meth
= LOCATE_icode___icode_tools___ISeq___dup_seq_to
;
1220 fra
.me
.has_broke
= 0;
1221 fra
.me
.REG_size
= 1;
1222 fra
.me
.nitni_local_ref_head
= NULL
;
1223 fra
.me
.REG
[0] = NIT_NULL
;
1224 fra
.me
.closure_ctx
= closctx_param
;
1225 fra
.me
.closure_funs
= CREG
;
1227 CREG
[0] = clos_fun0
;
1228 /* icode/icode_tools.nit:259 */
1229 CALL_icode___icode_tools___ICode___dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], closctx
->REG
[1]);
1230 stack_frame_head
= fra
.me
.prev
;
1233 val_t
icode___icode_tools___ILoop___inner_dup_with(val_t p0
, val_t p1
){
1234 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1236 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1237 fra
.me
.file
= LOCATE_icode___icode_tools
;
1239 fra
.me
.meth
= LOCATE_icode___icode_tools___ILoop___inner_dup_with
;
1240 fra
.me
.has_broke
= 0;
1241 fra
.me
.REG_size
= 3;
1242 fra
.me
.nitni_local_ref_head
= NULL
;
1243 fra
.me
.REG
[0] = NIT_NULL
;
1244 fra
.me
.REG
[1] = NIT_NULL
;
1245 fra
.me
.REG
[2] = NIT_NULL
;
1248 /* icode/icode_tools.nit:273 */
1249 fra
.me
.REG
[2] = NEW_ILoop_icode___icode_base___ILoop___init();
1250 /* icode/icode_tools.nit:274 */
1251 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[2]);
1252 /* icode/icode_tools.nit:275 */
1255 stack_frame_head
= fra
.me
.prev
;
1256 return fra
.me
.REG
[2];
1258 val_t
icode___icode_tools___IIf___inner_dup_with(val_t p0
, val_t p1
){
1259 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
1261 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1262 fra
.me
.file
= LOCATE_icode___icode_tools
;
1264 fra
.me
.meth
= LOCATE_icode___icode_tools___IIf___inner_dup_with
;
1265 fra
.me
.has_broke
= 0;
1266 fra
.me
.REG_size
= 5;
1267 fra
.me
.nitni_local_ref_head
= NULL
;
1268 fra
.me
.REG
[0] = NIT_NULL
;
1269 fra
.me
.REG
[1] = NIT_NULL
;
1270 fra
.me
.REG
[2] = NIT_NULL
;
1271 fra
.me
.REG
[3] = NIT_NULL
;
1272 fra
.me
.REG
[4] = NIT_NULL
;
1275 /* icode/icode_tools.nit:282 */
1276 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1277 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1278 fra
.me
.REG
[2] = NEW_IIf_icode___icode_base___IIf___init(fra
.me
.REG
[2]);
1279 /* icode/icode_tools.nit:283 */
1280 fra
.me
.REG
[3] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1281 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___then_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1282 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1283 /* icode/icode_tools.nit:284 */
1284 fra
.me
.REG
[0] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1285 fra
.me
.REG
[4] = CALL_icode___icode_base___IIf___else_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1286 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[4]);
1287 /* icode/icode_tools.nit:285 */
1290 stack_frame_head
= fra
.me
.prev
;
1291 return fra
.me
.REG
[2];
1293 val_t
icode___icode_tools___IEscape___inner_dup_with(val_t p0
, val_t p1
){
1294 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1296 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1297 fra
.me
.file
= LOCATE_icode___icode_tools
;
1299 fra
.me
.meth
= LOCATE_icode___icode_tools___IEscape___inner_dup_with
;
1300 fra
.me
.has_broke
= 0;
1301 fra
.me
.REG_size
= 2;
1302 fra
.me
.nitni_local_ref_head
= NULL
;
1303 fra
.me
.REG
[0] = NIT_NULL
;
1304 fra
.me
.REG
[1] = NIT_NULL
;
1307 /* icode/icode_tools.nit:293 */
1308 fra
.me
.REG
[0] = CALL_icode___icode_base___IEscape___iescape_mark(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1309 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_mark(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1310 /* icode/icode_tools.nit:295 */
1311 fra
.me
.REG
[0] = NEW_IEscape_icode___icode_base___IEscape___init(fra
.me
.REG
[0]);
1314 stack_frame_head
= fra
.me
.prev
;
1315 return fra
.me
.REG
[0];
1317 val_t
icode___icode_tools___IAbort___inner_dup_with(val_t p0
, val_t p1
){
1318 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1320 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1321 fra
.me
.file
= LOCATE_icode___icode_tools
;
1323 fra
.me
.meth
= LOCATE_icode___icode_tools___IAbort___inner_dup_with
;
1324 fra
.me
.has_broke
= 0;
1325 fra
.me
.REG_size
= 2;
1326 fra
.me
.nitni_local_ref_head
= NULL
;
1327 fra
.me
.REG
[0] = NIT_NULL
;
1328 fra
.me
.REG
[1] = NIT_NULL
;
1331 /* icode/icode_tools.nit:302 */
1332 fra
.me
.REG
[1] = CALL_icode___icode_base___IAbort___texts(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1333 fra
.me
.REG
[0] = CALL_icode___icode_base___IAbort___module_location(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1334 fra
.me
.REG
[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1337 stack_frame_head
= fra
.me
.prev
;
1338 return fra
.me
.REG
[0];
1340 val_t
icode___icode_tools___ICall___inner_dup_with(val_t p0
, val_t p1
){
1341 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1343 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1344 fra
.me
.file
= LOCATE_icode___icode_tools
;
1346 fra
.me
.meth
= LOCATE_icode___icode_tools___ICall___inner_dup_with
;
1347 fra
.me
.has_broke
= 0;
1348 fra
.me
.REG_size
= 3;
1349 fra
.me
.nitni_local_ref_head
= NULL
;
1350 fra
.me
.REG
[0] = NIT_NULL
;
1351 fra
.me
.REG
[1] = NIT_NULL
;
1352 fra
.me
.REG
[2] = NIT_NULL
;
1355 /* icode/icode_tools.nit:309 */
1356 fra
.me
.REG
[2] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1357 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1358 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1359 fra
.me
.REG
[0] = NEW_ICall_icode___icode_base___ICall___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1362 stack_frame_head
= fra
.me
.prev
;
1363 return fra
.me
.REG
[0];
1365 val_t
icode___icode_tools___ISuper___inner_dup_with(val_t p0
, val_t p1
){
1366 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1368 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1369 fra
.me
.file
= LOCATE_icode___icode_tools
;
1371 fra
.me
.meth
= LOCATE_icode___icode_tools___ISuper___inner_dup_with
;
1372 fra
.me
.has_broke
= 0;
1373 fra
.me
.REG_size
= 3;
1374 fra
.me
.nitni_local_ref_head
= NULL
;
1375 fra
.me
.REG
[0] = NIT_NULL
;
1376 fra
.me
.REG
[1] = NIT_NULL
;
1377 fra
.me
.REG
[2] = NIT_NULL
;
1380 /* icode/icode_tools.nit:316 */
1381 fra
.me
.REG
[2] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1382 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1383 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1384 fra
.me
.REG
[0] = NEW_ISuper_icode___icode_base___ISuper___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1387 stack_frame_head
= fra
.me
.prev
;
1388 return fra
.me
.REG
[0];
1390 val_t
icode___icode_tools___INew___inner_dup_with(val_t p0
, val_t p1
){
1391 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1393 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1394 fra
.me
.file
= LOCATE_icode___icode_tools
;
1396 fra
.me
.meth
= LOCATE_icode___icode_tools___INew___inner_dup_with
;
1397 fra
.me
.has_broke
= 0;
1398 fra
.me
.REG_size
= 4;
1399 fra
.me
.nitni_local_ref_head
= NULL
;
1400 fra
.me
.REG
[0] = NIT_NULL
;
1401 fra
.me
.REG
[1] = NIT_NULL
;
1402 fra
.me
.REG
[2] = NIT_NULL
;
1403 fra
.me
.REG
[3] = NIT_NULL
;
1406 /* icode/icode_tools.nit:323 */
1407 fra
.me
.REG
[2] = CALL_icode___icode_base___INew___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1408 fra
.me
.REG
[3] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1409 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1410 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1411 fra
.me
.REG
[0] = NEW_INew_icode___icode_base___INew___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1414 stack_frame_head
= fra
.me
.prev
;
1415 return fra
.me
.REG
[0];
1417 val_t
icode___icode_tools___IAllocateInstance___inner_dup_with(val_t p0
, val_t p1
){
1418 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1420 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1421 fra
.me
.file
= LOCATE_icode___icode_tools
;
1423 fra
.me
.meth
= LOCATE_icode___icode_tools___IAllocateInstance___inner_dup_with
;
1424 fra
.me
.has_broke
= 0;
1425 fra
.me
.REG_size
= 2;
1426 fra
.me
.nitni_local_ref_head
= NULL
;
1427 fra
.me
.REG
[0] = NIT_NULL
;
1428 fra
.me
.REG
[1] = NIT_NULL
;
1431 /* icode/icode_tools.nit:330 */
1432 fra
.me
.REG
[0] = CALL_icode___icode_base___IAllocateInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1433 fra
.me
.REG
[0] = NEW_IAllocateInstance_icode___icode_base___IAllocateInstance___init(fra
.me
.REG
[0]);
1436 stack_frame_head
= fra
.me
.prev
;
1437 return fra
.me
.REG
[0];
1439 val_t
icode___icode_tools___IStaticCall___inner_dup_with(val_t p0
, val_t p1
){
1440 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1442 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1443 fra
.me
.file
= LOCATE_icode___icode_tools
;
1445 fra
.me
.meth
= LOCATE_icode___icode_tools___IStaticCall___inner_dup_with
;
1446 fra
.me
.has_broke
= 0;
1447 fra
.me
.REG_size
= 3;
1448 fra
.me
.nitni_local_ref_head
= NULL
;
1449 fra
.me
.REG
[0] = NIT_NULL
;
1450 fra
.me
.REG
[1] = NIT_NULL
;
1451 fra
.me
.REG
[2] = NIT_NULL
;
1454 /* icode/icode_tools.nit:337 */
1455 fra
.me
.REG
[2] = CALL_icode___icode_base___IAbsCall___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1456 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1457 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1458 fra
.me
.REG
[0] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1461 stack_frame_head
= fra
.me
.prev
;
1462 return fra
.me
.REG
[0];
1464 val_t
icode___icode_tools___ICheckInstance___inner_dup_with(val_t p0
, val_t p1
){
1465 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1467 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1468 fra
.me
.file
= LOCATE_icode___icode_tools
;
1470 fra
.me
.meth
= LOCATE_icode___icode_tools___ICheckInstance___inner_dup_with
;
1471 fra
.me
.has_broke
= 0;
1472 fra
.me
.REG_size
= 3;
1473 fra
.me
.nitni_local_ref_head
= NULL
;
1474 fra
.me
.REG
[0] = NIT_NULL
;
1475 fra
.me
.REG
[1] = NIT_NULL
;
1476 fra
.me
.REG
[2] = NIT_NULL
;
1479 /* icode/icode_tools.nit:344 */
1480 fra
.me
.REG
[2] = CALL_icode___icode_base___ICheckInstance___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1481 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1482 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1483 fra
.me
.REG
[0] = NEW_ICheckInstance_icode___icode_base___ICheckInstance___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1486 stack_frame_head
= fra
.me
.prev
;
1487 return fra
.me
.REG
[0];
1489 val_t
icode___icode_tools___IInitAttributes___inner_dup_with(val_t p0
, val_t p1
){
1490 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1492 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1493 fra
.me
.file
= LOCATE_icode___icode_tools
;
1495 fra
.me
.meth
= LOCATE_icode___icode_tools___IInitAttributes___inner_dup_with
;
1496 fra
.me
.has_broke
= 0;
1497 fra
.me
.REG_size
= 3;
1498 fra
.me
.nitni_local_ref_head
= NULL
;
1499 fra
.me
.REG
[0] = NIT_NULL
;
1500 fra
.me
.REG
[1] = NIT_NULL
;
1501 fra
.me
.REG
[2] = NIT_NULL
;
1504 /* icode/icode_tools.nit:351 */
1505 fra
.me
.REG
[2] = CALL_icode___icode_base___IInitAttributes___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1506 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1507 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1508 fra
.me
.REG
[0] = NEW_IInitAttributes_icode___icode_base___IInitAttributes___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1511 stack_frame_head
= fra
.me
.prev
;
1512 return fra
.me
.REG
[0];
1514 void icode___icode_tools___IClosCall___dup_with(val_t p0
, val_t p1
){
1515 struct {struct stack_frame_t me
; val_t MORE_REG
[6];} fra
;
1519 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1520 fra
.me
.file
= LOCATE_icode___icode_tools
;
1522 fra
.me
.meth
= LOCATE_icode___icode_tools___IClosCall___dup_with
;
1523 fra
.me
.has_broke
= 0;
1524 fra
.me
.REG_size
= 7;
1525 fra
.me
.nitni_local_ref_head
= NULL
;
1526 fra
.me
.REG
[0] = NIT_NULL
;
1527 fra
.me
.REG
[1] = NIT_NULL
;
1528 fra
.me
.REG
[2] = NIT_NULL
;
1529 fra
.me
.REG
[3] = NIT_NULL
;
1530 fra
.me
.REG
[4] = NIT_NULL
;
1531 fra
.me
.REG
[5] = NIT_NULL
;
1532 fra
.me
.REG
[6] = NIT_NULL
;
1535 /* icode/icode_tools.nit:356 */
1536 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1537 fra
.me
.REG
[3] = fra
.me
.REG
[1];
1538 /* icode/icode_tools.nit:358 */
1539 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3])!=NIT_NULL
);
1540 if (UNTAG_Bool(REGB0
)) {
1542 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 358);
1544 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3]);
1545 fra
.me
.REG
[5] = CALL_icode___icode_base___IClosCall___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1546 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[5]);
1547 if (UNTAG_Bool(REGB0
)) {
1548 /* icode/icode_tools.nit:360 */
1549 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3])!=NIT_NULL
);
1550 if (UNTAG_Bool(REGB0
)) {
1552 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 360);
1554 fra
.me
.REG
[5] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[3]);
1555 fra
.me
.REG
[4] = CALL_icode___icode_base___IClosCall___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1556 fra
.me
.REG
[4] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[5])(fra
.me
.REG
[5], fra
.me
.REG
[4]);
1557 /* icode/icode_tools.nit:361 */
1558 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1559 if (UNTAG_Bool(REGB0
)) {
1561 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1562 if (UNTAG_Bool(REGB1
)) {
1563 REGB1
= TAG_Bool(false);
1566 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1570 if (UNTAG_Bool(REGB0
)) {
1571 /* icode/icode_tools.nit:363 */
1574 /* icode/icode_tools.nit:366 */
1575 fra
.me
.REG
[5] = CALL_icode___icode_base___IClosCall___break_seq(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1576 REGB0
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1577 if (UNTAG_Bool(REGB0
)) {
1579 REGB1
= TAG_Bool(fra
.me
.REG
[5]==NIT_NULL
);
1580 if (UNTAG_Bool(REGB1
)) {
1581 REGB1
= TAG_Bool(false);
1584 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[5])(fra
.me
.REG
[5], NIT_NULL
);
1588 if (UNTAG_Bool(REGB0
)) {
1590 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 366);
1592 /* icode/icode_tools.nit:368 */
1593 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3])!=NIT_NULL
);
1594 if (UNTAG_Bool(REGB0
)) {
1596 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 368);
1598 fra
.me
.REG
[5] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3]);
1599 fra
.me
.REG
[6] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1600 fra
.me
.REG
[6] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[6]);
1601 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
);
1602 /* icode/icode_tools.nit:369 */
1603 fra
.me
.REG
[4] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1604 REGB0
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1605 if (UNTAG_Bool(REGB0
)) {
1607 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
1608 if (UNTAG_Bool(REGB1
)) {
1609 REGB1
= TAG_Bool(false);
1612 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
1616 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1617 if (UNTAG_Bool(REGB0
)) {
1618 /* icode/icode_tools.nit:370 */
1619 REGB0
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1620 if (UNTAG_Bool(REGB0
)) {
1622 REGB1
= TAG_Bool(fra
.me
.REG
[6]==NIT_NULL
);
1623 if (UNTAG_Bool(REGB1
)) {
1624 REGB1
= TAG_Bool(false);
1627 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[6])(fra
.me
.REG
[6], NIT_NULL
);
1631 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
1632 if (UNTAG_Bool(REGB0
)) {
1634 nit_abort("Assert failed", NULL
, LOCATE_icode___icode_tools
, 370);
1636 /* icode/icode_tools.nit:371 */
1637 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3])!=NIT_NULL
);
1638 if (UNTAG_Bool(REGB0
)) {
1640 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 371);
1642 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[3]);
1643 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1644 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*/;
1645 if (UNTAG_Bool(REGB0
)) {
1647 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_tools
, 371);
1649 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1650 fra
.me
.REG
[6] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[2], fra
.me
.REG
[6]);
1651 CALL_icode___icode_builder___ICodeBuilder___stmt(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[6]);
1654 /* icode/icode_tools.nit:375 */
1655 CALL_SUPER_icode___icode_tools___IClosCall___dup_with(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1658 stack_frame_head
= fra
.me
.prev
;
1661 val_t
icode___icode_tools___IClosCall___inner_dup_with(val_t p0
, val_t p1
){
1662 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1664 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1665 fra
.me
.file
= LOCATE_icode___icode_tools
;
1667 fra
.me
.meth
= LOCATE_icode___icode_tools___IClosCall___inner_dup_with
;
1668 fra
.me
.has_broke
= 0;
1669 fra
.me
.REG_size
= 2;
1670 fra
.me
.nitni_local_ref_head
= NULL
;
1671 fra
.me
.REG
[0] = NIT_NULL
;
1672 fra
.me
.REG
[1] = NIT_NULL
;
1675 /* icode/icode_tools.nit:381 */
1676 fra
.me
.REG
[1] = CALL_icode___icode_base___IClosCall___closure_decl(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1677 fra
.me
.REG
[0] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1678 fra
.me
.REG
[0] = NEW_IClosCall_icode___icode_base___IClosCall___init(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1681 stack_frame_head
= fra
.me
.prev
;
1682 return fra
.me
.REG
[0];
1684 val_t
icode___icode_tools___INative___inner_dup_with(val_t p0
, val_t p1
){
1685 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1688 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1689 fra
.me
.file
= LOCATE_icode___icode_tools
;
1691 fra
.me
.meth
= LOCATE_icode___icode_tools___INative___inner_dup_with
;
1692 fra
.me
.has_broke
= 0;
1693 fra
.me
.REG_size
= 4;
1694 fra
.me
.nitni_local_ref_head
= NULL
;
1695 fra
.me
.REG
[0] = NIT_NULL
;
1696 fra
.me
.REG
[1] = NIT_NULL
;
1697 fra
.me
.REG
[2] = NIT_NULL
;
1698 fra
.me
.REG
[3] = NIT_NULL
;
1701 /* icode/icode_tools.nit:388 */
1702 fra
.me
.REG
[2] = CALL_icode___icode_base___INative___method(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1703 fra
.me
.REG
[3] = CALL_icode___icode_base___ICodeN___exprs(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1704 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_iregs(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1705 fra
.me
.REG
[3] = NEW_INative_icode___icode_base___INative___init(fra
.me
.REG
[2], fra
.me
.REG
[3]);
1706 /* icode/icode_tools.nit:389 */
1707 REGB0
= CALL_icode___icode_base___ICode___is_pure(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1708 CALL_icode___icode_base___INative___is_pure__eq(fra
.me
.REG
[3])(fra
.me
.REG
[3], REGB0
);
1709 /* icode/icode_tools.nit:390 */
1712 stack_frame_head
= fra
.me
.prev
;
1713 return fra
.me
.REG
[3];
1715 val_t
icode___icode_tools___IIntValue___inner_dup_with(val_t p0
, val_t p1
){
1716 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1719 fra
.me
.file
= LOCATE_icode___icode_tools
;
1721 fra
.me
.meth
= LOCATE_icode___icode_tools___IIntValue___inner_dup_with
;
1722 fra
.me
.has_broke
= 0;
1723 fra
.me
.REG_size
= 2;
1724 fra
.me
.nitni_local_ref_head
= NULL
;
1725 fra
.me
.REG
[0] = NIT_NULL
;
1726 fra
.me
.REG
[1] = NIT_NULL
;
1729 /* icode/icode_tools.nit:397 */
1730 fra
.me
.REG
[0] = CALL_icode___icode_base___IIntValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1731 fra
.me
.REG
[0] = NEW_IIntValue_icode___icode_base___IIntValue___init(fra
.me
.REG
[0]);
1734 stack_frame_head
= fra
.me
.prev
;
1735 return fra
.me
.REG
[0];
1737 val_t
icode___icode_tools___IBoolValue___inner_dup_with(val_t p0
, val_t p1
){
1738 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1741 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1742 fra
.me
.file
= LOCATE_icode___icode_tools
;
1744 fra
.me
.meth
= LOCATE_icode___icode_tools___IBoolValue___inner_dup_with
;
1745 fra
.me
.has_broke
= 0;
1746 fra
.me
.REG_size
= 2;
1747 fra
.me
.nitni_local_ref_head
= NULL
;
1748 fra
.me
.REG
[0] = NIT_NULL
;
1749 fra
.me
.REG
[1] = NIT_NULL
;
1752 /* icode/icode_tools.nit:404 */
1753 REGB0
= CALL_icode___icode_base___IBoolValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1754 fra
.me
.REG
[0] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0
);
1757 stack_frame_head
= fra
.me
.prev
;
1758 return fra
.me
.REG
[0];
1760 val_t
icode___icode_tools___IStringValue___inner_dup_with(val_t p0
, val_t p1
){
1761 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1763 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1764 fra
.me
.file
= LOCATE_icode___icode_tools
;
1766 fra
.me
.meth
= LOCATE_icode___icode_tools___IStringValue___inner_dup_with
;
1767 fra
.me
.has_broke
= 0;
1768 fra
.me
.REG_size
= 2;
1769 fra
.me
.nitni_local_ref_head
= NULL
;
1770 fra
.me
.REG
[0] = NIT_NULL
;
1771 fra
.me
.REG
[1] = NIT_NULL
;
1774 /* icode/icode_tools.nit:411 */
1775 fra
.me
.REG
[0] = CALL_icode___icode_base___IStringValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1776 fra
.me
.REG
[0] = NEW_IStringValue_icode___icode_base___IStringValue___init(fra
.me
.REG
[0]);
1779 stack_frame_head
= fra
.me
.prev
;
1780 return fra
.me
.REG
[0];
1782 val_t
icode___icode_tools___IFloatValue___inner_dup_with(val_t p0
, val_t p1
){
1783 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1785 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1786 fra
.me
.file
= LOCATE_icode___icode_tools
;
1788 fra
.me
.meth
= LOCATE_icode___icode_tools___IFloatValue___inner_dup_with
;
1789 fra
.me
.has_broke
= 0;
1790 fra
.me
.REG_size
= 2;
1791 fra
.me
.nitni_local_ref_head
= NULL
;
1792 fra
.me
.REG
[0] = NIT_NULL
;
1793 fra
.me
.REG
[1] = NIT_NULL
;
1796 /* icode/icode_tools.nit:418 */
1797 fra
.me
.REG
[0] = CALL_icode___icode_base___IFloatValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1798 fra
.me
.REG
[0] = NEW_IFloatValue_icode___icode_base___IFloatValue___init(fra
.me
.REG
[0]);
1801 stack_frame_head
= fra
.me
.prev
;
1802 return fra
.me
.REG
[0];
1804 val_t
icode___icode_tools___ICharValue___inner_dup_with(val_t p0
, val_t p1
){
1805 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1807 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1808 fra
.me
.file
= LOCATE_icode___icode_tools
;
1810 fra
.me
.meth
= LOCATE_icode___icode_tools___ICharValue___inner_dup_with
;
1811 fra
.me
.has_broke
= 0;
1812 fra
.me
.REG_size
= 2;
1813 fra
.me
.nitni_local_ref_head
= NULL
;
1814 fra
.me
.REG
[0] = NIT_NULL
;
1815 fra
.me
.REG
[1] = NIT_NULL
;
1818 /* icode/icode_tools.nit:425 */
1819 fra
.me
.REG
[0] = CALL_icode___icode_base___ICharValue___value(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1820 fra
.me
.REG
[0] = NEW_ICharValue_icode___icode_base___ICharValue___init(fra
.me
.REG
[0]);
1823 stack_frame_head
= fra
.me
.prev
;
1824 return fra
.me
.REG
[0];
1826 val_t
icode___icode_tools___IMove___inner_dup_with(val_t p0
, val_t p1
){
1827 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1830 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1831 fra
.me
.file
= LOCATE_icode___icode_tools
;
1833 fra
.me
.meth
= LOCATE_icode___icode_tools___IMove___inner_dup_with
;
1834 fra
.me
.has_broke
= 0;
1835 fra
.me
.REG_size
= 4;
1836 fra
.me
.nitni_local_ref_head
= NULL
;
1837 fra
.me
.REG
[0] = NIT_NULL
;
1838 fra
.me
.REG
[1] = NIT_NULL
;
1839 fra
.me
.REG
[2] = NIT_NULL
;
1840 fra
.me
.REG
[3] = NIT_NULL
;
1843 /* icode/icode_tools.nit:430 */
1844 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1845 /* icode/icode_tools.nit:432 */
1846 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1847 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*/;
1848 if (UNTAG_Bool(REGB0
)) {
1850 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_tools
, 432);
1852 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1853 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1854 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1855 fra
.me
.REG
[2] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[3], fra
.me
.REG
[2]);
1858 stack_frame_head
= fra
.me
.prev
;
1859 return fra
.me
.REG
[2];
1861 val_t
icode___icode_tools___IAttrRead___inner_dup_with(val_t p0
, val_t p1
){
1862 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1864 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1865 fra
.me
.file
= LOCATE_icode___icode_tools
;
1867 fra
.me
.meth
= LOCATE_icode___icode_tools___IAttrRead___inner_dup_with
;
1868 fra
.me
.has_broke
= 0;
1869 fra
.me
.REG_size
= 3;
1870 fra
.me
.nitni_local_ref_head
= NULL
;
1871 fra
.me
.REG
[0] = NIT_NULL
;
1872 fra
.me
.REG
[1] = NIT_NULL
;
1873 fra
.me
.REG
[2] = NIT_NULL
;
1876 /* icode/icode_tools.nit:439 */
1877 fra
.me
.REG
[2] = CALL_icode___icode_base___IAttrRead___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1878 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1879 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1880 fra
.me
.REG
[0] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1883 stack_frame_head
= fra
.me
.prev
;
1884 return fra
.me
.REG
[0];
1886 val_t
icode___icode_tools___IAttrWrite___inner_dup_with(val_t p0
, val_t p1
){
1887 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1889 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1890 fra
.me
.file
= LOCATE_icode___icode_tools
;
1892 fra
.me
.meth
= LOCATE_icode___icode_tools___IAttrWrite___inner_dup_with
;
1893 fra
.me
.has_broke
= 0;
1894 fra
.me
.REG_size
= 4;
1895 fra
.me
.nitni_local_ref_head
= NULL
;
1896 fra
.me
.REG
[0] = NIT_NULL
;
1897 fra
.me
.REG
[1] = NIT_NULL
;
1898 fra
.me
.REG
[2] = NIT_NULL
;
1899 fra
.me
.REG
[3] = NIT_NULL
;
1902 /* icode/icode_tools.nit:446 */
1903 fra
.me
.REG
[2] = CALL_icode___icode_base___IAttrWrite___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1904 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1905 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1906 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1907 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1908 fra
.me
.REG
[0] = NEW_IAttrWrite_icode___icode_base___IAttrWrite___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1911 stack_frame_head
= fra
.me
.prev
;
1912 return fra
.me
.REG
[0];
1914 val_t
icode___icode_tools___IAttrIsset___inner_dup_with(val_t p0
, val_t p1
){
1915 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1917 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1918 fra
.me
.file
= LOCATE_icode___icode_tools
;
1920 fra
.me
.meth
= LOCATE_icode___icode_tools___IAttrIsset___inner_dup_with
;
1921 fra
.me
.has_broke
= 0;
1922 fra
.me
.REG_size
= 3;
1923 fra
.me
.nitni_local_ref_head
= NULL
;
1924 fra
.me
.REG
[0] = NIT_NULL
;
1925 fra
.me
.REG
[1] = NIT_NULL
;
1926 fra
.me
.REG
[2] = NIT_NULL
;
1929 /* icode/icode_tools.nit:453 */
1930 fra
.me
.REG
[2] = CALL_icode___icode_base___IAttrIsset___property(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1931 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1932 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1933 fra
.me
.REG
[0] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1936 stack_frame_head
= fra
.me
.prev
;
1937 return fra
.me
.REG
[0];
1939 val_t
icode___icode_tools___ITypeCheck___inner_dup_with(val_t p0
, val_t p1
){
1940 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
1942 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1943 fra
.me
.file
= LOCATE_icode___icode_tools
;
1945 fra
.me
.meth
= LOCATE_icode___icode_tools___ITypeCheck___inner_dup_with
;
1946 fra
.me
.has_broke
= 0;
1947 fra
.me
.REG_size
= 4;
1948 fra
.me
.nitni_local_ref_head
= NULL
;
1949 fra
.me
.REG
[0] = NIT_NULL
;
1950 fra
.me
.REG
[1] = NIT_NULL
;
1951 fra
.me
.REG
[2] = NIT_NULL
;
1952 fra
.me
.REG
[3] = NIT_NULL
;
1955 /* icode/icode_tools.nit:460 */
1956 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1957 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1958 fra
.me
.REG
[3] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1959 fra
.me
.REG
[3] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[3]);
1960 fra
.me
.REG
[0] = CALL_icode___icode_base___ITypeCheck___stype(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1961 fra
.me
.REG
[0] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra
.me
.REG
[2], fra
.me
.REG
[3], fra
.me
.REG
[0]);
1964 stack_frame_head
= fra
.me
.prev
;
1965 return fra
.me
.REG
[0];
1967 val_t
icode___icode_tools___IIs___inner_dup_with(val_t p0
, val_t p1
){
1968 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} 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___IIs___inner_dup_with
;
1974 fra
.me
.has_broke
= 0;
1975 fra
.me
.REG_size
= 3;
1976 fra
.me
.nitni_local_ref_head
= NULL
;
1977 fra
.me
.REG
[0] = NIT_NULL
;
1978 fra
.me
.REG
[1] = NIT_NULL
;
1979 fra
.me
.REG
[2] = NIT_NULL
;
1982 /* icode/icode_tools.nit:467 */
1983 fra
.me
.REG
[2] = CALL_icode___icode_base___ICode2___expr1(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1984 fra
.me
.REG
[2] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[2]);
1985 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode2___expr2(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1986 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
1987 fra
.me
.REG
[0] = NEW_IIs_icode___icode_base___IIs___init(fra
.me
.REG
[2], fra
.me
.REG
[0]);
1990 stack_frame_head
= fra
.me
.prev
;
1991 return fra
.me
.REG
[0];
1993 val_t
icode___icode_tools___INot___inner_dup_with(val_t p0
, val_t p1
){
1994 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1996 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1997 fra
.me
.file
= LOCATE_icode___icode_tools
;
1999 fra
.me
.meth
= LOCATE_icode___icode_tools___INot___inner_dup_with
;
2000 fra
.me
.has_broke
= 0;
2001 fra
.me
.REG_size
= 2;
2002 fra
.me
.nitni_local_ref_head
= NULL
;
2003 fra
.me
.REG
[0] = NIT_NULL
;
2004 fra
.me
.REG
[1] = NIT_NULL
;
2007 /* icode/icode_tools.nit:474 */
2008 fra
.me
.REG
[0] = CALL_icode___icode_base___ICode1___expr(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2009 fra
.me
.REG
[0] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[0]);
2010 fra
.me
.REG
[0] = NEW_INot_icode___icode_base___INot___init(fra
.me
.REG
[0]);
2013 stack_frame_head
= fra
.me
.prev
;
2014 return fra
.me
.REG
[0];
2016 val_t
icode___icode_tools___IOnce___inner_dup_with(val_t p0
, val_t p1
){
2017 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
2019 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2020 fra
.me
.file
= LOCATE_icode___icode_tools
;
2022 fra
.me
.meth
= LOCATE_icode___icode_tools___IOnce___inner_dup_with
;
2023 fra
.me
.has_broke
= 0;
2024 fra
.me
.REG_size
= 4;
2025 fra
.me
.nitni_local_ref_head
= NULL
;
2026 fra
.me
.REG
[0] = NIT_NULL
;
2027 fra
.me
.REG
[1] = NIT_NULL
;
2028 fra
.me
.REG
[2] = NIT_NULL
;
2029 fra
.me
.REG
[3] = NIT_NULL
;
2032 /* icode/icode_tools.nit:481 */
2033 fra
.me
.REG
[2] = NEW_IOnce_icode___icode_base___IOnce___init();
2034 /* icode/icode_tools.nit:482 */
2035 fra
.me
.REG
[0] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
2036 fra
.me
.REG
[3] = CALL_icode___icode_base___IOnce___body(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2037 CALL_icode___icode_tools___ISeq___dup_seq_to(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1], fra
.me
.REG
[3]);
2038 /* icode/icode_tools.nit:483 */
2041 stack_frame_head
= fra
.me
.prev
;
2042 return fra
.me
.REG
[2];
2044 val_t
icode___icode_tools___IHasClos___inner_dup_with(val_t p0
, val_t p1
){
2045 struct {struct stack_frame_t me
; val_t MORE_REG
[4];} fra
;
2049 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
2050 fra
.me
.file
= LOCATE_icode___icode_tools
;
2052 fra
.me
.meth
= LOCATE_icode___icode_tools___IHasClos___inner_dup_with
;
2053 fra
.me
.has_broke
= 0;
2054 fra
.me
.REG_size
= 5;
2055 fra
.me
.nitni_local_ref_head
= NULL
;
2056 fra
.me
.REG
[0] = NIT_NULL
;
2057 fra
.me
.REG
[1] = NIT_NULL
;
2058 fra
.me
.REG
[2] = NIT_NULL
;
2059 fra
.me
.REG
[3] = NIT_NULL
;
2060 fra
.me
.REG
[4] = NIT_NULL
;
2063 /* icode/icode_tools.nit:488 */
2064 fra
.me
.REG
[2] = fra
.me
.REG
[0];
2065 /* icode/icode_tools.nit:490 */
2066 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1])!=NIT_NULL
);
2067 if (UNTAG_Bool(REGB0
)) {
2069 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 490);
2071 fra
.me
.REG
[3] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1]);
2072 fra
.me
.REG
[4] = CALL_icode___icode_base___IHasClos___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2073 REGB0
= CALL_standard___collection___abstract_collection___MapRead___has_key(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[4]);
2074 if (UNTAG_Bool(REGB0
)) {
2075 /* icode/icode_tools.nit:492 */
2076 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1])!=NIT_NULL
);
2077 if (UNTAG_Bool(REGB0
)) {
2079 nit_abort("Uninitialized attribute %s", "_closures", LOCATE_icode___icode_tools
, 492);
2081 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____closures(fra
.me
.REG
[1]);
2082 fra
.me
.REG
[3] = CALL_icode___icode_base___IHasClos___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2083 fra
.me
.REG
[3] = CALL_standard___collection___abstract_collection___MapRead_____bra(fra
.me
.REG
[4])(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2084 /* icode/icode_tools.nit:494 */
2085 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2086 if (UNTAG_Bool(REGB0
)) {
2088 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
2089 if (UNTAG_Bool(REGB1
)) {
2090 REGB1
= TAG_Bool(false);
2093 REGB1
= CALL_standard___kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
2097 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
2098 if (UNTAG_Bool(REGB0
)) {
2099 /* icode/icode_tools.nit:495 */
2100 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
2101 if (UNTAG_Bool(REGB0
)) {
2103 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 495);
2105 fra
.me
.REG
[3] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
2106 fra
.me
.REG
[3] = CALL_icode___icode_builder___ICodeBuilder___lit_true_reg(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
2108 /* icode/icode_tools.nit:497 */
2109 REGB0
= TAG_Bool(ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1])!=NIT_NULL
);
2110 if (UNTAG_Bool(REGB0
)) {
2112 nit_abort("Uninitialized attribute %s", "_icb", LOCATE_icode___icode_tools
, 497);
2114 fra
.me
.REG
[4] = ATTR_icode___icode_tools___ICodeDupContext____icb(fra
.me
.REG
[1]);
2115 fra
.me
.REG
[4] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra
.me
.REG
[4])(fra
.me
.REG
[4]);
2116 fra
.me
.REG
[3] = fra
.me
.REG
[4];
2118 /* icode/icode_tools.nit:499 */
2119 fra
.me
.REG
[4] = CALL_icode___icode_base___ICode___result(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2120 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*/;
2121 if (UNTAG_Bool(REGB0
)) {
2123 nit_abort("Cast failed", NULL
, LOCATE_icode___icode_tools
, 499);
2125 fra
.me
.REG
[4] = CALL_icode___icode_tools___ICodeDupContext___dup_ireg(fra
.me
.REG
[1])(fra
.me
.REG
[1], fra
.me
.REG
[4]);
2126 fra
.me
.REG
[3] = NEW_IMove_icode___icode_base___IMove___init(fra
.me
.REG
[4], fra
.me
.REG
[3]);
2129 /* icode/icode_tools.nit:501 */
2130 fra
.me
.REG
[2] = CALL_icode___icode_base___IHasClos___closure_decl(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
2131 fra
.me
.REG
[2] = NEW_IHasClos_icode___icode_base___IHasClos___init(fra
.me
.REG
[2]);
2132 fra
.me
.REG
[3] = fra
.me
.REG
[2];
2136 stack_frame_head
= fra
.me
.prev
;
2137 return fra
.me
.REG
[3];