/* 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(Universal); extern "C" Universal ML_list_separator; extern "C" Universal _arg1; 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" void EV_37(); extern "C" int EV_36(); extern "C" void EV_35(); extern "C" int EV_34(); extern "C" void EV_33(); extern "C" int EV_32(); extern "C" int EV_31(); extern "C" int EV_30(); extern "C" int EV_29(); extern "C" int EV_28(); extern "C" int EV_27(); extern "C" int EV_26(); extern "C" int EV_25(); extern "C" int EV_24(); extern "C" void EV_23(); extern "C" int EV_22(); extern "C" int EV_21(); extern "C" int EV_20(); extern "C" int EV_19(); extern "C" void EV_18(); extern "C" int EV_17(); extern "C" int EV_16(); extern "C" int EV_15(); extern "C" void EV_14(); extern "C" int EV_13(); extern "C" int EV_12(); extern "C" int EV_11(); extern "C" void EV_10(); extern "C" int EV_9(); extern "C" int EV_8(); extern "C" int EV_7(); extern "C" void EV_6(); extern "C" int EV_5(); extern "C" int EV_4(); extern "C" void EV_3(); extern "C" void 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(\"mem\"))), 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(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(E(\"prg_size\")))],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[S, D, D, S, 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(_arg1); 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( Stmt_ev((funptr)&EV_1,"EMPTY(A(U))") *= Stmt_ev((funptr)&EV_2,"EMPTY(A(U))") *= If_red(Block_reb(cons( new Do_red(Block_reb(cons( If_red(Block_reb(cons( Stmt_ev((funptr)&EV_3,"EMPTY(A(U))") *= Exp_reb(Assign_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_4,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_5,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") ),"BLOCK([],[%s],A(U))"),Block_reb(cons( new If_red(Stmt_ev((funptr)&EV_6,"EMPTY(A(U))"),Block_reb(cons( new If_red(Block_reb(cons( Exp_reb(Assign_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_7,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Binop_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_8,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_9,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"BINARY(PLUS,%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") *= Stmt_ev((funptr)&EV_10,"EMPTY(A(U))") ),"BLOCK([],[%s],A(U))"),Block_reb(cons( new If_red(Block_reb(cons( Exp_reb(Assign_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_11,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Binop_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_12,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_13,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"BINARY(MINUS,%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") *= Stmt_ev((funptr)&EV_14,"EMPTY(A(U))") ),"BLOCK([],[%s],A(U))"),Block_reb(cons( new If_red(Block_reb(cons( Exp_reb(Assign_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_15,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Binop_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_16,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_17,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"BINARY(MULT,%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") *= Stmt_ev((funptr)&EV_18,"EMPTY(A(U))") ),"BLOCK([],[%s],A(U))"),Block_reb(cons( new If_red(Block_reb(cons( new Exp_reb(Assign_reb(Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_19,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Array_reb(Exp_id("VAR(ROOT(E(\"mem\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_20,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") ),"BLOCK([],[%s],A(U))"),Block_reb(cons( new If_red(Block_reb(cons( Exp_reb(Assign_reb(Array_reb(Exp_id("VAR(ROOT(E(\"mem\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_21,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),Array_reb(Exp_id("VAR(ROOT(E(\"stack\")),tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),A(D))"),Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_22,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"SUBSCRIPT(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),[],A(U))"),"ASSIGN(%s,tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") *= Stmt_ev((funptr)&EV_23,"EMPTY(A(U))") ),"BLOCK([],[%s],A(U))"),Block_reb(cons( Exp_reb(Ecall_reb(cons( Exp_id("CONSTANT(STRING(\"\\\\n Unrecognized instruction -> %%d at %%d\\\\n\"),tARRAY(\"43\",tCHAR(NON_CST,NON_VOL,SIGNED)),A(D))") *= Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_24,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))") *= Exp_ev(Int_spec(SIGNED,STD),(funptr)&EV_25,"CONSTANT(INT(\"%s\"),tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))") ),"ECALL(RESIDUALIZED,ROOT(E(\"printf\")),CALL_SIG([],[],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[]),ETA_RETURN_SIG(U,[],[])),[%s],tINT(NON_CST,NON_VOL,SIGNED,STD),A(U))"),"EXP(%s,A(U))") *= Stmt_id("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))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_26,"BLOCK([],[%s],A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_27,"BLOCK([],[%s],A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_28,"BLOCK([],[%s],A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_29,"BLOCK([],[%s],A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_30,"BLOCK([],[%s],A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_31,"BLOCK([],[%s],A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_32,"BLOCK([],[%s],A(U))") *= Stmt_ev((funptr)&EV_33,"EMPTY(A(U))") ),"BLOCK([],[%s],A(U))"),(funptr)&EV_34,"LABEL(\"_continue_loop2_iter%s\",A(S))","BLOCK([],[BLOCK([],[%s],A(U)),LABEL(\"_break_loop2\",A(S))],A(U))") ),"BLOCK([],[%s],A(U))"),Stmt_ev((funptr)&EV_35,"EMPTY(A(U))"),(funptr)&EV_36,"BLOCK([],[%s],A(U))") *= Stmt_id("RETURN_VOID(A(D))") ),"BLOCK([],[%s],A(U))"),"FUNC_DEF(EXTERN,tVOID(NON_CST,NON_VOL),G(\"%s\"),INTERNAL(UNINIT),[],[(FUNC_SIG(CALL_SIG([],[],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[S, D, D, S, S]),ETA_RETURN_SIG(D,[],[])),RETURN_SIG([VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\")))],ALIAS_RETURN_SIG([],STORE([])),BTA_RETURN_SIG(F([],U,D),[D, D]),ETA_CALL_SIG([S],F([],U,D),[VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"mem\"))), 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\"))), MEMBER(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(G(\"inst\")),ROOT(G(\"val\"))), VAR(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(E(\"prg_size\"))), VAR(tARRAY(\"\",tINT(NON_CST,NON_VOL,SIGNED,STD)),ROOT(E(\"stack\")))]))), %s)])"))); return new Exp_reb(Call_reb("_Ginterpret_1",cons( param((funptr)&EV_37) ),0,"CALL(0,G(\"%s\"),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(\"mem\"))), 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(tINT(NON_CST,NON_VOL,SIGNED,STD),ROOT(E(\"prg_size\")))],ALIAS_CALL_SIG(STORE([])),BTA_CALL_SIG([],[S, D, D, S, S]),ETA_RETURN_SIG(D,[],[])),[%s],tVOID(NON_CST,NON_VOL),A(U))"), ""); }