X-Git-Url: http://nitlanguage.org diff --git a/c_src/icode___icode_builder._sep.c b/c_src/icode___icode_builder._sep.c index 5bb85c9..f01256c 100644 --- a/c_src/icode___icode_builder._sep.c +++ b/c_src/icode___icode_builder._sep.c @@ -1,5 +1,6 @@ /* This C file is generated by NIT to compile module icode___icode_builder. */ #include "icode___icode_builder._sep.h" +static const char LOCATE_icode___icode_builder___ICodeBuilder___stmt[] = "icode_builder::ICodeBuilder::stmt"; void icode___icode_builder___ICodeBuilder___stmt(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; @@ -10,15 +11,16 @@ void icode___icode_builder___ICodeBuilder___stmt(val_t p0, val_t p1){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___stmt; 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; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:28 */ + /* icode/icode_builder.nit:28 */ fra.me.REG[2] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]); CALL_icode___icode_base___ICode___location__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./icode//icode_builder.nit:29 */ + /* icode/icode_builder.nit:29 */ REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { @@ -30,6 +32,7 @@ void icode___icode_builder___ICodeBuilder___stmt(val_t p0, val_t p1){ stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___expr[] = "icode_builder::ICodeBuilder::expr"; val_t icode___icode_builder___ICodeBuilder___expr(val_t p0, val_t p1, val_t p2){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; @@ -41,6 +44,7 @@ val_t icode___icode_builder___ICodeBuilder___expr(val_t p0, val_t p1, val_t p2){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___expr; fra.me.has_broke = 0; fra.me.REG_size = 4; + 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; @@ -48,16 +52,16 @@ val_t icode___icode_builder___ICodeBuilder___expr(val_t p0, val_t p1, val_t p2){ fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - /* ./icode//icode_builder.nit:35 */ + /* icode/icode_builder.nit:35 */ CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:36 */ + /* icode/icode_builder.nit:36 */ fra.me.REG[3] = CALL_icode___icode_base___ICode___result(fra.me.REG[1])(fra.me.REG[1]); 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); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], NIT_NULL); @@ -68,16 +72,17 @@ val_t icode___icode_builder___ICodeBuilder___expr(val_t p0, val_t p1, val_t p2){ } else { nit_abort("Assert failed", NULL, LOCATE_icode___icode_builder, 36); } - /* ./icode//icode_builder.nit:37 */ + /* icode/icode_builder.nit:37 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); - /* ./icode//icode_builder.nit:38 */ + /* icode/icode_builder.nit:38 */ CALL_icode___icode_base___ICode___result__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./icode//icode_builder.nit:39 */ + /* icode/icode_builder.nit:39 */ goto label1; label1: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[2]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_assignment[] = "icode_builder::ICodeBuilder::add_assignment"; void icode___icode_builder___ICodeBuilder___add_assignment(val_t p0, val_t p1, val_t p2){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t tmp; @@ -87,18 +92,20 @@ void icode___icode_builder___ICodeBuilder___add_assignment(val_t p0, val_t p1, v fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_assignment; 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; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - /* ./icode//icode_builder.nit:45 */ + /* icode/icode_builder.nit:45 */ fra.me.REG[2] = NEW_IMove_icode___icode_base___IMove___init(fra.me.REG[1], fra.me.REG[2]); CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_null_reciever_check[] = "icode_builder::ICodeBuilder::add_null_reciever_check"; void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; @@ -110,29 +117,30 @@ void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0, va fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_null_reciever_check; fra.me.has_broke = 0; fra.me.REG_size = 4; + 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[0] = p0; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:51 */ + /* icode/icode_builder.nit:51 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[0])(fra.me.REG[0]); - /* ./icode//icode_builder.nit:52 */ + /* icode/icode_builder.nit:52 */ fra.me.REG[2] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[1], fra.me.REG[2]); fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[1] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]); - /* ./icode//icode_builder.nit:53 */ + /* icode/icode_builder.nit:53 */ fra.me.REG[1] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[1]); - /* ./icode//icode_builder.nit:54 */ + /* icode/icode_builder.nit:54 */ CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:55 */ + /* icode/icode_builder.nit:55 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]); - /* ./icode//icode_builder.nit:56 */ + /* icode/icode_builder.nit:56 */ fra.me.REG[1] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[1])(fra.me.REG[1]); CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:57 */ + /* icode/icode_builder.nit:57 */ REGB0 = TAG_Int(0); fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_1) { @@ -145,11 +153,12 @@ void icode___icode_builder___ICodeBuilder___add_null_reciever_check(val_t p0, va fra.me.REG[3] = fra.me.REG[3]; CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:58 */ + /* icode/icode_builder.nit:58 */ CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_type_cast[] = "icode_builder::ICodeBuilder::add_type_cast"; void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, val_t p2){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; @@ -161,6 +170,7 @@ void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, va fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_type_cast; fra.me.has_broke = 0; fra.me.REG_size = 4; + 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; @@ -168,21 +178,24 @@ void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, va fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - /* ./icode//icode_builder.nit:64 */ - fra.me.REG[2] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra.me.REG[1], fra.me.REG[2]); + /* icode/icode_builder.nit:64 */ + fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_icode___icode_base___IRoutine___params(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[2] = NEW_ITypeCheck_icode___icode_base___ITypeCheck___init(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]); fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[1] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]); - /* ./icode//icode_builder.nit:65 */ + /* icode/icode_builder.nit:65 */ fra.me.REG[1] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[1]); - /* ./icode//icode_builder.nit:66 */ + /* icode/icode_builder.nit:66 */ CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:67 */ + /* icode/icode_builder.nit:67 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]); - /* ./icode//icode_builder.nit:68 */ + /* icode/icode_builder.nit:68 */ fra.me.REG[1] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[1])(fra.me.REG[1]); CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:69 */ + /* icode/icode_builder.nit:69 */ REGB0 = TAG_Int(0); fra.me.REG[1] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_1) { @@ -195,11 +208,12 @@ void icode___icode_builder___ICodeBuilder___add_type_cast(val_t p0, val_t p1, va fra.me.REG[3] = fra.me.REG[3]; CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[3]); CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:70 */ + /* icode/icode_builder.nit:70 */ CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_attr_check[] = "icode_builder::ICodeBuilder::add_attr_check"; void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, val_t p2){ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; val_t REGB0; @@ -211,6 +225,7 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_attr_check; fra.me.has_broke = 0; fra.me.REG_size = 5; + 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; @@ -219,7 +234,7 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v fra.me.REG[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - /* ./icode//icode_builder.nit:76 */ + /* icode/icode_builder.nit:76 */ fra.me.REG[3] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB0)) { @@ -233,21 +248,21 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[3])(fra.me.REG[3]); REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { - /* ./icode//icode_builder.nit:77 */ + /* icode/icode_builder.nit:77 */ fra.me.REG[2] = NEW_IAttrIsset_icode___icode_base___IAttrIsset___init(fra.me.REG[1], fra.me.REG[2]); fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[3])(fra.me.REG[3]); fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[3]); - /* ./icode//icode_builder.nit:78 */ + /* icode/icode_builder.nit:78 */ fra.me.REG[3] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]); - /* ./icode//icode_builder.nit:79 */ + /* icode/icode_builder.nit:79 */ CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); - /* ./icode//icode_builder.nit:80 */ + /* icode/icode_builder.nit:80 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]); - /* ./icode//icode_builder.nit:81 */ + /* icode/icode_builder.nit:81 */ fra.me.REG[3] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[3])(fra.me.REG[3]); CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); - /* ./icode//icode_builder.nit:82 */ + /* icode/icode_builder.nit:82 */ REGB0 = TAG_Int(1); fra.me.REG[3] = NEW_Array_standard___collection___array___Array___with_capacity(REGB0); if (!once_value_1) { @@ -263,14 +278,15 @@ void icode___icode_builder___ICodeBuilder___add_attr_check(val_t p0, val_t p1, v fra.me.REG[1] = CALL_standard___string___Object___to_s(fra.me.REG[1])(fra.me.REG[1]); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1]); CALL_icode___icode_builder___ICodeBuilder___add_abort(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); - /* ./icode//icode_builder.nit:83 */ + /* icode/icode_builder.nit:83 */ CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); } stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_attr_read[] = "icode_builder::ICodeBuilder::add_attr_read"; val_t icode___icode_builder___ICodeBuilder___add_attr_read(val_t p0, val_t p1, val_t p2){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; @@ -278,16 +294,20 @@ val_t icode___icode_builder___ICodeBuilder___add_attr_read(val_t p0, val_t p1, v fra.me.line = 87; fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_attr_read; fra.me.has_broke = 0; - fra.me.REG_size = 3; + fra.me.REG_size = 4; + 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[0] = p0; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - /* ./icode//icode_builder.nit:90 */ - CALL_icode___icode_builder___ICodeBuilder___add_attr_check(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); - /* ./icode//icode_builder.nit:91 */ + /* icode/icode_builder.nit:87 */ + fra.me.REG[3] = fra.me.REG[0]; + /* icode/icode_builder.nit:90 */ + CALL_icode___icode_builder___ICodeBuilder___add_attr_check(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[1], fra.me.REG[2]); + /* icode/icode_builder.nit:91 */ fra.me.REG[2] = NEW_IAttrRead_icode___icode_base___IAttrRead___init(fra.me.REG[1], fra.me.REG[2]); fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); @@ -300,12 +320,13 @@ val_t icode___icode_builder___ICodeBuilder___add_attr_read(val_t p0, val_t p1, v } else { nit_abort("Cast failed", NULL, LOCATE_icode___icode_builder, 91); } - fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]); + fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2], fra.me.REG[1]); goto label1; label1: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_abort[] = "icode_builder::ICodeBuilder::add_abort"; void icode___icode_builder___ICodeBuilder___add_abort(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; @@ -316,26 +337,29 @@ void icode___icode_builder___ICodeBuilder___add_abort(val_t p0, val_t p1){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_abort; 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; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:94 */ + /* icode/icode_builder.nit:94 */ + fra.me.REG[2] = fra.me.REG[0]; REGB0 = TAG_Bool(VAL_ISA(fra.me.REG[1], COLOR_standard___collection___array___Array, ID_standard___collection___array___Array)) /*cast Array[String]*/; if (UNTAG_Bool(REGB0)) { } else { nit_abort("Cast failed", NULL, LOCATE_icode___icode_builder, 94); } - /* ./icode//icode_builder.nit:97 */ - fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = NEW_IAbort_icode___icode_base___IAbort___init(fra.me.REG[1], fra.me.REG[2]); - CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + /* icode/icode_builder.nit:97 */ + fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[0] = NEW_IAbort_icode___icode_base___IAbort___init(fra.me.REG[1], fra.me.REG[0]); + CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[0]); stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_return_value[] = "icode_builder::ICodeBuilder::add_return_value"; void icode___icode_builder___ICodeBuilder___add_return_value(val_t p0, val_t p1){ - struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; @@ -343,24 +367,29 @@ void icode___icode_builder___ICodeBuilder___add_return_value(val_t p0, val_t p1) fra.me.line = 100; fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_return_value; fra.me.has_broke = 0; - fra.me.REG_size = 3; + fra.me.REG_size = 4; + 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[0] = p0; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:104 */ - fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[2] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[2])(fra.me.REG[2]); - 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*/; + /* icode/icode_builder.nit:100 */ + fra.me.REG[2] = fra.me.REG[0]; + /* icode/icode_builder.nit:104 */ + fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[2])(fra.me.REG[2]); + fra.me.REG[3] = CALL_icode___icode_base___IRoutine___result(fra.me.REG[3])(fra.me.REG[3]); + 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*/; if (UNTAG_Bool(REGB0)) { } else { nit_abort("Cast failed", NULL, LOCATE_icode___icode_builder, 104); } - CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2], fra.me.REG[1]); + CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3], fra.me.REG[1]); stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_call[] = "icode_builder::ICodeBuilder::add_call"; val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t p2, val_t p3){ struct {struct stack_frame_t me; val_t MORE_REG[10];} fra; val_t REGB0; @@ -377,6 +406,7 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_call; fra.me.has_broke = 0; fra.me.REG_size = 11; + 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; @@ -392,219 +422,251 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t fra.me.REG[1] = p1; fra.me.REG[2] = p2; fra.me.REG[3] = p3; - /* ./icode//icode_builder.nit:110 */ + /* icode/icode_builder.nit:107 */ + fra.me.REG[4] = fra.me.REG[0]; + /* icode/icode_builder.nit:110 */ if (!once_value_1) { if (!once_value_2) { - fra.me.REG[4] = BOX_NativeString("=="); + fra.me.REG[5] = BOX_NativeString("=="); REGB0 = TAG_Int(2); - fra.me.REG[4] = NEW_String_standard___string___String___with_native(fra.me.REG[4], REGB0); - once_value_2 = fra.me.REG[4]; + fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0); + once_value_2 = fra.me.REG[5]; register_static_object(&once_value_2); - } else fra.me.REG[4] = once_value_2; - fra.me.REG[4] = fra.me.REG[4]; - fra.me.REG[4] = CALL_standard___symbol___String___to_symbol(fra.me.REG[4])(fra.me.REG[4]); - once_value_1 = fra.me.REG[4]; + } else fra.me.REG[5] = once_value_2; + fra.me.REG[5] = fra.me.REG[5]; + fra.me.REG[5] = CALL_symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]); + once_value_1 = fra.me.REG[5]; register_static_object(&once_value_1); - } else fra.me.REG[4] = once_value_1; - fra.me.REG[4] = fra.me.REG[4]; - /* ./icode//icode_builder.nit:113 */ + } else fra.me.REG[5] = once_value_1; + fra.me.REG[5] = fra.me.REG[5]; + /* icode/icode_builder.nit:113 */ if (!once_value_3) { if (!once_value_4) { - fra.me.REG[5] = BOX_NativeString("!="); + fra.me.REG[6] = BOX_NativeString("!="); REGB0 = TAG_Int(2); - fra.me.REG[5] = NEW_String_standard___string___String___with_native(fra.me.REG[5], REGB0); - once_value_4 = fra.me.REG[5]; + fra.me.REG[6] = NEW_String_standard___string___String___with_native(fra.me.REG[6], REGB0); + once_value_4 = fra.me.REG[6]; register_static_object(&once_value_4); - } else fra.me.REG[5] = once_value_4; - fra.me.REG[5] = fra.me.REG[5]; - fra.me.REG[5] = CALL_standard___symbol___String___to_symbol(fra.me.REG[5])(fra.me.REG[5]); - once_value_3 = fra.me.REG[5]; + } else fra.me.REG[6] = once_value_4; + fra.me.REG[6] = fra.me.REG[6]; + fra.me.REG[6] = CALL_symbol___String___to_symbol(fra.me.REG[6])(fra.me.REG[6]); + once_value_3 = fra.me.REG[6]; register_static_object(&once_value_3); - } else fra.me.REG[5] = once_value_3; - fra.me.REG[5] = fra.me.REG[5]; - /* ./icode//icode_builder.nit:114 */ - fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[6],fra.me.REG[5])); + } else fra.me.REG[6] = once_value_3; + fra.me.REG[6] = fra.me.REG[6]; + /* icode/icode_builder.nit:114 */ + fra.me.REG[7] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[7],fra.me.REG[6])); if (UNTAG_Bool(REGB0)) { } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[7])(fra.me.REG[7], fra.me.REG[6]); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { - /* ./icode//icode_builder.nit:115 */ - fra.me.REG[5] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); + /* icode/icode_builder.nit:115 */ + fra.me.REG[6] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); + REGB0 = TAG_Bool(fra.me.REG[6]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 115); } - fra.me.REG[5] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[5])(fra.me.REG[5]); - fra.me.REG[5] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[4]); - /* ./icode//icode_builder.nit:116 */ - fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[2], fra.me.REG[3]); - REGB0 = TAG_Bool(fra.me.REG[5]!=NIT_NULL); + fra.me.REG[6] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[6] = CALL_metamodel___static_type___MMType___local_class(fra.me.REG[6])(fra.me.REG[6]); + fra.me.REG[6] = CALL_metamodel___abstractmetamodel___MMLocalClass___select_method(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[5]); + /* icode/icode_builder.nit:116 */ + fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___add_call(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[2], fra.me.REG[3]); + REGB0 = TAG_Bool(fra.me.REG[6]!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { nit_abort("Cast failed", NULL, LOCATE_icode___icode_builder, 116); } - /* ./icode//icode_builder.nit:117 */ - fra.me.REG[5] = NEW_INot_icode___icode_base___INot___init(fra.me.REG[5]); - fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[6] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[6])(fra.me.REG[6]); - fra.me.REG[6] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[6]); + /* icode/icode_builder.nit:117 */ + fra.me.REG[6] = NEW_INot_icode___icode_base___INot___init(fra.me.REG[6]); + fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[0] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[0]); goto label5; } - /* ./icode//icode_builder.nit:122 */ - fra.me.REG[5] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[1], fra.me.REG[2]); - /* ./icode//icode_builder.nit:123 */ - CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[5])(fra.me.REG[5], fra.me.REG[3]); - /* ./icode//icode_builder.nit:124 */ + /* icode/icode_builder.nit:122 */ + fra.me.REG[6] = NEW_ICall_icode___icode_base___ICall___init(fra.me.REG[1], fra.me.REG[2]); + /* icode/icode_builder.nit:123 */ + CALL_icode___icode_base___ICodeN___closure_defs__eq(fra.me.REG[6])(fra.me.REG[6], fra.me.REG[3]); + /* icode/icode_builder.nit:124 */ fra.me.REG[3] = CALL_metamodel___abstractmetamodel___MMLocalProperty___name(fra.me.REG[1])(fra.me.REG[1]); - REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[4])); + REGB0 = TAG_Bool(IS_EQUAL_OO(fra.me.REG[3],fra.me.REG[5])); if (UNTAG_Bool(REGB0)) { } else { - REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4]); + REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[5]); REGB0 = REGB1; } if (UNTAG_Bool(REGB0)) { - /* ./icode//icode_builder.nit:126 */ - fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); - fra.me.REG[4] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[4])(fra.me.REG[4]); - fra.me.REG[4] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4]); - /* ./icode//icode_builder.nit:128 */ + /* icode/icode_builder.nit:126 */ + fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[5] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[5])(fra.me.REG[5]); + fra.me.REG[5] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5]); + /* icode/icode_builder.nit:128 */ REGB0 = TAG_Int(0); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:278 */ fra.me.REG[3] = fra.me.REG[2]; - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ REGB1 = TAG_Int(0); - /* ./../lib/standard//kernel.nit:216 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:236 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[3]); - /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:246 */ + /* ../lib/standard/collection/array.nit:281 */ goto label6; label6: while(0); - /* ./icode//icode_builder.nit:128 */ + /* icode/icode_builder.nit:128 */ REGB0 = TAG_Int(1); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:278 */ fra.me.REG[7] = fra.me.REG[2]; - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ REGB1 = TAG_Int(0); - /* ./../lib/standard//kernel.nit:216 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:236 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[7]); - /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:246 */ + /* ../lib/standard/collection/array.nit:281 */ goto label7; label7: while(0); - /* ./icode//icode_builder.nit:128 */ + /* icode/icode_builder.nit:128 */ fra.me.REG[7] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[3], fra.me.REG[7]); - fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]); fra.me.REG[3] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[3])(fra.me.REG[3]); - fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7], fra.me.REG[3]); - /* ./icode//icode_builder.nit:129 */ + fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7], fra.me.REG[3]); + /* icode/icode_builder.nit:129 */ fra.me.REG[7] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]); - /* ./icode//icode_builder.nit:130 */ - CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]); - /* ./icode//icode_builder.nit:131 */ - fra.me.REG[8] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[0])(fra.me.REG[0]); - /* ./icode//icode_builder.nit:132 */ + /* icode/icode_builder.nit:130 */ + CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + /* icode/icode_builder.nit:131 */ + fra.me.REG[8] = CALL_icode___icode_builder___ICodeBuilder___seq(fra.me.REG[4])(fra.me.REG[4]); + /* icode/icode_builder.nit:132 */ fra.me.REG[9] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[7])(fra.me.REG[7]); - CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9]); - /* ./icode//icode_builder.nit:133 */ - CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]); - /* ./icode//icode_builder.nit:135 */ + CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]); + /* icode/icode_builder.nit:133 */ + CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]); + /* icode/icode_builder.nit:135 */ fra.me.REG[9] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[7])(fra.me.REG[7]); - CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9]); - /* ./icode//icode_builder.nit:137 */ + CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9]); + /* icode/icode_builder.nit:137 */ REGB0 = TAG_Int(0); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:278 */ fra.me.REG[9] = fra.me.REG[2]; - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ REGB1 = TAG_Int(0); - /* ./../lib/standard//kernel.nit:216 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:236 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[9]); - /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:246 */ + /* ../lib/standard/collection/array.nit:281 */ goto label8; label8: while(0); - /* ./icode//icode_builder.nit:137 */ + /* icode/icode_builder.nit:137 */ REGB0 = TAG_Bool(fra.me.REG[9]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 137); @@ -612,104 +674,114 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t fra.me.REG[9] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[9])(fra.me.REG[9]); REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[9])(fra.me.REG[9]); if (UNTAG_Bool(REGB0)) { - /* ./icode//icode_builder.nit:138 */ - fra.me.REG[9] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[0])(fra.me.REG[0]); - /* ./icode//icode_builder.nit:139 */ + /* icode/icode_builder.nit:138 */ + fra.me.REG[9] = CALL_icode___icode_builder___ICodeBuilder___lit_null_reg(fra.me.REG[4])(fra.me.REG[4]); + /* icode/icode_builder.nit:139 */ REGB0 = TAG_Int(0); - /* ./../lib/standard//collection//array.nit:243 */ + /* ../lib/standard/collection/array.nit:278 */ fra.me.REG[10] = fra.me.REG[2]; - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ REGB1 = TAG_Int(0); - /* ./../lib/standard//kernel.nit:216 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:236 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)>=UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:245 */ + /* ../lib/standard/collection/array.nit:280 */ if (UNTAG_Bool(REGB1)) { REGB1 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10])!=NIT_NULL); if (UNTAG_Bool(REGB1)) { } else { - nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 245); + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); } REGB1 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[10]); - /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ REGB1 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./../lib/standard//collection//array.nit:246 */ + /* ../lib/standard/collection/array.nit:281 */ goto label9; label9: while(0); - /* ./icode//icode_builder.nit:139 */ + /* icode/icode_builder.nit:139 */ fra.me.REG[9] = NEW_IIs_icode___icode_base___IIs___init(fra.me.REG[10], fra.me.REG[9]); - fra.me.REG[10] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[10] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]); fra.me.REG[10] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[10])(fra.me.REG[10]); - fra.me.REG[10] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[9], fra.me.REG[10]); + fra.me.REG[10] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[9], fra.me.REG[10]); fra.me.REG[3] = fra.me.REG[10]; - /* ./icode//icode_builder.nit:140 */ + /* icode/icode_builder.nit:140 */ fra.me.REG[3] = NEW_IIf_icode___icode_base___IIf___init(fra.me.REG[3]); fra.me.REG[7] = fra.me.REG[3]; - /* ./icode//icode_builder.nit:141 */ - CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]); - /* ./icode//icode_builder.nit:142 */ + /* icode/icode_builder.nit:141 */ + CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); + /* icode/icode_builder.nit:142 */ fra.me.REG[3] = CALL_icode___icode_base___IIf___then_seq(fra.me.REG[7])(fra.me.REG[7]); - CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[3]); - /* ./icode//icode_builder.nit:143 */ - fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra.me.REG[0])(fra.me.REG[0]); - CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[3]); - /* ./icode//icode_builder.nit:144 */ + CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[3]); + /* icode/icode_builder.nit:143 */ + fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___lit_false_reg(fra.me.REG[4])(fra.me.REG[4]); + CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[3]); + /* icode/icode_builder.nit:144 */ fra.me.REG[7] = CALL_icode___icode_base___IIf___else_seq(fra.me.REG[7])(fra.me.REG[7]); - CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[7]); + CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[7]); } - /* ./icode//icode_builder.nit:147 */ - fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); + /* icode/icode_builder.nit:147 */ + fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[4])(fra.me.REG[4]); fra.me.REG[7] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[7])(fra.me.REG[7]); - fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[7]); - CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[4], fra.me.REG[7]); - /* ./icode//icode_builder.nit:148 */ - CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[8]); - /* ./icode//icode_builder.nit:149 */ - fra.me.REG[6] = fra.me.REG[4]; + fra.me.REG[7] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[7]); + CALL_icode___icode_builder___ICodeBuilder___add_assignment(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[5], fra.me.REG[7]); + /* icode/icode_builder.nit:148 */ + CALL_icode___icode_builder___ICodeBuilder___seq__eq(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[8]); + /* icode/icode_builder.nit:149 */ + fra.me.REG[0] = fra.me.REG[5]; goto label5; } - /* ./icode//icode_builder.nit:152 */ - fra.me.REG[4] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]); - REGB0 = TAG_Bool(fra.me.REG[4]==NIT_NULL); + /* icode/icode_builder.nit:152 */ + fra.me.REG[5] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]); + REGB0 = TAG_Bool(fra.me.REG[5]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 152); } - fra.me.REG[4] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[4])(fra.me.REG[4]); - REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[4])(fra.me.REG[4]); + fra.me.REG[5] = CALL_icode___icode_base___IRegister___stype(fra.me.REG[5])(fra.me.REG[5]); + REGB0 = CALL_metamodel___static_type___MMType___is_nullable(fra.me.REG[5])(fra.me.REG[5]); if (UNTAG_Bool(REGB0)) { fra.me.REG[2] = CALL_standard___collection___abstract_collection___Collection___first(fra.me.REG[2])(fra.me.REG[2]); - CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); + CALL_icode___icode_builder___ICodeBuilder___add_null_reciever_check(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[2]); } - /* ./icode//icode_builder.nit:153 */ + /* icode/icode_builder.nit:153 */ fra.me.REG[1] = CALL_metamodel___static_type___MMLocalProperty___signature(fra.me.REG[1])(fra.me.REG[1]); REGB0 = TAG_Bool(fra.me.REG[1]==NIT_NULL); if (UNTAG_Bool(REGB0)) { nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 153); } fra.me.REG[1] = CALL_metamodel___static_type___MMSignature___return_type(fra.me.REG[1])(fra.me.REG[1]); - /* ./icode//icode_builder.nit:154 */ + /* icode/icode_builder.nit:154 */ 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(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[1])(fra.me.REG[1], NIT_NULL); @@ -718,21 +790,22 @@ val_t icode___icode_builder___ICodeBuilder___add_call(val_t p0, val_t p1, val_t } REGB0 = TAG_Bool(!UNTAG_Bool(REGB0)); if (UNTAG_Bool(REGB0)) { - /* ./icode//icode_builder.nit:155 */ - fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5], fra.me.REG[1]); - fra.me.REG[6] = fra.me.REG[1]; + /* icode/icode_builder.nit:155 */ + fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6], fra.me.REG[1]); + fra.me.REG[0] = fra.me.REG[1]; goto label5; } else { - /* ./icode//icode_builder.nit:157 */ - CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[5]); - /* ./icode//icode_builder.nit:158 */ - fra.me.REG[6] = NIT_NULL; + /* icode/icode_builder.nit:157 */ + CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[4])(fra.me.REG[4], fra.me.REG[6]); + /* icode/icode_builder.nit:158 */ + fra.me.REG[0] = NIT_NULL; goto label5; } label5: while(0); stack_frame_head = fra.me.prev; - return fra.me.REG[6]; + return fra.me.REG[0]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___add_escape[] = "icode_builder::ICodeBuilder::add_escape"; void icode___icode_builder___ICodeBuilder___add_escape(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[3];} fra; val_t REGB0; @@ -744,21 +817,22 @@ void icode___icode_builder___ICodeBuilder___add_escape(val_t p0, val_t p1){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___add_escape; fra.me.has_broke = 0; fra.me.REG_size = 4; + 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[0] = p0; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:166 */ + /* icode/icode_builder.nit:166 */ fra.me.REG[2] = CALL_icode___icode_base___ISeq___iescape_mark(fra.me.REG[1])(fra.me.REG[1]); - /* ./icode//icode_builder.nit:167 */ + /* icode/icode_builder.nit:167 */ REGB0 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - REGB1 = TAG_Bool(false); + REGB1 = TAG_Bool(0); REGB0 = REGB1; } else { REGB1 = CALL_standard___kernel___Object_____eqeq(fra.me.REG[2])(fra.me.REG[2], NIT_NULL); @@ -766,22 +840,23 @@ void icode___icode_builder___ICodeBuilder___add_escape(val_t p0, val_t p1){ } } if (UNTAG_Bool(REGB0)) { - /* ./icode//icode_builder.nit:168 */ + /* icode/icode_builder.nit:168 */ fra.me.REG[3] = NEW_IEscapeMark_icode___icode_base___IEscapeMark___init(); fra.me.REG[2] = fra.me.REG[3]; - /* ./icode//icode_builder.nit:169 */ + /* icode/icode_builder.nit:169 */ fra.me.REG[3] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[3] = CALL_icode___icode_base___IRoutine___escape_marks(fra.me.REG[3])(fra.me.REG[3]); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); - /* ./icode//icode_builder.nit:170 */ + /* icode/icode_builder.nit:170 */ CALL_icode___icode_base___ISeq___iescape_mark__eq(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); } - /* ./icode//icode_builder.nit:172 */ + /* icode/icode_builder.nit:172 */ fra.me.REG[2] = NEW_IEscape_icode___icode_base___IEscape___init(fra.me.REG[2]); CALL_icode___icode_builder___ICodeBuilder___stmt(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[2]); stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___lit_null_reg[] = "icode_builder::ICodeBuilder::lit_null_reg"; val_t icode___icode_builder___ICodeBuilder___lit_null_reg(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; val_t tmp; @@ -791,10 +866,11 @@ val_t icode___icode_builder___ICodeBuilder___lit_null_reg(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___lit_null_reg; 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; - /* ./icode//icode_builder.nit:178 */ + /* icode/icode_builder.nit:178 */ fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[1] = CALL_metamodel___static_type___MMModule___type_none(fra.me.REG[1])(fra.me.REG[1]); fra.me.REG[1] = CALL_icode___icode_builder___ICodeBuilder___new_register(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); @@ -803,6 +879,7 @@ val_t icode___icode_builder___ICodeBuilder___lit_null_reg(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[1]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___lit_true_reg[] = "icode_builder::ICodeBuilder::lit_true_reg"; val_t icode___icode_builder___ICodeBuilder___lit_true_reg(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; @@ -813,14 +890,15 @@ val_t icode___icode_builder___ICodeBuilder___lit_true_reg(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___lit_true_reg; 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; - /* ./icode//icode_builder.nit:184 */ - REGB0 = TAG_Bool(true); + /* icode/icode_builder.nit:184 */ + REGB0 = TAG_Bool(1); fra.me.REG[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0); - /* ./icode//icode_builder.nit:185 */ + /* icode/icode_builder.nit:185 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[2])(fra.me.REG[2]); fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); @@ -829,6 +907,7 @@ val_t icode___icode_builder___ICodeBuilder___lit_true_reg(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[2]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___lit_false_reg[] = "icode_builder::ICodeBuilder::lit_false_reg"; val_t icode___icode_builder___ICodeBuilder___lit_false_reg(val_t p0){ struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; val_t REGB0; @@ -839,14 +918,15 @@ val_t icode___icode_builder___ICodeBuilder___lit_false_reg(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___lit_false_reg; 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; - /* ./icode//icode_builder.nit:191 */ - REGB0 = TAG_Bool(false); + /* icode/icode_builder.nit:191 */ + REGB0 = TAG_Bool(0); fra.me.REG[1] = NEW_IBoolValue_icode___icode_base___IBoolValue___init(REGB0); - /* ./icode//icode_builder.nit:192 */ + /* icode/icode_builder.nit:192 */ fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___mmmodule(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = CALL_metamodel___static_type___MMModule___type_bool(fra.me.REG[2])(fra.me.REG[2]); fra.me.REG[2] = CALL_icode___icode_builder___ICodeBuilder___expr(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1], fra.me.REG[2]); @@ -855,6 +935,7 @@ val_t icode___icode_builder___ICodeBuilder___lit_false_reg(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[2]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___new_register[] = "icode_builder::ICodeBuilder::new_register"; val_t icode___icode_builder___ICodeBuilder___new_register(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; val_t tmp; @@ -864,22 +945,24 @@ val_t icode___icode_builder___ICodeBuilder___new_register(val_t p0, val_t p1){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___new_register; 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; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:198 */ + /* icode/icode_builder.nit:198 */ fra.me.REG[1] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[1]); - /* ./icode//icode_builder.nit:199 */ + /* icode/icode_builder.nit:199 */ fra.me.REG[0] = CALL_icode___icode_builder___ICodeBuilder___iroutine(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[0] = CALL_icode___icode_base___IRoutine___registers(fra.me.REG[0])(fra.me.REG[0]); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[0])(fra.me.REG[0], fra.me.REG[1]); - /* ./icode//icode_builder.nit:200 */ + /* icode/icode_builder.nit:200 */ goto label1; label1: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[1]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___mmmodule[] = "icode_builder::ICodeBuilder::mmmodule"; val_t icode___icode_builder___ICodeBuilder___mmmodule(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; @@ -890,9 +973,10 @@ val_t icode___icode_builder___ICodeBuilder___mmmodule(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___mmmodule; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./icode//icode_builder.nit:203 */ + /* icode/icode_builder.nit:203 */ REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { @@ -902,6 +986,7 @@ val_t icode___icode_builder___ICodeBuilder___mmmodule(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___iroutine[] = "icode_builder::ICodeBuilder::iroutine"; val_t icode___icode_builder___ICodeBuilder___iroutine(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; @@ -912,9 +997,10 @@ val_t icode___icode_builder___ICodeBuilder___iroutine(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___iroutine; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./icode//icode_builder.nit:206 */ + /* icode/icode_builder.nit:206 */ REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { @@ -924,6 +1010,7 @@ val_t icode___icode_builder___ICodeBuilder___iroutine(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___seq[] = "icode_builder::ICodeBuilder::seq"; val_t icode___icode_builder___ICodeBuilder___seq(val_t p0){ struct {struct stack_frame_t me;} fra; val_t REGB0; @@ -934,9 +1021,10 @@ val_t icode___icode_builder___ICodeBuilder___seq(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___seq; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./icode//icode_builder.nit:209 */ + /* icode/icode_builder.nit:209 */ REGB0 = TAG_Bool(ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0])!=NIT_NULL); if (UNTAG_Bool(REGB0)) { } else { @@ -946,6 +1034,7 @@ val_t icode___icode_builder___ICodeBuilder___seq(val_t p0){ stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___seq__eq[] = "icode_builder::ICodeBuilder::seq="; void icode___icode_builder___ICodeBuilder___seq__eq(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; val_t tmp; @@ -955,15 +1044,17 @@ void icode___icode_builder___ICodeBuilder___seq__eq(val_t p0, val_t p1){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___seq__eq; 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; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:209 */ + /* icode/icode_builder.nit:209 */ ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0]) = fra.me.REG[1]; stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___init[] = "icode_builder::ICodeBuilder::init"; void icode___icode_builder___ICodeBuilder___init(val_t p0, val_t p1, val_t p2, int* init_table){ int itpos0 = VAL2OBJ(p0)->vft[INIT_TABLE_POS_icode___icode_builder___ICodeBuilder].i; struct {struct stack_frame_t me; val_t MORE_REG[2];} fra; @@ -975,26 +1066,28 @@ void icode___icode_builder___ICodeBuilder___init(val_t p0, val_t p1, val_t p2, i fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___init; 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; fra.me.REG[1] = p1; fra.me.REG[2] = p2; - /* ./icode//icode_builder.nit:214 */ + /* icode/icode_builder.nit:214 */ ATTR_icode___icode_builder___ICodeBuilder____mmmodule(fra.me.REG[0]) = fra.me.REG[1]; - /* ./icode//icode_builder.nit:215 */ + /* icode/icode_builder.nit:215 */ fra.me.REG[1] = CALL_icode___icode_base___IRoutine___location(fra.me.REG[2])(fra.me.REG[2]); ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1]; - /* ./icode//icode_builder.nit:216 */ + /* icode/icode_builder.nit:216 */ ATTR_icode___icode_builder___ICodeBuilder____iroutine(fra.me.REG[0]) = fra.me.REG[2]; - /* ./icode//icode_builder.nit:217 */ + /* icode/icode_builder.nit:217 */ fra.me.REG[2] = CALL_icode___icode_base___IRoutine___body(fra.me.REG[2])(fra.me.REG[2]); ATTR_icode___icode_builder___ICodeBuilder____seq(fra.me.REG[0]) = fra.me.REG[2]; stack_frame_head = fra.me.prev; init_table[itpos0] = 1; return; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___current_location[] = "icode_builder::ICodeBuilder::current_location"; val_t icode___icode_builder___ICodeBuilder___current_location(val_t p0){ struct {struct stack_frame_t me;} fra; val_t tmp; @@ -1004,13 +1097,15 @@ val_t icode___icode_builder___ICodeBuilder___current_location(val_t p0){ fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___current_location; fra.me.has_broke = 0; fra.me.REG_size = 1; + fra.me.nitni_local_ref_head = NULL; fra.me.REG[0] = NIT_NULL; fra.me.REG[0] = p0; - /* ./icode//icode_builder.nit:220 */ + /* icode/icode_builder.nit:220 */ fra.me.REG[0] = ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]); stack_frame_head = fra.me.prev; return fra.me.REG[0]; } +static const char LOCATE_icode___icode_builder___ICodeBuilder___current_location__eq[] = "icode_builder::ICodeBuilder::current_location="; void icode___icode_builder___ICodeBuilder___current_location__eq(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[1];} fra; val_t tmp; @@ -1020,77 +1115,89 @@ void icode___icode_builder___ICodeBuilder___current_location__eq(val_t p0, val_t fra.me.meth = LOCATE_icode___icode_builder___ICodeBuilder___current_location__eq; 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; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:220 */ + /* icode/icode_builder.nit:220 */ ATTR_icode___icode_builder___ICodeBuilder____current_location(fra.me.REG[0]) = fra.me.REG[1]; stack_frame_head = fra.me.prev; return; } +static const char LOCATE_icode___icode_builder___MMSignature___generate_empty_iroutine[] = "icode_builder::MMSignature::generate_empty_iroutine"; val_t icode___icode_builder___MMSignature___generate_empty_iroutine(val_t p0){ - struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; + struct {struct stack_frame_t me; val_t MORE_REG[6];} fra; val_t REGB0; val_t REGB1; val_t REGB2; + val_t REGB3; + val_t REGB4; val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_icode___icode_builder; fra.me.line = 225; fra.me.meth = LOCATE_icode___icode_builder___MMSignature___generate_empty_iroutine; fra.me.has_broke = 0; - fra.me.REG_size = 5; + fra.me.REG_size = 7; + 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[0] = p0; - /* ./icode//icode_builder.nit:228 */ + /* icode/icode_builder.nit:228 */ fra.me.REG[1] = NEW_Array_standard___collection___array___Array___init(); - /* ./icode//icode_builder.nit:229 */ + /* icode/icode_builder.nit:229 */ fra.me.REG[2] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[0])(fra.me.REG[0]); fra.me.REG[2] = NEW_IRegister_icode___icode_base___IRegister___init(fra.me.REG[2]); CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[2]); - /* ./icode//icode_builder.nit:230 */ + /* icode/icode_builder.nit:230 */ REGB0 = TAG_Int(0); REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]); - /* ./../lib/standard//kernel.nit:335 */ + /* ../lib/standard/kernel.nit:355 */ while(1) { - /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ REGB2 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./icode//icode_builder.nit:243 */ - fra.me.REG[4] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra.me.REG[4]); - REGB1 = TAG_Bool(fra.me.REG[1]==NIT_NULL); + /* ../lib/standard/collection/array.nit:718 */ + fra.me.REG[6] = ((Nit_NativeArray)fra.me.REG[5])->val[UNTAG_Int(REGB0)]; + /* icode/icode_builder.nit:243 */ + fra.me.REG[6] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra.me.REG[6]); + REGB1 = TAG_Bool(fra.me.REG[3]==NIT_NULL); if (UNTAG_Bool(REGB1)) { nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 243); } - CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[1])(fra.me.REG[1], fra.me.REG[4]); - /* ./../lib/standard//collection//array.nit:239 */ + CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[6]); + /* ../lib/standard/collection/array.nit:274 */ REGB1 = TAG_Int(1); - /* ./../lib/standard//kernel.nit:218 */ + /* ../lib/standard/kernel.nit:238 */ REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:239 */ + /* ../lib/standard/collection/array.nit:274 */ REGB0 = REGB1; } else { - /* ./../lib/standard//collection//array.nit:237 */ + /* ../lib/standard/collection/array.nit:272 */ goto label2; } } label2: while(0); - /* ./icode//icode_builder.nit:245 */ - CALL_icode___icode_base___IRoutine___closure_decls__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); + /* icode/icode_builder.nit:245 */ + CALL_icode___icode_base___IRoutine___closure_decls__eq(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[3]); } - /* ./icode//icode_builder.nit:247 */ - goto label3; - label3: while(0); + /* icode/icode_builder.nit:248 */ + fra.me.REG[3] = CALL_metamodel___static_type___MMSignature___recv(fra.me.REG[0])(fra.me.REG[0]); + fra.me.REG[3] = CALL_metamodel___static_type___MMType___mmmodule(fra.me.REG[3])(fra.me.REG[3]); + fra.me.REG[3] = NEW_ICodeBuilder_icode___icode_builder___ICodeBuilder___init(fra.me.REG[3], fra.me.REG[2]); + /* icode/icode_builder.nit:249 */ + REGB0 = TAG_Int(0); + REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]); + /* ../lib/standard/kernel.nit:355 */ + while(1) { + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB0)=UNTAG_Int(REGB2)); + /* ../lib/standard/collection/array.nit:280 */ + if (UNTAG_Bool(REGB2)) { + REGB2 = TAG_Bool(ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4])!=NIT_NULL); + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Uninitialized attribute %s", "_length", LOCATE_standard___collection___array, 280); + } + REGB2 = ATTR_standard___collection___array___AbstractArrayRead____length(fra.me.REG[4]); + REGB4 = TAG_Bool(VAL_ISA(REGB2, VTCOLOR_standard___kernel___Comparable___OTHER(REGB3), VTID_standard___kernel___Comparable___OTHER(REGB3))) /*cast OTHER*/; + if (UNTAG_Bool(REGB4)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ + REGB2 = TAG_Bool(UNTAG_Int(REGB3)val[UNTAG_Int(REGB3)]; + /* ../lib/standard/collection/array.nit:281 */ + goto label3; + label3: while(0); + /* icode/icode_builder.nit:252 */ + CALL_icode___icode_builder___ICodeBuilder___add_type_cast(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[4], fra.me.REG[5]); + } + /* ../lib/standard/kernel.nit:357 */ + REGB3 = TAG_Int(1); + /* ../lib/standard/kernel.nit:238 */ + REGB3 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB3)); + /* ../lib/standard/kernel.nit:357 */ + REGB0 = REGB3; + } else { + /* ../lib/standard/kernel.nit:355 */ + goto label4; + } + } + label4: while(0); + /* icode/icode_builder.nit:255 */ + goto label5; + label5: while(0); stack_frame_head = fra.me.prev; return fra.me.REG[2]; } +static const char LOCATE_icode___icode_builder___MMSignature___generate_empty_iclosuredef[] = "icode_builder::MMSignature::generate_empty_iclosuredef"; val_t icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0, val_t p1){ struct {struct stack_frame_t me; val_t MORE_REG[4];} fra; val_t REGB0; @@ -1184,10 +1387,11 @@ val_t icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0, val_t tmp; fra.me.prev = stack_frame_head; stack_frame_head = &fra.me; fra.me.file = LOCATE_icode___icode_builder; - fra.me.line = 250; + fra.me.line = 258; fra.me.meth = LOCATE_icode___icode_builder___MMSignature___generate_empty_iclosuredef; fra.me.has_broke = 0; fra.me.REG_size = 5; + 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; @@ -1195,46 +1399,51 @@ val_t icode___icode_builder___MMSignature___generate_empty_iclosuredef(val_t p0, fra.me.REG[4] = NIT_NULL; fra.me.REG[0] = p0; fra.me.REG[1] = p1; - /* ./icode//icode_builder.nit:253 */ + /* icode/icode_builder.nit:261 */ fra.me.REG[2] = NEW_Array_standard___collection___array___Array___init(); - /* ./icode//icode_builder.nit:254 */ + /* icode/icode_builder.nit:262 */ REGB0 = TAG_Int(0); REGB1 = CALL_metamodel___static_type___MMSignature___arity(fra.me.REG[0])(fra.me.REG[0]); - /* ./../lib/standard//kernel.nit:335 */ + /* ../lib/standard/kernel.nit:355 */ while(1) { - /* ./../lib/standard//kernel.nit:215 */ + REGB2 = TAG_Bool(VAL_ISA(REGB1, VTCOLOR_standard___kernel___Comparable___OTHER(REGB0), VTID_standard___kernel___Comparable___OTHER(REGB0))) /*cast OTHER*/; + if (UNTAG_Bool(REGB2)) { + } else { + nit_abort("Cast failed", NULL, LOCATE_standard___kernel, 0); + } + /* ../lib/standard/kernel.nit:235 */ REGB2 = TAG_Bool(UNTAG_Int(REGB0)val[UNTAG_Int(REGB0)]; - /* ./icode//icode_builder.nit:267 */ + /* icode/icode_builder.nit:275 */ fra.me.REG[1] = NEW_IClosureDecl_icode___icode_base___IClosureDecl___init(fra.me.REG[1]); REGB1 = TAG_Bool(fra.me.REG[2]==NIT_NULL); if (UNTAG_Bool(REGB1)) { - nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 267); + nit_abort("Reciever is null", NULL, LOCATE_icode___icode_builder, 275); } CALL_standard___collection___abstract_collection___SimpleCollection___add(fra.me.REG[2])(fra.me.REG[2], fra.me.REG[1]); - /* ./../lib/standard//collection//array.nit:239 */ + /* ../lib/standard/collection/array.nit:274 */ REGB1 = TAG_Int(1); - /* ./../lib/standard//kernel.nit:218 */ + /* ../lib/standard/kernel.nit:238 */ REGB1 = TAG_Int(UNTAG_Int(REGB0)+UNTAG_Int(REGB1)); - /* ./../lib/standard//collection//array.nit:239 */ + /* ../lib/standard/collection/array.nit:274 */ REGB0 = REGB1; } else { - /* ./../lib/standard//collection//array.nit:237 */ + /* ../lib/standard/collection/array.nit:272 */ goto label2; } } label2: while(0); - /* ./icode//icode_builder.nit:269 */ + /* icode/icode_builder.nit:277 */ CALL_icode___icode_base___IRoutine___closure_decls__eq(fra.me.REG[3])(fra.me.REG[3], fra.me.REG[2]); } - /* ./icode//icode_builder.nit:271 */ + /* icode/icode_builder.nit:280 */ goto label3; label3: while(0); stack_frame_head = fra.me.prev;