1 /* This C file is generated by NIT to compile module allocate_iregister_slots. */
2 #include "allocate_iregister_slots._sep.h"
3 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(val_t p0
, val_t p1
){
4 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
8 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
9 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
11 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality
;
14 fra
.me
.REG
[0] = NIT_NULL
;
15 fra
.me
.REG
[1] = NIT_NULL
;
16 fra
.me
.REG
[2] = NIT_NULL
;
17 fra
.me
.REG
[3] = NIT_NULL
;
20 /* ./analysis//allocate_iregister_slots.nit:39 */
21 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
22 if (UNTAG_Bool(REGB0
)) {
24 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_allocate_iregister_slots
, 39);
26 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
27 if (UNTAG_Bool(REGB0
)) {
28 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
29 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
30 if (UNTAG_Bool(REGB0
)) {
32 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_allocate_iregister_slots
, 39);
34 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
35 REGB0
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[3],fra
.me
.REG
[2]));
36 if (UNTAG_Bool(REGB0
)) {
38 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
39 if (UNTAG_Bool(REGB1
)) {
40 REGB1
= TAG_Bool(false);
43 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[3]);
47 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
49 REGB1
= TAG_Bool(false);
52 if (UNTAG_Bool(REGB0
)) {
53 /* ./analysis//allocate_iregister_slots.nit:40 */
54 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]);
55 REGB0
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
56 if (UNTAG_Bool(REGB0
)) {
58 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
59 if (UNTAG_Bool(REGB1
)) {
60 REGB1
= TAG_Bool(false);
63 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
67 if (UNTAG_Bool(REGB0
)) {
68 /* ./analysis//allocate_iregister_slots.nit:41 */
69 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
70 if (UNTAG_Bool(REGB0
)) {
72 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_allocate_iregister_slots
, 41);
74 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
75 ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
77 /* ./analysis//allocate_iregister_slots.nit:43 */
78 REGB0
= TAG_Bool(false);
79 ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]) = REGB0
;
82 stack_frame_head
= fra
.me
.prev
;
85 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read(val_t p0
, val_t p1
, val_t p2
){
86 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
91 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
92 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
94 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_read
;
97 fra
.me
.REG
[0] = NIT_NULL
;
98 fra
.me
.REG
[1] = NIT_NULL
;
99 fra
.me
.REG
[2] = NIT_NULL
;
100 fra
.me
.REG
[3] = NIT_NULL
;
104 /* ./analysis//allocate_iregister_slots.nit:52 */
105 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
106 if (UNTAG_Bool(REGB0
)) {
108 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_allocate_iregister_slots
, 52);
110 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
111 /* ./analysis//allocate_iregister_slots.nit:53 */
113 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
114 if (UNTAG_Bool(REGB2
)) {
116 /* ./../lib/standard//kernel.nit:207 */
117 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
118 /* ./analysis//allocate_iregister_slots.nit:53 */
121 if (UNTAG_Bool(REGB2
)) {
122 /* ./analysis//allocate_iregister_slots.nit:54 */
123 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
124 /* ./analysis//allocate_iregister_slots.nit:55 */
125 ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
126 /* ./analysis//allocate_iregister_slots.nit:56 */
127 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
129 /* ./analysis//allocate_iregister_slots.nit:57 */
131 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
132 if (UNTAG_Bool(REGB1
)) {
134 /* ./../lib/standard//kernel.nit:207 */
135 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
136 /* ./analysis//allocate_iregister_slots.nit:57 */
139 if (UNTAG_Bool(REGB1
)) {
140 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
141 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
142 if (UNTAG_Bool(REGB1
)) {
144 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
145 if (UNTAG_Bool(REGB2
)) {
146 REGB2
= TAG_Bool(false);
149 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
154 REGB2
= TAG_Bool(false);
157 if (UNTAG_Bool(REGB1
)) {
158 /* ./analysis//allocate_iregister_slots.nit:58 */
159 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
162 stack_frame_head
= fra
.me
.prev
;
165 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write(val_t p0
, val_t p1
, val_t p2
){
166 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
171 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
172 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
174 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iregister_write
;
175 fra
.me
.has_broke
= 0;
177 fra
.me
.REG
[0] = NIT_NULL
;
178 fra
.me
.REG
[1] = NIT_NULL
;
179 fra
.me
.REG
[2] = NIT_NULL
;
180 fra
.me
.REG
[3] = NIT_NULL
;
184 /* ./analysis//allocate_iregister_slots.nit:64 */
185 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0])!=NIT_NULL
);
186 if (UNTAG_Bool(REGB0
)) {
188 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_allocate_iregister_slots
, 64);
190 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]);
191 /* ./analysis//allocate_iregister_slots.nit:65 */
193 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
194 if (UNTAG_Bool(REGB2
)) {
196 /* ./../lib/standard//kernel.nit:207 */
197 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
198 /* ./analysis//allocate_iregister_slots.nit:65 */
201 if (UNTAG_Bool(REGB2
)) {
202 /* ./analysis//allocate_iregister_slots.nit:66 */
203 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
204 /* ./analysis//allocate_iregister_slots.nit:67 */
205 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[2]) = NIT_NULL
;
206 /* ./analysis//allocate_iregister_slots.nit:69 */
207 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
208 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
209 if (UNTAG_Bool(REGB2
)) {
211 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
212 if (UNTAG_Bool(REGB1
)) {
213 REGB1
= TAG_Bool(false);
216 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
220 if (UNTAG_Bool(REGB2
)) {
221 ATTR_allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
223 /* ./analysis//allocate_iregister_slots.nit:71 */
224 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
225 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
226 if (UNTAG_Bool(REGB2
)) {
228 REGB1
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
229 if (UNTAG_Bool(REGB1
)) {
230 REGB1
= TAG_Bool(false);
233 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], NIT_NULL
);
237 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
238 if (UNTAG_Bool(REGB2
)) {
239 ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
242 /* ./analysis//allocate_iregister_slots.nit:72 */
244 REGB1
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB2
));
245 if (UNTAG_Bool(REGB1
)) {
247 /* ./../lib/standard//kernel.nit:207 */
248 REGB2
= TAG_Bool((REGB0
)==(REGB2
));
249 /* ./analysis//allocate_iregister_slots.nit:72 */
252 if (UNTAG_Bool(REGB1
)) {
253 /* ./analysis//allocate_iregister_slots.nit:73 */
254 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____first(fra
.me
.REG
[2]);
255 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
256 if (UNTAG_Bool(REGB1
)) {
258 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
259 if (UNTAG_Bool(REGB2
)) {
260 REGB2
= TAG_Bool(false);
263 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
267 if (UNTAG_Bool(REGB1
)) {
268 /* ./analysis//allocate_iregister_slots.nit:74 */
269 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
271 /* ./analysis//allocate_iregister_slots.nit:75 */
272 fra
.me
.REG
[3] = ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[2]);
273 REGB1
= TAG_Bool(IS_EQUAL_ON(fra
.me
.REG
[1],fra
.me
.REG
[3]));
274 if (UNTAG_Bool(REGB1
)) {
276 REGB2
= TAG_Bool(fra
.me
.REG
[3]==NIT_NULL
);
277 if (UNTAG_Bool(REGB2
)) {
278 REGB2
= TAG_Bool(false);
281 REGB2
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[3])(fra
.me
.REG
[3], fra
.me
.REG
[1]);
285 if (UNTAG_Bool(REGB1
)) {
286 /* ./analysis//allocate_iregister_slots.nit:76 */
287 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
292 stack_frame_head
= fra
.me
.prev
;
295 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(val_t p0
){
296 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
300 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
301 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
303 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free
;
304 fra
.me
.has_broke
= 0;
306 fra
.me
.REG
[0] = NIT_NULL
;
307 fra
.me
.REG
[1] = NIT_NULL
;
308 fra
.me
.REG
[2] = NIT_NULL
;
310 /* ./analysis//allocate_iregister_slots.nit:98 */
311 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
312 if (UNTAG_Bool(REGB0
)) {
314 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_allocate_iregister_slots
, 98);
316 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
317 fra
.me
.REG
[1] = CALL_abstract_collection___Collection___iterator(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
318 /* ./analysis//allocate_iregister_slots.nit:99 */
319 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
320 if (UNTAG_Bool(REGB0
)) {
322 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_allocate_iregister_slots
, 99);
324 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
325 /* ./analysis//allocate_iregister_slots.nit:100 */
327 REGB1
= CALL_abstract_collection___Iterator___is_ok(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
328 if (UNTAG_Bool(REGB1
)) {
329 /* ./analysis//allocate_iregister_slots.nit:101 */
330 fra
.me
.REG
[2] = CALL_abstract_collection___Iterator___item(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
331 /* ./analysis//allocate_iregister_slots.nit:102 */
332 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2])!=NIT_NULL
);
333 if (UNTAG_Bool(REGB1
)) {
335 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_allocate_iregister_slots
, 102);
337 REGB1
= ATTR_allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[2]);
338 /* ./../lib/standard//kernel.nit:213 */
339 REGB1
= TAG_Bool(UNTAG_Int(REGB1
)>=UNTAG_Int(REGB0
));
340 /* ./analysis//allocate_iregister_slots.nit:102 */
341 if (UNTAG_Bool(REGB1
)) {
342 /* ./analysis//allocate_iregister_slots.nit:103 */
343 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[2]);
344 /* ./analysis//allocate_iregister_slots.nit:104 */
345 CALL_list___ListIterator___delete(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
347 /* ./analysis//allocate_iregister_slots.nit:106 */
348 CALL_abstract_collection___Iterator___next(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
350 /* ./analysis//allocate_iregister_slots.nit:100 */
355 stack_frame_head
= fra
.me
.prev
;
358 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(val_t p0
, val_t p1
){
359 struct {struct stack_frame_t me
; val_t MORE_REG
[3];} fra
;
364 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
365 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
367 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode
;
368 fra
.me
.has_broke
= 0;
370 fra
.me
.REG
[0] = NIT_NULL
;
371 fra
.me
.REG
[1] = NIT_NULL
;
372 fra
.me
.REG
[2] = NIT_NULL
;
373 fra
.me
.REG
[3] = NIT_NULL
;
376 /* ./analysis//allocate_iregister_slots.nit:110 */
377 fra
.me
.REG
[2] = fra
.me
.REG
[0];
378 fra
.me
.REG
[3] = fra
.me
.REG
[1];
379 /* ./analysis//allocate_iregister_slots.nit:112 */
380 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
381 if (UNTAG_Bool(REGB0
)) {
383 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_allocate_iregister_slots
, 112);
385 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
387 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
388 if (UNTAG_Bool(REGB2
)) {
390 /* ./../lib/standard//kernel.nit:207 */
391 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
392 /* ./analysis//allocate_iregister_slots.nit:112 */
395 if (UNTAG_Bool(REGB2
)) {
396 REGB2
= TAG_Bool((fra
.me
.REG
[3]!=NIT_NULL
) && VAL_ISA(fra
.me
.REG
[3], COLOR_ILoop
, ID_ILoop
)) /*cast ILoop*/;
398 REGB1
= TAG_Bool(false);
401 if (UNTAG_Bool(REGB2
)) {
402 /* ./analysis//allocate_iregister_slots.nit:113 */
403 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
404 if (UNTAG_Bool(REGB2
)) {
406 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_allocate_iregister_slots
, 113);
408 REGB2
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
409 /* ./analysis//allocate_iregister_slots.nit:114 */
410 REGB1
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
412 /* ./../lib/standard//kernel.nit:215 */
413 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
414 /* ./analysis//allocate_iregister_slots.nit:114 */
415 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
416 /* ./analysis//allocate_iregister_slots.nit:115 */
417 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
418 if (UNTAG_Bool(REGB0
)) {
420 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_allocate_iregister_slots
, 115);
422 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
423 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
424 /* ./analysis//allocate_iregister_slots.nit:116 */
425 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
426 /* ./analysis//allocate_iregister_slots.nit:117 */
427 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
428 /* ./analysis//allocate_iregister_slots.nit:118 */
429 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
431 /* ./analysis//allocate_iregister_slots.nit:120 */
432 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_icode(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
434 stack_frame_head
= fra
.me
.prev
;
437 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(val_t p0
, val_t p1
){
438 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
443 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
444 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
446 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs
;
447 fra
.me
.has_broke
= 0;
449 fra
.me
.REG
[0] = NIT_NULL
;
450 fra
.me
.REG
[1] = NIT_NULL
;
451 fra
.me
.REG
[2] = NIT_NULL
;
454 /* ./analysis//allocate_iregister_slots.nit:124 */
455 fra
.me
.REG
[2] = fra
.me
.REG
[0];
456 /* ./analysis//allocate_iregister_slots.nit:126 */
457 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
458 if (UNTAG_Bool(REGB0
)) {
460 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_allocate_iregister_slots
, 126);
462 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
464 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
465 if (UNTAG_Bool(REGB2
)) {
467 /* ./../lib/standard//kernel.nit:207 */
468 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
469 /* ./analysis//allocate_iregister_slots.nit:126 */
472 if (UNTAG_Bool(REGB2
)) {
473 /* ./analysis//allocate_iregister_slots.nit:127 */
474 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2])!=NIT_NULL
);
475 if (UNTAG_Bool(REGB2
)) {
477 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_allocate_iregister_slots
, 127);
479 REGB2
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]);
480 /* ./analysis//allocate_iregister_slots.nit:128 */
481 REGB1
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
483 /* ./../lib/standard//kernel.nit:215 */
484 REGB0
= TAG_Int(UNTAG_Int(REGB1
)+UNTAG_Int(REGB0
));
485 /* ./analysis//allocate_iregister_slots.nit:128 */
486 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]) = REGB0
;
487 /* ./analysis//allocate_iregister_slots.nit:129 */
488 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2])!=NIT_NULL
);
489 if (UNTAG_Bool(REGB0
)) {
491 nit_abort("Uninitialized attribute %s", "_max_rank", LOCATE_allocate_iregister_slots
, 129);
493 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____max_rank(fra
.me
.REG
[2]);
494 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB0
;
495 /* ./analysis//allocate_iregister_slots.nit:130 */
496 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
497 /* ./analysis//allocate_iregister_slots.nit:131 */
498 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[2]) = REGB2
;
499 /* ./analysis//allocate_iregister_slots.nit:132 */
500 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___deferred_free(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
502 /* ./analysis//allocate_iregister_slots.nit:134 */
503 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_closure_defs(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
505 stack_frame_head
= fra
.me
.prev
;
508 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(val_t p0
, val_t p1
){
509 struct {struct stack_frame_t me
; val_t MORE_REG
[7];} fra
;
514 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
515 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
517 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
518 fra
.me
.has_broke
= 0;
520 fra
.me
.REG
[0] = NIT_NULL
;
521 fra
.me
.REG
[1] = NIT_NULL
;
522 fra
.me
.REG
[2] = NIT_NULL
;
523 fra
.me
.REG
[3] = NIT_NULL
;
524 fra
.me
.REG
[4] = NIT_NULL
;
525 fra
.me
.REG
[5] = NIT_NULL
;
526 fra
.me
.REG
[6] = NIT_NULL
;
527 fra
.me
.REG
[7] = NIT_NULL
;
530 /* ./analysis//allocate_iregister_slots.nit:142 */
531 fra
.me
.REG
[2] = fra
.me
.REG
[0];
532 fra
.me
.REG
[3] = fra
.me
.REG
[1];
533 /* ./analysis//allocate_iregister_slots.nit:144 */
534 fra
.me
.REG
[4] = CALL_icode_base___IRoutine___result(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
535 /* ./analysis//allocate_iregister_slots.nit:145 */
536 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2])!=NIT_NULL
);
537 if (UNTAG_Bool(REGB0
)) {
539 nit_abort("Uninitialized attribute %s", "_pass", LOCATE_allocate_iregister_slots
, 145);
541 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[2]);
543 REGB2
= TAG_Bool(IS_EQUAL_OO(REGB0
,REGB1
));
544 if (UNTAG_Bool(REGB2
)) {
546 /* ./../lib/standard//kernel.nit:207 */
547 REGB1
= TAG_Bool((REGB0
)==(REGB1
));
548 /* ./analysis//allocate_iregister_slots.nit:145 */
551 if (UNTAG_Bool(REGB2
)) {
552 /* ./analysis//allocate_iregister_slots.nit:146 */
553 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2])!=NIT_NULL
);
554 if (UNTAG_Bool(REGB2
)) {
556 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_allocate_iregister_slots
, 146);
558 fra
.me
.REG
[5] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]);
559 /* ./analysis//allocate_iregister_slots.nit:147 */
560 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[3];
561 /* ./analysis//allocate_iregister_slots.nit:148 */
562 fra
.me
.REG
[6] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
563 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[6])(fra
.me
.REG
[6], (&(fra
.me
)), ((fun_t
)OC_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_1
));
564 /* ./analysis//allocate_iregister_slots.nit:152 */
565 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
566 /* ./analysis//allocate_iregister_slots.nit:153 */
567 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
568 if (UNTAG_Bool(REGB2
)) {
570 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
571 if (UNTAG_Bool(REGB1
)) {
572 REGB1
= TAG_Bool(false);
575 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
579 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
580 if (UNTAG_Bool(REGB2
)) {
581 /* ./analysis//allocate_iregister_slots.nit:154 */
582 ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[4]) = fra
.me
.REG
[2];
583 /* ./analysis//allocate_iregister_slots.nit:155 */
584 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
586 /* ./analysis//allocate_iregister_slots.nit:157 */
587 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
589 /* ./analysis//allocate_iregister_slots.nit:159 */
590 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
591 if (UNTAG_Bool(REGB2
)) {
593 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_allocate_iregister_slots
, 159);
595 fra
.me
.REG
[5] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
596 /* ./analysis//allocate_iregister_slots.nit:160 */
597 fra
.me
.REG
[6] = NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init();
598 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
599 /* ./analysis//allocate_iregister_slots.nit:161 */
600 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
601 if (UNTAG_Bool(REGB2
)) {
603 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_allocate_iregister_slots
, 161);
605 fra
.me
.REG
[6] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
606 /* ./analysis//allocate_iregister_slots.nit:162 */
607 REGB2
= TAG_Bool(VAL_ISA(fra
.me
.REG
[3], COLOR_IClosureDef
, ID_IClosureDef
)) /*cast IClosureDef*/;
608 if (UNTAG_Bool(REGB2
)) {
609 /* ./analysis//allocate_iregister_slots.nit:163 */
610 fra
.me
.REG
[7] = NEW_SlotGroup_allocate_iregister_slots___SlotGroup___init();
611 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[7];
613 /* ./analysis//allocate_iregister_slots.nit:165 */
614 fra
.me
.REG
[7] = CALL_icode_base___IRoutine___params(fra
.me
.REG
[3])(fra
.me
.REG
[3]);
615 CALL_abstract_collection___Collection___iterate(fra
.me
.REG
[7])(fra
.me
.REG
[7], (&(fra
.me
)), ((fun_t
)OC_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_2
));
616 /* ./analysis//allocate_iregister_slots.nit:168 */
617 CALL_SUPER_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
618 /* ./analysis//allocate_iregister_slots.nit:169 */
619 REGB2
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
620 if (UNTAG_Bool(REGB2
)) {
622 REGB1
= TAG_Bool(fra
.me
.REG
[4]==NIT_NULL
);
623 if (UNTAG_Bool(REGB1
)) {
624 REGB1
= TAG_Bool(false);
627 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[4])(fra
.me
.REG
[4], NIT_NULL
);
631 REGB2
= TAG_Bool(!UNTAG_Bool(REGB2
));
632 if (UNTAG_Bool(REGB2
)) {
633 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[4]);
635 /* ./analysis//allocate_iregister_slots.nit:170 */
636 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2])!=NIT_NULL
);
637 if (UNTAG_Bool(REGB2
)) {
639 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_allocate_iregister_slots
, 170);
641 fra
.me
.REG
[4] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]);
642 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4])!=NIT_NULL
);
643 if (UNTAG_Bool(REGB2
)) {
645 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_allocate_iregister_slots
, 170);
647 REGB2
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[4]);
648 ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[3]) = REGB2
;
649 /* ./analysis//allocate_iregister_slots.nit:171 */
650 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[5];
651 /* ./analysis//allocate_iregister_slots.nit:172 */
652 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2])!=NIT_NULL
);
653 if (UNTAG_Bool(REGB2
)) {
655 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_allocate_iregister_slots
, 172);
657 fra
.me
.REG
[5] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]);
658 REGB2
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5])!=NIT_NULL
);
659 if (UNTAG_Bool(REGB2
)) {
661 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_allocate_iregister_slots
, 172);
663 REGB2
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[5]);
664 ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[3]) = REGB2
;
665 /* ./analysis//allocate_iregister_slots.nit:173 */
666 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[6];
668 stack_frame_head
= fra
.me
.prev
;
671 void OC_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_1(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
672 struct {struct stack_frame_t me
;} fra
;
675 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
676 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
678 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
679 fra
.me
.has_broke
= 0;
681 fra
.me
.REG
[0] = NIT_NULL
;
682 fra
.me
.closure_ctx
= closctx_param
;
683 fra
.me
.closure_funs
= CREG
;
686 /* ./analysis//allocate_iregister_slots.nit:149 */
687 ATTR_allocate_iregister_slots___IRegister____first(fra
.me
.REG
[0]) = closctx
->REG
[2];
688 /* ./analysis//allocate_iregister_slots.nit:150 */
689 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___mark_locality(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
690 stack_frame_head
= fra
.me
.prev
;
693 void OC_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine_2(struct stack_frame_t
*closctx
, val_t p0
, struct stack_frame_t
*closctx_param
, fun_t clos_fun0
){
694 struct {struct stack_frame_t me
;} fra
;
697 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
698 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
700 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___visit_iroutine
;
701 fra
.me
.has_broke
= 0;
703 fra
.me
.REG
[0] = NIT_NULL
;
704 fra
.me
.closure_ctx
= closctx_param
;
705 fra
.me
.closure_funs
= CREG
;
708 /* ./analysis//allocate_iregister_slots.nit:166 */
709 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(closctx
->REG
[2])(closctx
->REG
[2], fra
.me
.REG
[0]);
710 stack_frame_head
= fra
.me
.prev
;
713 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___register(val_t p0
, val_t p1
){
714 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
718 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
719 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
721 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___register
;
722 fra
.me
.has_broke
= 0;
724 fra
.me
.REG
[0] = NIT_NULL
;
725 fra
.me
.REG
[1] = NIT_NULL
;
726 fra
.me
.REG
[2] = NIT_NULL
;
729 /* ./analysis//allocate_iregister_slots.nit:190 */
730 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
731 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
732 if (UNTAG_Bool(REGB0
)) {
734 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
735 if (UNTAG_Bool(REGB1
)) {
736 REGB1
= TAG_Bool(false);
739 REGB1
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
743 if (UNTAG_Bool(REGB0
)) {
746 /* ./analysis//allocate_iregister_slots.nit:191 */
747 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
748 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
749 if (UNTAG_Bool(REGB0
)) {
751 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
752 if (UNTAG_Bool(REGB1
)) {
753 REGB1
= TAG_Bool(false);
756 /* ./../lib/standard//kernel.nit:207 */
757 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
758 /* ./analysis//allocate_iregister_slots.nit:191 */
762 if (UNTAG_Bool(REGB0
)) {
764 nit_abort("Assert failed", NULL
, LOCATE_allocate_iregister_slots
, 191);
766 /* ./analysis//allocate_iregister_slots.nit:192 */
767 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
768 if (UNTAG_Bool(REGB0
)) {
770 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_allocate_iregister_slots
, 192);
772 REGB0
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
773 ATTR_allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]) = REGB0
;
774 /* ./analysis//allocate_iregister_slots.nit:193 */
775 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
776 if (UNTAG_Bool(REGB0
)) {
778 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_allocate_iregister_slots
, 193);
780 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
781 REGB0
= TAG_Bool(!UNTAG_Bool(REGB0
));
782 if (UNTAG_Bool(REGB0
)) {
783 /* ./analysis//allocate_iregister_slots.nit:194 */
784 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
785 if (UNTAG_Bool(REGB0
)) {
787 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_allocate_iregister_slots
, 194);
789 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
790 CALL_allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
792 /* ./analysis//allocate_iregister_slots.nit:195 */
793 fra
.me
.REG
[2] = CALL_icode_base___IRegister___stype(fra
.me
.REG
[1])(fra
.me
.REG
[1]);
794 REGB0
= CALL_primitive_info___MMType___is_tagged(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
795 if (UNTAG_Bool(REGB0
)) {
796 /* ./analysis//allocate_iregister_slots.nit:196 */
797 REGB0
= TAG_Bool(true);
798 ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]) = REGB0
;
799 /* ./analysis//allocate_iregister_slots.nit:197 */
800 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
801 if (UNTAG_Bool(REGB0
)) {
803 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_allocate_iregister_slots
, 197);
805 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
806 CALL_allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
808 /* ./analysis//allocate_iregister_slots.nit:199 */
809 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
810 if (UNTAG_Bool(REGB0
)) {
812 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_allocate_iregister_slots
, 199);
814 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
815 CALL_allocate_iregister_slots___SlotGroup___register(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
819 stack_frame_head
= fra
.me
.prev
;
822 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___free(val_t p0
, val_t p1
){
823 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
827 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
828 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
830 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___free
;
831 fra
.me
.has_broke
= 0;
833 fra
.me
.REG
[0] = NIT_NULL
;
834 fra
.me
.REG
[1] = NIT_NULL
;
835 fra
.me
.REG
[2] = NIT_NULL
;
838 /* ./analysis//allocate_iregister_slots.nit:207 */
839 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
840 /* ./analysis//allocate_iregister_slots.nit:208 */
841 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
842 if (UNTAG_Bool(REGB0
)) {
844 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
845 if (UNTAG_Bool(REGB1
)) {
846 REGB1
= TAG_Bool(false);
849 /* ./../lib/standard//kernel.nit:207 */
850 REGB1
= TAG_Bool((fra
.me
.REG
[2])==(NIT_NULL
));
851 /* ./analysis//allocate_iregister_slots.nit:208 */
855 if (UNTAG_Bool(REGB0
)) {
858 /* ./analysis//allocate_iregister_slots.nit:209 */
859 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1])!=NIT_NULL
);
860 if (UNTAG_Bool(REGB0
)) {
862 nit_abort("Uninitialized attribute %s", "_born_rank", LOCATE_allocate_iregister_slots
, 209);
864 REGB0
= ATTR_allocate_iregister_slots___IRegister____born_rank(fra
.me
.REG
[1]);
865 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0])!=NIT_NULL
);
866 if (UNTAG_Bool(REGB1
)) {
868 nit_abort("Uninitialized attribute %s", "_current_rank", LOCATE_allocate_iregister_slots
, 209);
870 REGB1
= ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_rank(fra
.me
.REG
[0]);
871 /* ./../lib/standard//kernel.nit:212 */
872 REGB1
= TAG_Bool(UNTAG_Int(REGB0
)<UNTAG_Int(REGB1
));
873 /* ./analysis//allocate_iregister_slots.nit:209 */
874 if (UNTAG_Bool(REGB1
)) {
875 /* ./analysis//allocate_iregister_slots.nit:210 */
876 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
877 if (UNTAG_Bool(REGB1
)) {
879 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_allocate_iregister_slots
, 210);
881 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
882 CALL_abstract_collection___SimpleCollection___add(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
884 /* ./analysis//allocate_iregister_slots.nit:211 */
885 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]);
886 REGB1
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
887 if (UNTAG_Bool(REGB1
)) {
889 REGB0
= TAG_Bool(fra
.me
.REG
[2]==NIT_NULL
);
890 if (UNTAG_Bool(REGB0
)) {
891 REGB0
= TAG_Bool(false);
894 REGB0
= CALL_kernel___Object_____eqeq(fra
.me
.REG
[2])(fra
.me
.REG
[2], NIT_NULL
);
898 REGB1
= TAG_Bool(!UNTAG_Bool(REGB1
));
899 if (UNTAG_Bool(REGB1
)) {
900 /* ./analysis//allocate_iregister_slots.nit:212 */
901 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1])!=NIT_NULL
);
902 if (UNTAG_Bool(REGB1
)) {
904 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_allocate_iregister_slots
, 212);
906 REGB1
= ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[1]);
907 if (UNTAG_Bool(REGB1
)) {
908 /* ./analysis//allocate_iregister_slots.nit:213 */
909 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
910 if (UNTAG_Bool(REGB1
)) {
912 nit_abort("Uninitialized attribute %s", "_tag_slots", LOCATE_allocate_iregister_slots
, 213);
914 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____tag_slots(fra
.me
.REG
[0]);
915 CALL_allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
917 /* ./analysis//allocate_iregister_slots.nit:214 */
918 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1])!=NIT_NULL
);
919 if (UNTAG_Bool(REGB1
)) {
921 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_allocate_iregister_slots
, 214);
923 REGB1
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[1]);
924 if (UNTAG_Bool(REGB1
)) {
925 /* ./analysis//allocate_iregister_slots.nit:215 */
926 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0])!=NIT_NULL
);
927 if (UNTAG_Bool(REGB1
)) {
929 nit_abort("Uninitialized attribute %s", "_std_slots", LOCATE_allocate_iregister_slots
, 215);
931 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[0]);
932 CALL_allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[2])(fra
.me
.REG
[2], fra
.me
.REG
[1]);
934 /* ./analysis//allocate_iregister_slots.nit:217 */
935 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0])!=NIT_NULL
);
936 if (UNTAG_Bool(REGB1
)) {
938 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_allocate_iregister_slots
, 217);
940 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[0]);
941 CALL_allocate_iregister_slots___SlotGroup___free(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
944 /* ./analysis//allocate_iregister_slots.nit:219 */
945 ATTR_allocate_iregister_slots___IRegister____last(fra
.me
.REG
[1]) = NIT_NULL
;
949 stack_frame_head
= fra
.me
.prev
;
952 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(val_t p0
){
953 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
956 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
957 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
959 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation
;
960 fra
.me
.has_broke
= 0;
962 fra
.me
.REG
[0] = NIT_NULL
;
963 fra
.me
.REG
[1] = NIT_NULL
;
965 /* ./analysis//allocate_iregister_slots.nit:226 */
966 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0])!=NIT_NULL
);
967 if (UNTAG_Bool(REGB0
)) {
969 nit_abort("Uninitialized attribute %s", "_current_ir", LOCATE_allocate_iregister_slots
, 226);
971 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[0]);
972 /* ./analysis//allocate_iregister_slots.nit:227 */
973 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
974 /* ./analysis//allocate_iregister_slots.nit:228 */
976 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____pass(fra
.me
.REG
[0]) = REGB0
;
977 /* ./analysis//allocate_iregister_slots.nit:229 */
978 CALL_icode_tools___ICodeVisitor___visit_iroutine(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
979 /* ./analysis//allocate_iregister_slots.nit:230 */
980 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0])!=NIT_NULL
);
981 if (UNTAG_Bool(REGB0
)) {
983 nit_abort("Uninitialized attribute %s", "_deferred_list", LOCATE_allocate_iregister_slots
, 230);
985 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____deferred_list(fra
.me
.REG
[0]);
986 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
987 if (UNTAG_Bool(REGB0
)) {
989 nit_abort("Assert failed", NULL
, LOCATE_allocate_iregister_slots
, 230);
991 stack_frame_head
= fra
.me
.prev
;
994 void allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(val_t p0
, val_t p1
, int* init_table
){
995 int itpos0
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_IRegisterSlotAllocationVisitor
].i
;
996 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
999 if (init_table
[itpos0
]) return;
1000 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1001 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1003 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init
;
1004 fra
.me
.has_broke
= 0;
1005 fra
.me
.REG_size
= 3;
1006 fra
.me
.REG
[0] = NIT_NULL
;
1007 fra
.me
.REG
[1] = NIT_NULL
;
1008 fra
.me
.REG
[2] = NIT_NULL
;
1011 /* ./analysis//allocate_iregister_slots.nit:233 */
1012 fra
.me
.REG
[2] = fra
.me
.REG
[0];
1013 CALL_icode_tools___ICodeVisitor___init(fra
.me
.REG
[0])(fra
.me
.REG
[0], init_table
);
1014 /* ./analysis//allocate_iregister_slots.nit:235 */
1015 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____current_ir(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1016 /* ./analysis//allocate_iregister_slots.nit:236 */
1017 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2])!=NIT_NULL
);
1018 if (UNTAG_Bool(REGB0
)) {
1020 nit_abort("Uninitialized attribute %s", "_global_slots", LOCATE_allocate_iregister_slots
, 236);
1022 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____global_slots(fra
.me
.REG
[2]);
1023 ATTR_allocate_iregister_slots___IRegisterSlotAllocationVisitor____std_slots(fra
.me
.REG
[2]) = fra
.me
.REG
[1];
1024 stack_frame_head
= fra
.me
.prev
;
1025 init_table
[itpos0
] = 1;
1028 void allocate_iregister_slots___SlotGroup___register(val_t p0
, val_t p1
){
1029 struct {struct stack_frame_t me
; val_t MORE_REG
[2];} fra
;
1033 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1034 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1036 fra
.me
.meth
= LOCATE_allocate_iregister_slots___SlotGroup___register
;
1037 fra
.me
.has_broke
= 0;
1038 fra
.me
.REG_size
= 3;
1039 fra
.me
.REG
[0] = NIT_NULL
;
1040 fra
.me
.REG
[1] = NIT_NULL
;
1041 fra
.me
.REG
[2] = NIT_NULL
;
1044 /* ./analysis//allocate_iregister_slots.nit:251 */
1045 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1046 if (UNTAG_Bool(REGB0
)) {
1048 nit_abort("Uninitialized attribute %s", "_free", LOCATE_allocate_iregister_slots
, 251);
1050 fra
.me
.REG
[2] = ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1051 REGB0
= CALL_abstract_collection___Collection___is_empty(fra
.me
.REG
[2])(fra
.me
.REG
[2]);
1052 if (UNTAG_Bool(REGB0
)) {
1053 /* ./analysis//allocate_iregister_slots.nit:252 */
1054 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0])!=NIT_NULL
);
1055 if (UNTAG_Bool(REGB0
)) {
1057 nit_abort("Uninitialized attribute %s", "_next_index", LOCATE_allocate_iregister_slots
, 252);
1059 REGB0
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1060 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = REGB0
;
1061 /* ./analysis//allocate_iregister_slots.nit:253 */
1062 REGB0
= ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]);
1064 /* ./../lib/standard//kernel.nit:215 */
1065 REGB1
= TAG_Int(UNTAG_Int(REGB0
)+UNTAG_Int(REGB1
));
1066 /* ./analysis//allocate_iregister_slots.nit:253 */
1067 ATTR_allocate_iregister_slots___SlotGroup____next_index(fra
.me
.REG
[0]) = REGB1
;
1069 /* ./analysis//allocate_iregister_slots.nit:255 */
1070 REGB1
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1071 if (UNTAG_Bool(REGB1
)) {
1073 nit_abort("Uninitialized attribute %s", "_free", LOCATE_allocate_iregister_slots
, 255);
1075 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1076 fra
.me
.REG
[0] = CALL_abstract_collection___Sequence___pop(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1077 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]) = fra
.me
.REG
[0];
1079 stack_frame_head
= fra
.me
.prev
;
1082 void allocate_iregister_slots___SlotGroup___free(val_t p0
, val_t p1
){
1083 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1086 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1087 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1089 fra
.me
.meth
= LOCATE_allocate_iregister_slots___SlotGroup___free
;
1090 fra
.me
.has_broke
= 0;
1091 fra
.me
.REG_size
= 2;
1092 fra
.me
.REG
[0] = NIT_NULL
;
1093 fra
.me
.REG
[1] = NIT_NULL
;
1096 /* ./analysis//allocate_iregister_slots.nit:262 */
1097 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0])!=NIT_NULL
);
1098 if (UNTAG_Bool(REGB0
)) {
1100 nit_abort("Uninitialized attribute %s", "_free", LOCATE_allocate_iregister_slots
, 262);
1102 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___SlotGroup____free(fra
.me
.REG
[0]);
1103 fra
.me
.REG
[1] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[1]);
1104 REGB0
= TAG_Bool(fra
.me
.REG
[1]!=NIT_NULL
);
1105 if (UNTAG_Bool(REGB0
)) {
1107 nit_abort("Cast failed", NULL
, LOCATE_allocate_iregister_slots
, 262);
1109 CALL_abstract_collection___Sequence___push(fra
.me
.REG
[0])(fra
.me
.REG
[0], fra
.me
.REG
[1]);
1110 stack_frame_head
= fra
.me
.prev
;
1113 void allocate_iregister_slots___SlotGroup___init(val_t p0
, int* init_table
){
1114 int itpos1
= VAL2OBJ(p0
)->vft
[INIT_TABLE_POS_SlotGroup
].i
;
1115 struct {struct stack_frame_t me
;} fra
;
1117 if (init_table
[itpos1
]) return;
1118 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1119 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1121 fra
.me
.meth
= LOCATE_allocate_iregister_slots___SlotGroup___init
;
1122 fra
.me
.has_broke
= 0;
1123 fra
.me
.REG_size
= 0;
1124 stack_frame_head
= fra
.me
.prev
;
1125 init_table
[itpos1
] = 1;
1128 val_t
allocate_iregister_slots___IRoutine___std_slots_nb(val_t p0
){
1129 struct {struct stack_frame_t me
;} fra
;
1132 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1133 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1135 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRoutine___std_slots_nb
;
1136 fra
.me
.has_broke
= 0;
1137 fra
.me
.REG_size
= 1;
1138 fra
.me
.REG
[0] = NIT_NULL
;
1140 /* ./analysis//allocate_iregister_slots.nit:267 */
1141 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1142 if (UNTAG_Bool(REGB0
)) {
1144 nit_abort("Uninitialized attribute %s", "_std_slots_nb", LOCATE_allocate_iregister_slots
, 267);
1146 REGB0
= ATTR_allocate_iregister_slots___IRoutine____std_slots_nb(fra
.me
.REG
[0]);
1147 stack_frame_head
= fra
.me
.prev
;
1150 val_t
allocate_iregister_slots___IRoutine___tag_slots_nb(val_t p0
){
1151 struct {struct stack_frame_t me
;} fra
;
1154 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1155 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1157 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRoutine___tag_slots_nb
;
1158 fra
.me
.has_broke
= 0;
1159 fra
.me
.REG_size
= 1;
1160 fra
.me
.REG
[0] = NIT_NULL
;
1162 /* ./analysis//allocate_iregister_slots.nit:270 */
1163 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0])!=NIT_NULL
);
1164 if (UNTAG_Bool(REGB0
)) {
1166 nit_abort("Uninitialized attribute %s", "_tag_slots_nb", LOCATE_allocate_iregister_slots
, 270);
1168 REGB0
= ATTR_allocate_iregister_slots___IRoutine____tag_slots_nb(fra
.me
.REG
[0]);
1169 stack_frame_head
= fra
.me
.prev
;
1172 void allocate_iregister_slots___IRoutine___allocate_iregister_slots(val_t p0
){
1173 struct {struct stack_frame_t me
;} fra
;
1175 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1176 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1178 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRoutine___allocate_iregister_slots
;
1179 fra
.me
.has_broke
= 0;
1180 fra
.me
.REG_size
= 1;
1181 fra
.me
.REG
[0] = NIT_NULL
;
1183 /* ./analysis//allocate_iregister_slots.nit:275 */
1184 fra
.me
.REG
[0] = NEW_IRegisterSlotAllocationVisitor_allocate_iregister_slots___IRegisterSlotAllocationVisitor___init(fra
.me
.REG
[0]);
1185 /* ./analysis//allocate_iregister_slots.nit:276 */
1186 CALL_allocate_iregister_slots___IRegisterSlotAllocationVisitor___iroutine_slot_allocation(fra
.me
.REG
[0])(fra
.me
.REG
[0]);
1187 stack_frame_head
= fra
.me
.prev
;
1190 val_t
allocate_iregister_slots___IRegister___slot_index(val_t p0
){
1191 struct {struct stack_frame_t me
;} fra
;
1193 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1194 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1196 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___slot_index
;
1197 fra
.me
.has_broke
= 0;
1198 fra
.me
.REG_size
= 1;
1199 fra
.me
.REG
[0] = NIT_NULL
;
1201 /* ./analysis//allocate_iregister_slots.nit:281 */
1202 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]);
1203 stack_frame_head
= fra
.me
.prev
;
1204 return fra
.me
.REG
[0];
1206 void allocate_iregister_slots___IRegister___slot_index__eq(val_t p0
, val_t p1
){
1207 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1209 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1210 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1212 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___slot_index__eq
;
1213 fra
.me
.has_broke
= 0;
1214 fra
.me
.REG_size
= 2;
1215 fra
.me
.REG
[0] = NIT_NULL
;
1216 fra
.me
.REG
[1] = NIT_NULL
;
1219 /* ./analysis//allocate_iregister_slots.nit:281 */
1220 ATTR_allocate_iregister_slots___IRegister____slot_index(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1221 stack_frame_head
= fra
.me
.prev
;
1224 val_t
allocate_iregister_slots___IRegister___is_local(val_t p0
){
1225 struct {struct stack_frame_t me
;} fra
;
1228 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1229 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1231 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___is_local
;
1232 fra
.me
.has_broke
= 0;
1233 fra
.me
.REG_size
= 1;
1234 fra
.me
.REG
[0] = NIT_NULL
;
1236 /* ./analysis//allocate_iregister_slots.nit:286 */
1237 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0])!=NIT_NULL
);
1238 if (UNTAG_Bool(REGB0
)) {
1240 nit_abort("Uninitialized attribute %s", "_is_local", LOCATE_allocate_iregister_slots
, 286);
1242 REGB0
= ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]);
1243 stack_frame_head
= fra
.me
.prev
;
1246 void allocate_iregister_slots___IRegister___is_local__eq(val_t p0
, val_t p1
){
1247 struct {struct stack_frame_t me
;} fra
;
1250 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1251 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1253 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___is_local__eq
;
1254 fra
.me
.has_broke
= 0;
1255 fra
.me
.REG_size
= 1;
1256 fra
.me
.REG
[0] = NIT_NULL
;
1259 /* ./analysis//allocate_iregister_slots.nit:286 */
1260 ATTR_allocate_iregister_slots___IRegister____is_local(fra
.me
.REG
[0]) = REGB0
;
1261 stack_frame_head
= fra
.me
.prev
;
1264 val_t
allocate_iregister_slots___IRegister___local_iroutine(val_t p0
){
1265 struct {struct stack_frame_t me
;} fra
;
1267 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1268 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1270 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___local_iroutine
;
1271 fra
.me
.has_broke
= 0;
1272 fra
.me
.REG_size
= 1;
1273 fra
.me
.REG
[0] = NIT_NULL
;
1275 /* ./analysis//allocate_iregister_slots.nit:289 */
1276 fra
.me
.REG
[0] = ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]);
1277 stack_frame_head
= fra
.me
.prev
;
1278 return fra
.me
.REG
[0];
1280 void allocate_iregister_slots___IRegister___local_iroutine__eq(val_t p0
, val_t p1
){
1281 struct {struct stack_frame_t me
; val_t MORE_REG
[1];} fra
;
1283 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1284 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1286 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___local_iroutine__eq
;
1287 fra
.me
.has_broke
= 0;
1288 fra
.me
.REG_size
= 2;
1289 fra
.me
.REG
[0] = NIT_NULL
;
1290 fra
.me
.REG
[1] = NIT_NULL
;
1293 /* ./analysis//allocate_iregister_slots.nit:289 */
1294 ATTR_allocate_iregister_slots___IRegister____local_iroutine(fra
.me
.REG
[0]) = fra
.me
.REG
[1];
1295 stack_frame_head
= fra
.me
.prev
;
1298 val_t
allocate_iregister_slots___IRegister___in_tag_slots(val_t p0
){
1299 struct {struct stack_frame_t me
;} fra
;
1302 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1303 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1305 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___in_tag_slots
;
1306 fra
.me
.has_broke
= 0;
1307 fra
.me
.REG_size
= 1;
1308 fra
.me
.REG
[0] = NIT_NULL
;
1310 /* ./analysis//allocate_iregister_slots.nit:292 */
1311 REGB0
= TAG_Bool(ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0])!=NIT_NULL
);
1312 if (UNTAG_Bool(REGB0
)) {
1314 nit_abort("Uninitialized attribute %s", "_in_tag_slots", LOCATE_allocate_iregister_slots
, 292);
1316 REGB0
= ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]);
1317 stack_frame_head
= fra
.me
.prev
;
1320 void allocate_iregister_slots___IRegister___in_tag_slots__eq(val_t p0
, val_t p1
){
1321 struct {struct stack_frame_t me
;} fra
;
1324 fra
.me
.prev
= stack_frame_head
; stack_frame_head
= &fra
.me
;
1325 fra
.me
.file
= LOCATE_allocate_iregister_slots
;
1327 fra
.me
.meth
= LOCATE_allocate_iregister_slots___IRegister___in_tag_slots__eq
;
1328 fra
.me
.has_broke
= 0;
1329 fra
.me
.REG_size
= 1;
1330 fra
.me
.REG
[0] = NIT_NULL
;
1333 /* ./analysis//allocate_iregister_slots.nit:292 */
1334 ATTR_allocate_iregister_slots___IRegister____in_tag_slots(fra
.me
.REG
[0]) = REGB0
;
1335 stack_frame_head
= fra
.me
.prev
;