val_t ffi___c___ExternCode___is_c_header(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; val_t REGB0; val_t REGB1; val_t tmp; static val_t once_value_1; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_ffi___c; fra.me.line = 30; fra.me.meth = LOCATE_ffi___c___ExternCode___is_c_header; fra.me.has_broke = 0; fra.me.REG_size = 2; fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[0] = p0; /* ffi/c.nit:30 */ fra.me.REG[0] = CALL_ffi___ffi_base___ExternCode___language_lowered(fra.me.REG[0])(fra.me.REG[0]); if (!once_value_1) { fra.me.REG[1] = BOX_NativeString("c header"); REGB0 = TAG_Int(8); fra.me.REG[1] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[1])(fra.me.REG[1], REGB0); once_value_1 = fra.me.REG[1]; register_static_object(&once_value_1); } else fra.me.REG[1] = once_value_1; fra.me.REG[1] = fra.me.REG[1]; REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[1],fra.me.REG[0])); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); REGB0 = REGB1; } } goto label2; label2: while(0); stack_frame_head = fra.me.prev; return REGB0; }
val_t ffi___c___ExternCode___is_c_body(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; val_t REGB1; val_t REGB2; val_t tmp; static val_t once_value_1; /* Once value */ static val_t once_value_2; /* Once value */ fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_ffi___c; fra.me.line = 27; fra.me.meth = LOCATE_ffi___c___ExternCode___is_c_body; fra.me.has_broke = 0; fra.me.REG_size = 3; fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; fra.me.REG[0] = p0; /* ffi/c.nit:27 */ fra.me.REG[1] = CALL_syntax___extern_inline___ExternCode___language(fra.me.REG[0])(fra.me.REG[0]); REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); REGB0 = REGB1; } } if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(1); } else { /* ffi/c.nit:28 */ fra.me.REG[1] = CALL_ffi___ffi_base___ExternCode___language_lowered(fra.me.REG[0])(fra.me.REG[0]); if (!once_value_1) { fra.me.REG[2] = BOX_NativeString("c"); REGB1 = TAG_Int(1); fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB1); once_value_1 = fra.me.REG[2]; register_static_object(&once_value_1); } else fra.me.REG[2] = once_value_1; fra.me.REG[2] = fra.me.REG[2]; REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[2],fra.me.REG[1])); if (UNTAG_Bool(REGB1)) { } else { REGB2 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB2)) { REGB2 = TAG_Bool(0); REGB1 = REGB2; } else { REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); REGB1 = REGB2; } } /* ffi/c.nit:27 */ REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(1); } else { /* ffi/c.nit:28 */ fra.me.REG[0] = CALL_ffi___ffi_base___ExternCode___language_lowered(fra.me.REG[0])(fra.me.REG[0]); if (!once_value_2) { fra.me.REG[2] = BOX_NativeString("c body"); REGB1 = TAG_Int(6); fra.me.REG[2] = CALL_standard___string___NativeString___to_s_with_length(fra.me.REG[2])(fra.me.REG[2], REGB1); once_value_2 = fra.me.REG[2]; register_static_object(&once_value_2); } else fra.me.REG[2] = once_value_2; fra.me.REG[2] = fra.me.REG[2]; REGB1 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[2],fra.me.REG[0])); if (UNTAG_Bool(REGB1)) { } else { REGB2 = TAG_Bool(fra.me.REG[0]==NIT_NULL); if (UNTAG_Bool(REGB2)) { REGB2 = TAG_Bool(0); REGB1 = REGB2; } else { REGB2 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); REGB1 = REGB2; } } /* ffi/c.nit:27 */ REGB0 = REGB1; } goto label3; label3: while(0); stack_frame_head = fra.me.prev; return REGB0; }
void analysis___inline_methods___InlineMethodVisitor___visit_icode(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[9];} fra; val_t REGB0; val_t REGB1; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_analysis___inline_methods; fra.me.line = 27; fra.me.meth = LOCATE_analysis___inline_methods___InlineMethodVisitor___visit_icode; fra.me.has_broke = 0; fra.me.REG_size = 10; fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[1] = NIT_NULL; fra.me.REG[2] = NIT_NULL; fra.me.REG[3] = NIT_NULL; fra.me.REG[4] = NIT_NULL; fra.me.REG[5] = NIT_NULL; fra.me.REG[6] = NIT_NULL; fra.me.REG[7] = NIT_NULL; fra.me.REG[8] = NIT_NULL; fra.me.REG[9] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; /* analysis/inline_methods.nit:27 */ fra.me.REG[2] = fra.me.REG[0]; fra.me.REG[3] = fra.me.REG[1]; /* analysis/inline_methods.nit:29 */ REGB0 = TAG_Bool((fra.me.REG[3]!=NIT_NULL) && VAL_ISA(fra.me.REG[3], COLOR_icode___icode_base___ICall, ID_icode___icode_base___ICall)) /*cast ICall*/; if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 29); } REGB0 = CALL_icode___icode_base___IAbsCall___is_explicit_from_extern(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); } else { REGB1 = TAG_Bool(false); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { /* analysis/inline_methods.nit:30 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 30); } fra.me.REG[4] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]); /* analysis/inline_methods.nit:31 */ fra.me.REG[4] = CALL_icode___icode_base___MMMethod___iroutine(fra.me.REG[4])(fra.me.REG[4]); /* analysis/inline_methods.nit:32 */ REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[4]==NIT_NULL); if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(false); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[4])(fra.me.REG[4], NIT_NULL); REGB0 = REGB1; } } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 32); } REGB0 = CALL_analysis___inline_methods___ICall___is_inlinable(fra.me.REG[3])(fra.me.REG[3]); } else { REGB1 = TAG_Bool(false); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { /* analysis/inline_methods.nit:33 */ REGB0 = TAG_Bool(ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[2])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { nit_abort("Uninitialized attribute %s", "_icb", LOCATE_analysis___inline_methods, 33); } fra.me.REG[5] = ATTR_analysis___inline_methods___InlineMethodVisitor____icb(fra.me.REG[2]); /* analysis/inline_methods.nit:34 */ fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[5])(fra.me.REG[5]); REGB0 = TAG_Bool(IS_EQUAL_ON(fra.me.REG[6],fra.me.REG[4])); if (UNTAG_Bool(REGB0)) { } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[4]); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { /* analysis/inline_methods.nit:37 */ fra.me.REG[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]); REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 37); } CALL_standard___collection___list___ListIterator___delete(fra.me.REG[6])(fra.me.REG[6]); /* analysis/inline_methods.nit:38 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 38); } fra.me.REG[6] = CALL_icode___icode_base___IAbsCall___property(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 38); } fra.me.REG[7] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[7] = NEW_IStaticCall_icode___icode_base___IStaticCall___init(fra.me.REG[6], fra.me.REG[7]); /* analysis/inline_methods.nit:39 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 39); } fra.me.REG[6] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]); CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); /* analysis/inline_methods.nit:40 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 40); } fra.me.REG[6] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]); CALL_icode___icode_base___ICode___result__eq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); /* analysis/inline_methods.nit:41 */ fra.me.REG[6] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]); REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 41); } CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[7]); /* analysis/inline_methods.nit:42 */ fra.me.REG[7] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]); REGB0 = TAG_Bool(fra.me.REG[7]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 42); } CALL_standard___collection___list___ListIterator___delete(fra.me.REG[7])(fra.me.REG[7]); } else { /* analysis/inline_methods.nit:44 */ fra.me.REG[7] = NEW_ISeq_icode___icode_base___ISeq___init(); /* analysis/inline_methods.nit:45 */ fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[5])(fra.me.REG[5]); /* analysis/inline_methods.nit:46 */ CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[7]); /* analysis/inline_methods.nit:47 */ fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]); REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 47); } CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[7]); /* analysis/inline_methods.nit:48 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 48); } fra.me.REG[8] = CALL_icode___icode_base___ICodeN___exprs(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 48); } fra.me.REG[9] = CALL_icode___icode_base___ICodeN___closure_defs(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[9] = CALL_icode___icode_tools___ICodeBuilder___inline_routine(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4], fra.me.REG[8], fra.me.REG[9]); /* analysis/inline_methods.nit:49 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 49); } fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[3])(fra.me.REG[3]); /* analysis/inline_methods.nit:50 */ REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(false); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); REGB0 = REGB1; } } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { /* analysis/inline_methods.nit:51 */ REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[9]==NIT_NULL); if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(false); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[9])(fra.me.REG[9], NIT_NULL); REGB0 = REGB1; } } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { } else { nit_abort("Assert failed", NULL, LOCATE_analysis___inline_methods, 51); } /* analysis/inline_methods.nit:52 */ fra.me.REG[8] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]); fra.me.REG[9] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[3], fra.me.REG[9]); REGB0 = TAG_Bool(fra.me.REG[8]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 52); } CALL_standard___collection___list___ListIterator___insert_before(fra.me.REG[8])(fra.me.REG[8], fra.me.REG[9]); } /* analysis/inline_methods.nit:54 */ fra.me.REG[9] = CALL_icode___icode_tools___ICodeVisitor___current_icode(fra.me.REG[2])(fra.me.REG[2]); REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_analysis___inline_methods, 54); } CALL_standard___collection___list___ListIterator___delete(fra.me.REG[9])(fra.me.REG[9]); /* analysis/inline_methods.nit:55 */ CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[6]); /* analysis/inline_methods.nit:56 */ CALL_icode___icode_tools___ICodeVisitor___visit_icode(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[7]); } } } /* analysis/inline_methods.nit:60 */ CALL_SUPER_analysis___inline_methods___InlineMethodVisitor___visit_icode(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); stack_frame_head = fra.me.prev; return; }