/* TEMPO Version 1.191, 03/11/98, Copyright (c) IRISA/INRIA-Universite de Rennes */ #include "prog.H" typedef char *Universal; extern "C" int set_specialization_context(); extern "C" Universal ML_list_separator; extern "C" Universal _global_sstore_start; extern "C" Universal _local_sstore_start; extern "C" size_t _global_sstore_size; extern "C" size_t _local_sstore_size; extern "C" int EV_4(); extern "C" void EV_3(); extern "C" int EV_2(); extern "C" void EV_1(); ML_ctx global_ctx = "(* TEMPO Version 1.191, 03/11/98, Copyright (c) IRISA/INRIA-Universite de Rennes *) ABSYN(ENTRY_POINT_SPEC(ROOT(G(\"interpret\")),CALL_SIG([],[MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"val\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\"))), MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"opcode\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\"))), VAR(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(E(\"prg_size\")))],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[S, D, S, D, S]),ETA_RETURN_SIG(U,[],[]))),0,[STRUCT_DECL(ROOT(G(\"inst\")),[TYPE_DECL_PARAM(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"opcode\"))), TYPE_DECL_PARAM(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"val\")))])],[VAR_DECL(EXTERN,tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\"))), VAR_DECL(EXTERN,tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\")))],[FUNC_DECL(EXTERN,tFUNC(tINT(NON_CST,NON_VOL,SIGNED,STD),[]),ROOT(E(\"printf\"))), FUNC_DECL(EXTERN,tFUNC(tINT(NON_CST,NON_VOL,SIGNED,STD),[]),ROOT(E(\"exit\")))],[],[%s])"; stmt_ac *extension() { extern void init_store(Universal, size_t, Universal, size_t); extern void init_prog(cons *prog_cTree); set_specialization_context(); init_store(_global_sstore_start, _global_sstore_size, _local_sstore_start, _local_sstore_size); init_prog(new cons( fun_ac("_Ginterpret_1",Block_reb(cons( If_reb(Exp_id("eta"),Exp_reb(Assign_reb(Exp_id("VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(SD))"),Exp_id("CONSTANT(INT(\"0\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))"),Stmt_ev((funptr)&EV_1,"EMPTY(A(U))"),"(* %s *) %s (* %s *)") *= Exp_reb(Assign_reb(Exp_id("VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D))"),Exp_id("CONSTANT(INT(\"0\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") *= If_red(Block_reb(cons( new Do_reb(Binop_reb(Exp_id("VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_2,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"BINARY(LT,%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),Stmt_id("BLOCK([],[EXP(ECALL(RESIDUALIZED,ROOT(E(\"printf\")),CALL_SIG([],[],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[]),ETA_RETURN_SIG(U,[],[])),[CONSTANT(STRING(\"OPCODE= %%d mem[0]=%%d, mem[1]=%%d\\\\n\"),tARRAY(\"35\",tCHAR(NON_CST,NON_VOL,SIGNED)),A(D)), SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)), SUBSCRIPT(VAR(ROOT(E(\"mem\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),CONSTANT(INT(\"0\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)), SUBSCRIPT(VAR(ROOT(E(\"mem\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D))],tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"0\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"val\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"2\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),BINARY(PLUS,SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"3\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),BINARY(MINUS,SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"4\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),BINARY(MULT,SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"5\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SUBSCRIPT(VAR(ROOT(E(\"mem\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"6\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"mem\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"2\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"7\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"8\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[IF(BINARY(NEQ,SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),CONSTANT(INT(\"0\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"2\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[IF(BINARY(EQ,SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"9\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BLOCK([],[EXP(ASSIGN(SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),BINARY(EQ,SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),SUBSCRIPT(VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(MINUS,VAR(ROOT(L(G(\"interpret\"),1, \"sp\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ASSIGN(VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),BINARY(PLUS,VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),CONSTANT(INT(\"1\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(S)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),BLOCK([],[EXP(ECALL(RESIDUALIZED,ROOT(E(\"printf\")),CALL_SIG([],[],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[]),ETA_RETURN_SIG(U,[],[])),[CONSTANT(STRING(\"\\\\n Unrecognized instruction -> %%d at %%d\\\\n\"),tARRAY(\"43\",tCHAR(NON_CST,NON_VOL,SIGNED)),A(D)), SELECT(SUBSCRIPT(VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D)),VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\"))),[],A(D)),ROOT(G(\"opcode\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)), VAR(ROOT(L(G(\"interpret\"),1, \"pc\")),tINT(NON_CST,NON_VOL,SIGNED,STD),A(D))],tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D)), EXP(ECALL(RESIDUALIZED,ROOT(E(\"exit\")),CALL_SIG([],[],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[]),ETA_RETURN_SIG(U,[],[])),[],tINT(NON_CST,NON_VOL,SIGNED,STD),A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D)),A(D))],A(D))"),"DO(%s,A(U))") ),"BLOCK([],[%s],A(U))"),Stmt_ev((funptr)&EV_3,"EMPTY(A(U))"),(funptr)&EV_4,"BLOCK([],[%s],A(U))") *= Stmt_id("RETURN_VOID(A(D))") ),"BLOCK([VAR_DEF(DYNAMIC,tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(L(G(\"interpret\"),1, \"pc\")),NON_INIT), VAR_DEF(DYNAMIC,tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(L(G(\"interpret\"),1, \"sp\")),NON_INIT)],[%s],A(U))"),"FUNC_DEF(EXTERN,tVOID(NON_CST,NON_VOL),G(\"%s\"),INTERNAL(UNINIT),[FUNC_DEF_PARAM(tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),ROOT(L(G(\"interpret\"),0, \"prg\")))],[(FUNC_SIG(CALL_SIG([VAR(tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),ROOT(L(G(\"interpret\"),0, \"prg\")))],[],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([S],[S, D, S, D, S]),ETA_RETURN_SIG(D,[],[])),RETURN_SIG([VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\")))],ALIAS_RETURN_SIG([],STORE([])),BTA_RETURN_SIG(F([S],U,D),[D, D]),ETA_CALL_SIG([S],F([D],U,D),[MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"opcode\"))), MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"val\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\")))],[VAR(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(E(\"prg_size\")))]))), %s)])"))); return new Exp_reb(Call_reb("_Ginterpret_1",cons( param(Exp_id("VAR(ROOT(L(G(\"interpret\"),0, \"prg\")),tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),A(D))")) ),0,"CALL(0,G(\"%s\"),CALL_SIG([VAR(tINDR(NON_CST,NON_VOL,tSTRUCT(NON_CST,NON_VOL,ROOT(G(\"inst\")))),ROOT(L(G(\"interpret\"),0, \"prg\")))],[MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"val\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\"))), MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"opcode\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\"))), VAR(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(E(\"prg_size\")))],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([S],[S, D, S, D, S]),ETA_RETURN_SIG(D,[],[])),[%s],tVOID(NON_CST,NON_VOL),A(U))"), ""); }