| typedef vector< srp < ge_operand > > lestes::md::instructions::ge_operand_vector__type |
Definition at line 35 of file pi_pi2ge_pi_base.cc.
| typedef set< srp < ge_pi > > lestes::md::instructions::ge_pi_set__type |
Definition at line 37 of file pi_pi2ge_pi.cc.
| typedef set< srp < ge_pi > > lestes::md::instructions::ge_pi_set__type |
Definition at line 37 of file pi_pi2ge_pi_base.cc.
| typedef vector< srp < ge_pi > > lestes::md::instructions::ge_pi_vector__type |
Definition at line 36 of file pi_pi2ge_pi.cc.
| typedef vector< srp< ::lestes::backend_v2::intercode::ge_pi> > lestes::md::instructions::ge_pi_vector__type |
Definition at line 35 of file pi_pi2ge_pi.cc.
| typedef vector< srp < ge_pi > > lestes::md::instructions::ge_pi_vector__type |
Definition at line 36 of file pi_pi2ge_pi_base.cc.
| typedef vector< srp < ge_sp > > lestes::md::instructions::ge_sp_vector__type |
Definition at line 38 of file pi_pi2ge_pi_base.cc.
| typedef list< srp < instruction_group_base > > lestes::md::instructions::instruction_group_base_list__type |
Definition at line 33 of file pi_pi2ge_pi_base.cc.
| typedef list< srp<pi_mem> > lestes::md::instructions::pi_mem_list__type |
Definition at line 33 of file pi_pi2ge_pi.cc.
| typedef map< srp<pi_operand>, srp<ge_operand> > lestes::md::instructions::pi_op2ge_op__type |
Definition at line 41 of file pi_pi2ge_pi_base.cc.
| typedef map< srp<pi_operand>, srp<ge_operand> > lestes::md::instructions::pi_op2ge_op__type |
Definition at line 17 of file pi_operand2ge_operand_base.cc.
| typedef list< srp<pi_operand> > lestes::md::instructions::pi_operand_list__type |
Definition at line 34 of file pi_pi2ge_pi.cc.
| typedef map< srp<pi_sp>, srp<ge_sp> > lestes::md::instructions::pi_sp2ge_sp__type |
Definition at line 42 of file pi_pi2ge_pi_base.cc.
| typedef vector< srp < pi_sp > > lestes::md::instructions::pi_sp_vector__type |
Definition at line 39 of file pi_pi2ge_pi_base.cc.
| typedef vector< srp < tm_instr_op_base > > lestes::md::instructions::tm_instr_op_base_vector__type |
Definition at line 34 of file pi_pi2ge_pi_base.cc.
| typedef map< ulint, srp<ge_operand> > lestes::md::instructions::ulint2ge_operand__type |
Definition at line 40 of file pi_pi2ge_pi_base.cc.
| typedef map<ulint,lstring> lestes::md::instructions::ulint2lstring__type |
Definition at line 32 of file pi_pi2ge_pi.cc.
| typedef map< ulint, srp<tm_instr_op_base> > lestes::md::instructions::ulint2tm_instr_op_base__type |
Definition at line 31 of file pi_pi2ge_pi_base.cc.
| typedef map< ulint, ulint > lestes::md::instructions::ulint2ulint__type |
Definition at line 32 of file pi_pi2ge_pi_base.cc.
| typedef list< ulint > lestes::md::instructions::ulint_list__type |
Definition at line 28 of file pi_pi2ge_pi_base.cc.
| typedef set< ulint > lestes::md::instructions::ulint_set__type |
Definition at line 30 of file pi_pi2ge_pi_base.cc.
| typedef vector< ulint > lestes::md::instructions::ulint_vector__type |
Definition at line 29 of file pi_pi2ge_pi_base.cc.
Operand ids within instruction templates.
PIN_X id represents input operands that template receives from source pi-level pseudoinstruction. POUT_X id represents output operand that template receives from source pi-level pseudoinstruction. The rest of ids are operands defined and passed among ge-level pseudoinstructions within the template itself.
Definition at line 24 of file instruction_group.mdg.hh.
00024 { 00025 PIN_1, 00026 PIN_2, 00027 PIN_3, 00028 PIN_4, 00029 POUT_1, 00030 POUT_2, 00031 POUT_3, 00032 POUT_4, 00033 ADD_O_2, 00034 SUB_O_2, 00035 MUL_O_2, 00036 MUL_O_3, 00037 CBW_O_1, 00038 DIV_O_2, 00039 DIV_O_3, 00040 CWD_O_1, 00041 CWD_O_2, 00042 NULL_O_1, 00043 DIV_O_1, 00044 NEG_O_2, 00045 CVT_O_1, 00046 SHL_O_2, 00047 SHR_O_2, 00048 SAL_O_2, 00049 SAR_O_2, 00050 AND_O_2, 00051 OR_O_2, 00052 XOR_O_2, 00053 CMP_O_1, 00054 AND_O_1, 00055 LAHF_O_1, 00056 MOV_O_1, 00057 IROPT_TERMINATOR 00058 };
tm_instr_base flags.
Definition at line 54 of file tm_instr_base.g.hh.
00054 { 00055 IF_JUMP=1, 00056 IF_LOAD=2, 00057 IF_STORE=4, 00058 IF_SYS=8, 00059 IF_COPY=16 00060 };
Ids of pi_pi2ge_pi_templates.
Definition at line 20 of file pi_pi2ge_pi_template.mdg.hh.
00020 { 00021 TEM_ADD_1, //0 00022 TEM_SUB_1, //1 00023 TEM_MUL_1, //2 00024 TEM_MUL_2, //3 00025 TEM_DIV_1, //4 00026 TEM_DIV_2, //5 00027 TEM_DIV_3, //6 00028 TEM_MOD_1, //7 00029 TEM_MOD_2, //8 00030 TEM_MOD_3, //9 00031 TEM_REM_1, //10 00032 TEM_REM_2, //11 00033 TEM_REM_3, //12 00034 TEM_NEG_1, //13 00035 TEM_GAT_1, //14 00036 TEM_SHL_1, //15 00037 TEM_SHR_1, //16 00038 TEM_SAL_1, //17 00039 TEM_SAR_1, //18 00040 TEM_BAND_1, //19 00041 TEM_BOR_1, //20 00042 TEM_BXOR_1, //21 00043 TEM_BNOT_1, //22 00044 TEM_LAND_1, //23 00045 TEM_LOR_1, //24 00046 TEM_LXOR_1, //25 00047 TEM_LNOT_1, //26 00048 TEM_CVT_1, //27 00049 TEM_CVT_2, //28 00050 TEM_CVT_3, //29 00051 TEM_MOV_1, //30 00052 TEM_ST_1, //31 00053 TEM_STV_1, //32 00054 TEM_STI_1, //33 00055 TEM_STIV_1, //34 00056 TEM_STP_1, //35 00057 TEM_STPV_1, //36 00058 TEM_LD_1, //37 00059 TEM_LDV_1, //38 00060 TEM_LDI_1, //39 00061 TEM_LDP_1, //40 00062 TEM_LDPV_1, //41 00063 TEM_LDA_1, //42 00064 TEM_CMP_1, //43 00065 TEM_BA_1, //44 00066 TEM_BN_1, //45 00067 TEM_BT_1, //46 00068 TEM_BF_1, //47 00069 TEM_BG_1, //48 00070 TEM_BL_1, //49 00071 TEM_BE_1, //50 00072 TEM_BNG_1, //51 00073 TEM_BNL_1, //52 00074 TEM_BNE_1, //53 00075 TEM_SBG_1, //54 00076 TEM_SBL_1, //55 00077 TEM_SBE_1, //56 00078 TEM_SBNG_1, //57 00079 TEM_SBNL_1, //58 00080 TEM_SBNE_1, //59 00081 TEM_REGISTER_MOVE_1, //60 00082 TEM_REGISTER_MOVE_2, //61 00083 TEM_REGISTER_MOVE_3, //62 00084 TEM_REGISTER_MOVE_4, //63 00085 TEM_REGISTER_MOVE_5 //64 00086 };
Ids of target machine instructions.
Definition at line 21 of file tm_instr.mdg.hh.
00021 { 00022 NO_INSTRUCTION_ID, 00023 INSTRUCTION_MOV__1, //1 00024 INSTRUCTION_MOV__2, //2 00025 INSTRUCTION_MOV__3, //3 00026 INSTRUCTION_MOV__4, //4 00027 INSTRUCTION_MOV__5, //5 00028 INSTRUCTION_MOV__7, //6 00029 INSTRUCTION_MOV__71, //7 00030 INSTRUCTION_MOV__8, //8 00031 INSTRUCTION_SYSMOV__9, //9 00032 INSTRUCTION_SYSMOV__10, //10 00033 INSTRUCTION_SYSMOV__11, //11 00034 INSTRUCTION_SAHF__1, //12 00035 INSTRUCTION_LAHF__1, //13 00036 INSTRUCTION_ADD__1, //14 00037 INSTRUCTION_ADD__11, //15 00038 INSTRUCTION_ADD__12, //16 00039 INSTRUCTION_ADD__13, //17 00040 INSTRUCTION_ADD__14, //18 00041 INSTRUCTION_SUB__1, //19 00042 INSTRUCTION_SUB__11, //20 00043 INSTRUCTION_SUB__12, //21 00044 INSTRUCTION_IMUL__1, //22 00045 INSTRUCTION_IMUL__2, //23 00046 INSTRUCTION_IMUL__21, //24 00047 INSTRUCTION_IMUL__22, //25 00048 INSTRUCTION_IMUL__23, //26 00049 INSTRUCTION_IMUL__24, //27 00050 INSTRUCTION_MUL__1, //28 00051 INSTRUCTION_MUL__11, //29 00052 INSTRUCTION_MUL__12, //30 00053 INSTRUCTION_MUL__2, //31 00054 INSTRUCTION_MUL__21, //32 00055 INSTRUCTION_MUL__22, //33 00056 INSTRUCTION_MUL__3, //34 00057 INSTRUCTION_MUL__31, //35 00058 INSTRUCTION_MUL__32, //36 00059 INSTRUCTION_CBW__1, //37 00060 INSTRUCTION_CWD__1, //38 00061 INSTRUCTION_CDQ__1, //39 00062 INSTRUCTION_DIV__1, //40 00063 INSTRUCTION_DIV__11, //41 00064 INSTRUCTION_DIV__2, //42 00065 INSTRUCTION_DIV__21, //43 00066 INSTRUCTION_DIV__3, //44 00067 INSTRUCTION_DIV__31, //45 00068 INSTRUCTION_NULLAH__1, //46 00069 INSTRUCTION_NULLDX__1, //47 00070 INSTRUCTION_NULLEDX__1, //48 00071 INSTRUCTION_IDIV__1, //49 00072 INSTRUCTION_IDIV__11, //50 00073 INSTRUCTION_IDIV__2, //51 00074 INSTRUCTION_IDIV__21, //52 00075 INSTRUCTION_IDIV__3, //53 00076 INSTRUCTION_IDIV__31, //54 00077 INSTRUCTION_NEG__1, //55 00078 INSTRUCTION_SHL__1, //56 00079 INSTRUCTION_SHR__1, //57 00080 INSTRUCTION_SAL__1, //58 00081 INSTRUCTION_SAR__1, //59 00082 INSTRUCTION_AND__1, //60 00083 INSTRUCTION_AND__11, //61 00084 INSTRUCTION_AND__12, //62 00085 INSTRUCTION_AND__13, //63 00086 INSTRUCTION_AND__14, //64 00087 INSTRUCTION_AND__2, //65 00088 INSTRUCTION_OR__1, //66 00089 INSTRUCTION_OR__11, //67 00090 INSTRUCTION_OR__12, //68 00091 INSTRUCTION_OR__13, //69 00092 INSTRUCTION_OR__14, //70 00093 INSTRUCTION_XOR__1, //71 00094 INSTRUCTION_XOR__11, //72 00095 INSTRUCTION_XOR__12, //73 00096 INSTRUCTION_XOR__13, //74 00097 INSTRUCTION_XOR__14, //75 00098 INSTRUCTION_XOR__2, //76 00099 INSTRUCTION_NOT__1, //77 00100 INSTRUCTION_CONVERT__1, //78 00101 INSTRUCTION_CONVERT__5, //79 00102 INSTRUCTION_CONVERT__2, //80 00103 INSTRUCTION_CONVERT__3, //81 00104 INSTRUCTION_MOVZX__1, //82 00105 INSTRUCTION_MOVZX__2, //83 00106 INSTRUCTION_MOVZX__3, //84 00107 INSTRUCTION_MOVZX__4, //85 00108 INSTRUCTION_MOVZX__5, //86 00109 INSTRUCTION_MOVZX__6, //87 00110 INSTRUCTION_MOVSX__1, //88 00111 INSTRUCTION_MOVSX__11, //89 00112 INSTRUCTION_MOVSX__2, //90 00113 INSTRUCTION_MOVSX__21, //91 00114 INSTRUCTION_LEA__1, //92 00115 INSTRUCTION_CMP__1, //93 00116 INSTRUCTION_CMP__2, //94 00117 INSTRUCTION_CMP__21, //95 00118 INSTRUCTION_CMP__22, //96 00119 INSTRUCTION_CMP__23, //97 00120 INSTRUCTION_CMP__24, //98 00121 INSTRUCTION_JMP__1, //99 00122 INSTRUCTION_JA__1, //100 00123 INSTRUCTION_JZ__1, //101 00124 INSTRUCTION_JG__1, //102 00125 INSTRUCTION_JL__1, //103 00126 INSTRUCTION_JB__1, //104 00127 INSTRUCTION_JE__1, //105 00128 INSTRUCTION_JNG__1, //106 00129 INSTRUCTION_JNA__1, //107 00130 INSTRUCTION_JNL__1, //108 00131 INSTRUCTION_JNB__1, //109 00132 INSTRUCTION_JNE__1, //110 00133 INSTRUCTION_SETG__1, //111 00134 INSTRUCTION_SETA__1, //112 00135 INSTRUCTION_SETL__1, //113 00136 INSTRUCTION_SETB__1, //114 00137 INSTRUCTION_SETE__1, //115 00138 INSTRUCTION_SETNG__1, //116 00139 INSTRUCTION_SETNA__1, //117 00140 INSTRUCTION_SETNL__1, //118 00141 INSTRUCTION_SETNB__1, //119 00142 INSTRUCTION_SETNE__1, //120 00143 INSTRUCTION_SETNZ__1, //121 00144 INSTRUCTION_PUSH__1, //122 00145 INSTRUCTION_PUSH__2, //123 00146 INSTRUCTION_PUSH__3, //124 00147 INSTRUCTION_POP__1, //125 00148 INSTRUCTION_NOP__1, //126 00149 INSTRUCTION_ESPADD__1, //127 00150 INSTRUCTION_BACKUPESP__1, //128 00151 INSTRUCTION_CALL__1, //129 00152 INSTRUCTION_PROLOGUE__1, //130 00153 INSTRUCTION_EPILOGUE__1, //131 00154 INSTRUCTION_LEAVE__1, //132 00155 INSTRUCTION_RET__1, //133 00156 TIIT_TERMINATOR 00157 };
Id of instruction operand.
Operand is referenced by its id within instruction group.
| NO_OPERAND_ID | |
| I_1 | |
| I_2 | |
| I_3 | |
| I_4 | |
| I_5 | |
| I_6 | |
| I_7 | |
| I_8 | |
| I_9 | |
| O_1 | |
| O_2 | |
| O_3 | |
| O_4 | |
| O_5 | |
| O_6 | |
| O_7 | |
| O_8 | |
| O_9 | |
| TIOIT_TERMINATOR |
Definition at line 165 of file tm_instr.mdg.hh.
00165 { 00166 NO_OPERAND_ID, 00167 I_1, 00168 I_2, 00169 I_3, 00170 I_4, 00171 I_5, 00172 I_6, 00173 I_7, 00174 I_8, 00175 I_9, 00176 O_1, 00177 O_2, 00178 O_3, 00179 O_4, 00180 O_5, 00181 O_6, 00182 O_7, 00183 O_8, 00184 O_9, 00185 TIOIT_TERMINATOR 00186 };
Ids of user defined properties.
Definition at line 191 of file tm_instr.mdg.hh.
00191 { 00192 NO_PROPERTY_KEY, 00193 PROPERTY_TEST_SIGNED, 00194 TIPKT_TERMINATOR 00195 };
| lestes::md::instructions::declare_logger | ( | log | ) |
| lestes::md::instructions::declare_logger | ( | log1 | ) |
| lestes::md::instructions::initialize_logger | ( | log | , | |
| "pi_pi2ge_pi" | , | |||
| md_logger | ||||
| ) |
| lestes::md::instructions::initialize_logger | ( | log1 | , | |
| "pi_pi2ge_pi_base" | , | |||
| md_logger | ||||
| ) |
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_ADD_1 | ( | ) |
Definition at line 16 of file pi_pi2ge_pi_template.mdg.cc.
References ADD_O_2, I_1, I_2, INSTRUCTION_ADD__1, INSTRUCTION_ADD__11, INSTRUCTION_ADD__12, INSTRUCTION_ADD__13, INSTRUCTION_ADD__14, O_1, O_2, PIN_1, PIN_2, POUT_1, and TEM_ADD_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00016 { 00017 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00018 00019 ptr<vector<ulint> > instrs; 00020 ptr<vector<ulint> > in_pids; 00021 ptr<vector<ulint> > out_pids; 00022 ptr<vector<ulint> > in_refs; 00023 ptr<vector<ulint> > out_refs; 00024 00025 instrs = vector<ulint>::create(); 00026 in_pids = vector<ulint>::create(); 00027 out_pids = vector<ulint>::create(); 00028 in_refs = vector<ulint>::create(); 00029 out_refs = vector<ulint>::create(); 00030 00031 instrs->push_back(INSTRUCTION_ADD__1); 00032 instrs->push_back(INSTRUCTION_ADD__11); 00033 instrs->push_back(INSTRUCTION_ADD__12); 00034 instrs->push_back(INSTRUCTION_ADD__13); 00035 instrs->push_back(INSTRUCTION_ADD__14); 00036 00037 //input operands 00038 in_pids->push_back(PIN_1); 00039 in_refs->push_back(I_1); 00040 in_pids->push_back(PIN_2); 00041 in_refs->push_back(I_2); 00042 00043 //output operands 00044 out_pids->push_back(POUT_1); 00045 out_refs->push_back(O_1); 00046 out_pids->push_back(ADD_O_2); 00047 out_refs->push_back(O_2); 00048 00049 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00050 00051 00052 return pi_pi2ge_pi_template::create(TEM_ADD_1,instr_patts); 00053 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BA_1 | ( | ) |
Definition at line 1834 of file pi_pi2ge_pi_template.mdg.cc.
References INSTRUCTION_JMP__1, and TEM_BA_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01834 { 01835 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01836 01837 ptr<vector<ulint> > instrs; 01838 ptr<vector<ulint> > in_pids; 01839 ptr<vector<ulint> > out_pids; 01840 ptr<vector<ulint> > in_refs; 01841 ptr<vector<ulint> > out_refs; 01842 01843 instrs = vector<ulint>::create(); 01844 in_pids = vector<ulint>::create(); 01845 out_pids = vector<ulint>::create(); 01846 in_refs = vector<ulint>::create(); 01847 out_refs = vector<ulint>::create(); 01848 01849 instrs->push_back(INSTRUCTION_JMP__1); 01850 01851 //input operands 01852 01853 //output operands 01854 01855 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01856 01857 01858 return pi_pi2ge_pi_template::create(TEM_BA_1,instr_patts); 01859 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BAND_1 | ( | ) |
Definition at line 985 of file pi_pi2ge_pi_template.mdg.cc.
References AND_O_2, I_1, I_2, INSTRUCTION_AND__1, O_1, O_2, PIN_1, PIN_2, POUT_1, and TEM_BAND_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00985 { 00986 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00987 00988 ptr<vector<ulint> > instrs; 00989 ptr<vector<ulint> > in_pids; 00990 ptr<vector<ulint> > out_pids; 00991 ptr<vector<ulint> > in_refs; 00992 ptr<vector<ulint> > out_refs; 00993 00994 instrs = vector<ulint>::create(); 00995 in_pids = vector<ulint>::create(); 00996 out_pids = vector<ulint>::create(); 00997 in_refs = vector<ulint>::create(); 00998 out_refs = vector<ulint>::create(); 00999 01000 instrs->push_back(INSTRUCTION_AND__1); 01001 01002 //input operands 01003 in_pids->push_back(PIN_1); 01004 in_refs->push_back(I_1); 01005 in_pids->push_back(PIN_2); 01006 in_refs->push_back(I_2); 01007 01008 //output operands 01009 out_pids->push_back(POUT_1); 01010 out_refs->push_back(O_1); 01011 out_pids->push_back(AND_O_2); 01012 out_refs->push_back(O_2); 01013 01014 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01015 01016 01017 return pi_pi2ge_pi_template::create(TEM_BAND_1,instr_patts); 01018 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BE_1 | ( | ) |
Definition at line 2044 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_JE__1, PIN_1, and TEM_BE_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02044 { 02045 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02046 02047 ptr<vector<ulint> > instrs; 02048 ptr<vector<ulint> > in_pids; 02049 ptr<vector<ulint> > out_pids; 02050 ptr<vector<ulint> > in_refs; 02051 ptr<vector<ulint> > out_refs; 02052 02053 instrs = vector<ulint>::create(); 02054 in_pids = vector<ulint>::create(); 02055 out_pids = vector<ulint>::create(); 02056 in_refs = vector<ulint>::create(); 02057 out_refs = vector<ulint>::create(); 02058 02059 instrs->push_back(INSTRUCTION_JE__1); 02060 02061 //input operands 02062 in_pids->push_back(PIN_1); 02063 in_refs->push_back(I_1); 02064 02065 //output operands 02066 02067 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02068 02069 02070 return pi_pi2ge_pi_template::create(TEM_BE_1,instr_patts); 02071 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BF_1 | ( | ) |
Definition at line 1936 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, INSTRUCTION_CMP__1, INSTRUCTION_JZ__1, O_1, PIN_1, and TEM_BF_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01936 { 01937 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01938 01939 ptr<vector<ulint> > instrs; 01940 ptr<vector<ulint> > in_pids; 01941 ptr<vector<ulint> > out_pids; 01942 ptr<vector<ulint> > in_refs; 01943 ptr<vector<ulint> > out_refs; 01944 01945 instrs = vector<ulint>::create(); 01946 in_pids = vector<ulint>::create(); 01947 out_pids = vector<ulint>::create(); 01948 in_refs = vector<ulint>::create(); 01949 out_refs = vector<ulint>::create(); 01950 01951 instrs->push_back(INSTRUCTION_CMP__1); 01952 01953 //input operands 01954 in_pids->push_back(PIN_1); 01955 in_refs->push_back(I_1); 01956 01957 //output operands 01958 out_pids->push_back(CMP_O_1); 01959 out_refs->push_back(O_1); 01960 01961 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01962 01963 01964 instrs = vector<ulint>::create(); 01965 in_pids = vector<ulint>::create(); 01966 out_pids = vector<ulint>::create(); 01967 in_refs = vector<ulint>::create(); 01968 out_refs = vector<ulint>::create(); 01969 01970 instrs->push_back(INSTRUCTION_JZ__1); 01971 01972 //input operands 01973 in_pids->push_back(CMP_O_1); 01974 in_refs->push_back(I_1); 01975 01976 //output operands 01977 01978 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01979 01980 01981 return pi_pi2ge_pi_template::create(TEM_BF_1,instr_patts); 01982 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BG_1 | ( | ) |
Definition at line 1984 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_JA__1, INSTRUCTION_JG__1, PIN_1, and TEM_BG_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01984 { 01985 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01986 01987 ptr<vector<ulint> > instrs; 01988 ptr<vector<ulint> > in_pids; 01989 ptr<vector<ulint> > out_pids; 01990 ptr<vector<ulint> > in_refs; 01991 ptr<vector<ulint> > out_refs; 01992 01993 instrs = vector<ulint>::create(); 01994 in_pids = vector<ulint>::create(); 01995 out_pids = vector<ulint>::create(); 01996 in_refs = vector<ulint>::create(); 01997 out_refs = vector<ulint>::create(); 01998 01999 instrs->push_back(INSTRUCTION_JG__1); 02000 instrs->push_back(INSTRUCTION_JA__1); 02001 02002 //input operands 02003 in_pids->push_back(PIN_1); 02004 in_refs->push_back(I_1); 02005 02006 //output operands 02007 02008 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02009 02010 02011 return pi_pi2ge_pi_template::create(TEM_BG_1,instr_patts); 02012 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BL_1 | ( | ) |
Definition at line 2014 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_JB__1, INSTRUCTION_JL__1, PIN_1, and TEM_BL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02014 { 02015 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02016 02017 ptr<vector<ulint> > instrs; 02018 ptr<vector<ulint> > in_pids; 02019 ptr<vector<ulint> > out_pids; 02020 ptr<vector<ulint> > in_refs; 02021 ptr<vector<ulint> > out_refs; 02022 02023 instrs = vector<ulint>::create(); 02024 in_pids = vector<ulint>::create(); 02025 out_pids = vector<ulint>::create(); 02026 in_refs = vector<ulint>::create(); 02027 out_refs = vector<ulint>::create(); 02028 02029 instrs->push_back(INSTRUCTION_JL__1); 02030 instrs->push_back(INSTRUCTION_JB__1); 02031 02032 //input operands 02033 in_pids->push_back(PIN_1); 02034 in_refs->push_back(I_1); 02035 02036 //output operands 02037 02038 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02039 02040 02041 return pi_pi2ge_pi_template::create(TEM_BL_1,instr_patts); 02042 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BN_1 | ( | ) |
Definition at line 1861 of file pi_pi2ge_pi_template.mdg.cc.
References INSTRUCTION_NOP__1, and TEM_BN_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01861 { 01862 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01863 01864 ptr<vector<ulint> > instrs; 01865 ptr<vector<ulint> > in_pids; 01866 ptr<vector<ulint> > out_pids; 01867 ptr<vector<ulint> > in_refs; 01868 ptr<vector<ulint> > out_refs; 01869 01870 instrs = vector<ulint>::create(); 01871 in_pids = vector<ulint>::create(); 01872 out_pids = vector<ulint>::create(); 01873 in_refs = vector<ulint>::create(); 01874 out_refs = vector<ulint>::create(); 01875 01876 instrs->push_back(INSTRUCTION_NOP__1); 01877 01878 //input operands 01879 01880 //output operands 01881 01882 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01883 01884 01885 return pi_pi2ge_pi_template::create(TEM_BN_1,instr_patts); 01886 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BNE_1 | ( | ) |
Definition at line 2133 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_JNE__1, PIN_1, and TEM_BNE_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02133 { 02134 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02135 02136 ptr<vector<ulint> > instrs; 02137 ptr<vector<ulint> > in_pids; 02138 ptr<vector<ulint> > out_pids; 02139 ptr<vector<ulint> > in_refs; 02140 ptr<vector<ulint> > out_refs; 02141 02142 instrs = vector<ulint>::create(); 02143 in_pids = vector<ulint>::create(); 02144 out_pids = vector<ulint>::create(); 02145 in_refs = vector<ulint>::create(); 02146 out_refs = vector<ulint>::create(); 02147 02148 instrs->push_back(INSTRUCTION_JNE__1); 02149 02150 //input operands 02151 in_pids->push_back(PIN_1); 02152 in_refs->push_back(I_1); 02153 02154 //output operands 02155 02156 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02157 02158 02159 return pi_pi2ge_pi_template::create(TEM_BNE_1,instr_patts); 02160 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BNG_1 | ( | ) |
Definition at line 2073 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_JNA__1, INSTRUCTION_JNG__1, PIN_1, and TEM_BNG_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02073 { 02074 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02075 02076 ptr<vector<ulint> > instrs; 02077 ptr<vector<ulint> > in_pids; 02078 ptr<vector<ulint> > out_pids; 02079 ptr<vector<ulint> > in_refs; 02080 ptr<vector<ulint> > out_refs; 02081 02082 instrs = vector<ulint>::create(); 02083 in_pids = vector<ulint>::create(); 02084 out_pids = vector<ulint>::create(); 02085 in_refs = vector<ulint>::create(); 02086 out_refs = vector<ulint>::create(); 02087 02088 instrs->push_back(INSTRUCTION_JNG__1); 02089 instrs->push_back(INSTRUCTION_JNA__1); 02090 02091 //input operands 02092 in_pids->push_back(PIN_1); 02093 in_refs->push_back(I_1); 02094 02095 //output operands 02096 02097 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02098 02099 02100 return pi_pi2ge_pi_template::create(TEM_BNG_1,instr_patts); 02101 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BNL_1 | ( | ) |
Definition at line 2103 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_JNB__1, INSTRUCTION_JNL__1, PIN_1, and TEM_BNL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02103 { 02104 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02105 02106 ptr<vector<ulint> > instrs; 02107 ptr<vector<ulint> > in_pids; 02108 ptr<vector<ulint> > out_pids; 02109 ptr<vector<ulint> > in_refs; 02110 ptr<vector<ulint> > out_refs; 02111 02112 instrs = vector<ulint>::create(); 02113 in_pids = vector<ulint>::create(); 02114 out_pids = vector<ulint>::create(); 02115 in_refs = vector<ulint>::create(); 02116 out_refs = vector<ulint>::create(); 02117 02118 instrs->push_back(INSTRUCTION_JNL__1); 02119 instrs->push_back(INSTRUCTION_JNB__1); 02120 02121 //input operands 02122 in_pids->push_back(PIN_1); 02123 in_refs->push_back(I_1); 02124 02125 //output operands 02126 02127 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02128 02129 02130 return pi_pi2ge_pi_template::create(TEM_BNL_1,instr_patts); 02131 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BNOT_1 | ( | ) |
Definition at line 1090 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_NOT__1, O_1, PIN_1, POUT_1, and TEM_BNOT_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01090 { 01091 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01092 01093 ptr<vector<ulint> > instrs; 01094 ptr<vector<ulint> > in_pids; 01095 ptr<vector<ulint> > out_pids; 01096 ptr<vector<ulint> > in_refs; 01097 ptr<vector<ulint> > out_refs; 01098 01099 instrs = vector<ulint>::create(); 01100 in_pids = vector<ulint>::create(); 01101 out_pids = vector<ulint>::create(); 01102 in_refs = vector<ulint>::create(); 01103 out_refs = vector<ulint>::create(); 01104 01105 instrs->push_back(INSTRUCTION_NOT__1); 01106 01107 //input operands 01108 in_pids->push_back(PIN_1); 01109 in_refs->push_back(I_1); 01110 01111 //output operands 01112 out_pids->push_back(POUT_1); 01113 out_refs->push_back(O_1); 01114 01115 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01116 01117 01118 return pi_pi2ge_pi_template::create(TEM_BNOT_1,instr_patts); 01119 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BOR_1 | ( | ) |
Definition at line 1020 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_OR__1, O_1, O_2, OR_O_2, PIN_1, PIN_2, POUT_1, and TEM_BOR_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01020 { 01021 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01022 01023 ptr<vector<ulint> > instrs; 01024 ptr<vector<ulint> > in_pids; 01025 ptr<vector<ulint> > out_pids; 01026 ptr<vector<ulint> > in_refs; 01027 ptr<vector<ulint> > out_refs; 01028 01029 instrs = vector<ulint>::create(); 01030 in_pids = vector<ulint>::create(); 01031 out_pids = vector<ulint>::create(); 01032 in_refs = vector<ulint>::create(); 01033 out_refs = vector<ulint>::create(); 01034 01035 instrs->push_back(INSTRUCTION_OR__1); 01036 01037 //input operands 01038 in_pids->push_back(PIN_1); 01039 in_refs->push_back(I_1); 01040 in_pids->push_back(PIN_2); 01041 in_refs->push_back(I_2); 01042 01043 //output operands 01044 out_pids->push_back(POUT_1); 01045 out_refs->push_back(O_1); 01046 out_pids->push_back(OR_O_2); 01047 out_refs->push_back(O_2); 01048 01049 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01050 01051 01052 return pi_pi2ge_pi_template::create(TEM_BOR_1,instr_patts); 01053 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BT_1 | ( | ) |
Definition at line 1888 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, INSTRUCTION_CMP__1, INSTRUCTION_JA__1, O_1, PIN_1, and TEM_BT_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01888 { 01889 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01890 01891 ptr<vector<ulint> > instrs; 01892 ptr<vector<ulint> > in_pids; 01893 ptr<vector<ulint> > out_pids; 01894 ptr<vector<ulint> > in_refs; 01895 ptr<vector<ulint> > out_refs; 01896 01897 instrs = vector<ulint>::create(); 01898 in_pids = vector<ulint>::create(); 01899 out_pids = vector<ulint>::create(); 01900 in_refs = vector<ulint>::create(); 01901 out_refs = vector<ulint>::create(); 01902 01903 instrs->push_back(INSTRUCTION_CMP__1); 01904 01905 //input operands 01906 in_pids->push_back(PIN_1); 01907 in_refs->push_back(I_1); 01908 01909 //output operands 01910 out_pids->push_back(CMP_O_1); 01911 out_refs->push_back(O_1); 01912 01913 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01914 01915 01916 instrs = vector<ulint>::create(); 01917 in_pids = vector<ulint>::create(); 01918 out_pids = vector<ulint>::create(); 01919 in_refs = vector<ulint>::create(); 01920 out_refs = vector<ulint>::create(); 01921 01922 instrs->push_back(INSTRUCTION_JA__1); 01923 01924 //input operands 01925 in_pids->push_back(CMP_O_1); 01926 in_refs->push_back(I_1); 01927 01928 //output operands 01929 01930 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01931 01932 01933 return pi_pi2ge_pi_template::create(TEM_BT_1,instr_patts); 01934 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_BXOR_1 | ( | ) |
Definition at line 1055 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_XOR__1, O_1, O_2, PIN_1, PIN_2, POUT_1, TEM_BXOR_1, and XOR_O_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01055 { 01056 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01057 01058 ptr<vector<ulint> > instrs; 01059 ptr<vector<ulint> > in_pids; 01060 ptr<vector<ulint> > out_pids; 01061 ptr<vector<ulint> > in_refs; 01062 ptr<vector<ulint> > out_refs; 01063 01064 instrs = vector<ulint>::create(); 01065 in_pids = vector<ulint>::create(); 01066 out_pids = vector<ulint>::create(); 01067 in_refs = vector<ulint>::create(); 01068 out_refs = vector<ulint>::create(); 01069 01070 instrs->push_back(INSTRUCTION_XOR__1); 01071 01072 //input operands 01073 in_pids->push_back(PIN_1); 01074 in_refs->push_back(I_1); 01075 in_pids->push_back(PIN_2); 01076 in_refs->push_back(I_2); 01077 01078 //output operands 01079 out_pids->push_back(POUT_1); 01080 out_refs->push_back(O_1); 01081 out_pids->push_back(XOR_O_2); 01082 out_refs->push_back(O_2); 01083 01084 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01085 01086 01087 return pi_pi2ge_pi_template::create(TEM_BXOR_1,instr_patts); 01088 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_CMP_1 | ( | ) |
Definition at line 1801 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_CMP__2, O_1, PIN_1, PIN_2, POUT_1, and TEM_CMP_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01801 { 01802 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01803 01804 ptr<vector<ulint> > instrs; 01805 ptr<vector<ulint> > in_pids; 01806 ptr<vector<ulint> > out_pids; 01807 ptr<vector<ulint> > in_refs; 01808 ptr<vector<ulint> > out_refs; 01809 01810 instrs = vector<ulint>::create(); 01811 in_pids = vector<ulint>::create(); 01812 out_pids = vector<ulint>::create(); 01813 in_refs = vector<ulint>::create(); 01814 out_refs = vector<ulint>::create(); 01815 01816 instrs->push_back(INSTRUCTION_CMP__2); 01817 01818 //input operands 01819 in_pids->push_back(PIN_1); 01820 in_refs->push_back(I_1); 01821 in_pids->push_back(PIN_2); 01822 in_refs->push_back(I_2); 01823 01824 //output operands 01825 out_pids->push_back(POUT_1); 01826 out_refs->push_back(O_1); 01827 01828 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01829 01830 01831 return pi_pi2ge_pi_template::create(TEM_CMP_1,instr_patts); 01832 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_CVT_1 | ( | ) |
Definition at line 1259 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_CONVERT__1, INSTRUCTION_CONVERT__2, INSTRUCTION_CONVERT__3, INSTRUCTION_CONVERT__5, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, PIN_1, POUT_1, and TEM_CVT_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01259 { 01260 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01261 01262 ptr<vector<ulint> > instrs; 01263 ptr<vector<ulint> > in_pids; 01264 ptr<vector<ulint> > out_pids; 01265 ptr<vector<ulint> > in_refs; 01266 ptr<vector<ulint> > out_refs; 01267 01268 instrs = vector<ulint>::create(); 01269 in_pids = vector<ulint>::create(); 01270 out_pids = vector<ulint>::create(); 01271 in_refs = vector<ulint>::create(); 01272 out_refs = vector<ulint>::create(); 01273 01274 instrs->push_back(INSTRUCTION_CONVERT__1); 01275 instrs->push_back(INSTRUCTION_CONVERT__5); 01276 instrs->push_back(INSTRUCTION_CONVERT__2); 01277 instrs->push_back(INSTRUCTION_CONVERT__3); 01278 instrs->push_back(INSTRUCTION_MOVZX__1); 01279 instrs->push_back(INSTRUCTION_MOVZX__2); 01280 instrs->push_back(INSTRUCTION_MOVZX__3); 01281 instrs->push_back(INSTRUCTION_MOVZX__4); 01282 instrs->push_back(INSTRUCTION_MOVZX__5); 01283 instrs->push_back(INSTRUCTION_MOVZX__6); 01284 instrs->push_back(INSTRUCTION_MOVSX__1); 01285 instrs->push_back(INSTRUCTION_MOVSX__11); 01286 instrs->push_back(INSTRUCTION_MOVSX__2); 01287 instrs->push_back(INSTRUCTION_MOVSX__21); 01288 01289 //input operands 01290 in_pids->push_back(PIN_1); 01291 in_refs->push_back(I_1); 01292 01293 //output operands 01294 out_pids->push_back(POUT_1); 01295 out_refs->push_back(O_1); 01296 01297 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01298 01299 01300 return pi_pi2ge_pi_template::create(TEM_CVT_1,instr_patts); 01301 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_CVT_2 | ( | ) |
Definition at line 1303 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, INSTRUCTION_CMP__1, INSTRUCTION_SETNZ__1, O_1, PIN_1, POUT_1, and TEM_CVT_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01303 { 01304 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01305 01306 ptr<vector<ulint> > instrs; 01307 ptr<vector<ulint> > in_pids; 01308 ptr<vector<ulint> > out_pids; 01309 ptr<vector<ulint> > in_refs; 01310 ptr<vector<ulint> > out_refs; 01311 01312 instrs = vector<ulint>::create(); 01313 in_pids = vector<ulint>::create(); 01314 out_pids = vector<ulint>::create(); 01315 in_refs = vector<ulint>::create(); 01316 out_refs = vector<ulint>::create(); 01317 01318 instrs->push_back(INSTRUCTION_CMP__1); 01319 01320 //input operands 01321 in_pids->push_back(PIN_1); 01322 in_refs->push_back(I_1); 01323 01324 //output operands 01325 out_pids->push_back(CMP_O_1); 01326 out_refs->push_back(O_1); 01327 01328 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01329 01330 01331 instrs = vector<ulint>::create(); 01332 in_pids = vector<ulint>::create(); 01333 out_pids = vector<ulint>::create(); 01334 in_refs = vector<ulint>::create(); 01335 out_refs = vector<ulint>::create(); 01336 01337 instrs->push_back(INSTRUCTION_SETNZ__1); 01338 01339 //input operands 01340 in_pids->push_back(CMP_O_1); 01341 in_refs->push_back(I_1); 01342 01343 //output operands 01344 out_pids->push_back(POUT_1); 01345 out_refs->push_back(O_1); 01346 01347 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01348 01349 01350 return pi_pi2ge_pi_template::create(TEM_CVT_2,instr_patts); 01351 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_CVT_3 | ( | ) |
Definition at line 1353 of file pi_pi2ge_pi_template.mdg.cc.
References AND_O_1, I_1, INSTRUCTION_AND__2, O_1, O_2, PIN_1, POUT_1, and TEM_CVT_3.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01353 { 01354 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01355 01356 ptr<vector<ulint> > instrs; 01357 ptr<vector<ulint> > in_pids; 01358 ptr<vector<ulint> > out_pids; 01359 ptr<vector<ulint> > in_refs; 01360 ptr<vector<ulint> > out_refs; 01361 01362 instrs = vector<ulint>::create(); 01363 in_pids = vector<ulint>::create(); 01364 out_pids = vector<ulint>::create(); 01365 in_refs = vector<ulint>::create(); 01366 out_refs = vector<ulint>::create(); 01367 01368 instrs->push_back(INSTRUCTION_AND__2); 01369 01370 //input operands 01371 in_pids->push_back(PIN_1); 01372 in_refs->push_back(I_1); 01373 01374 //output operands 01375 out_pids->push_back(POUT_1); 01376 out_refs->push_back(O_1); 01377 out_pids->push_back(AND_O_1); 01378 out_refs->push_back(O_2); 01379 01380 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01381 01382 01383 return pi_pi2ge_pi_template::create(TEM_CVT_3,instr_patts); 01384 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_DIV_1 | ( | ) |
Definition at line 171 of file pi_pi2ge_pi_template.mdg.cc.
References CBW_O_1, DIV_O_2, DIV_O_3, I_1, I_2, INSTRUCTION_CBW__1, INSTRUCTION_IDIV__1, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_DIV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00171 { 00172 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00173 00174 ptr<vector<ulint> > instrs; 00175 ptr<vector<ulint> > in_pids; 00176 ptr<vector<ulint> > out_pids; 00177 ptr<vector<ulint> > in_refs; 00178 ptr<vector<ulint> > out_refs; 00179 00180 instrs = vector<ulint>::create(); 00181 in_pids = vector<ulint>::create(); 00182 out_pids = vector<ulint>::create(); 00183 in_refs = vector<ulint>::create(); 00184 out_refs = vector<ulint>::create(); 00185 00186 instrs->push_back(INSTRUCTION_CBW__1); 00187 00188 //input operands 00189 in_pids->push_back(PIN_1); 00190 in_refs->push_back(I_1); 00191 00192 //output operands 00193 out_pids->push_back(CBW_O_1); 00194 out_refs->push_back(O_1); 00195 00196 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00197 00198 00199 instrs = vector<ulint>::create(); 00200 in_pids = vector<ulint>::create(); 00201 out_pids = vector<ulint>::create(); 00202 in_refs = vector<ulint>::create(); 00203 out_refs = vector<ulint>::create(); 00204 00205 instrs->push_back(INSTRUCTION_IDIV__1); 00206 00207 //input operands 00208 in_pids->push_back(CBW_O_1); 00209 in_refs->push_back(I_1); 00210 in_pids->push_back(PIN_2); 00211 in_refs->push_back(I_2); 00212 00213 //output operands 00214 out_pids->push_back(POUT_1); 00215 out_refs->push_back(O_1); 00216 out_pids->push_back(DIV_O_2); 00217 out_refs->push_back(O_2); 00218 out_pids->push_back(DIV_O_3); 00219 out_refs->push_back(O_3); 00220 00221 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00222 00223 00224 return pi_pi2ge_pi_template::create(TEM_DIV_1,instr_patts); 00225 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_DIV_2 | ( | ) |
Definition at line 227 of file pi_pi2ge_pi_template.mdg.cc.
References CWD_O_1, CWD_O_2, DIV_O_2, DIV_O_3, I_1, I_2, I_3, INSTRUCTION_CDQ__1, INSTRUCTION_CWD__1, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__3, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_DIV_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00227 { 00228 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00229 00230 ptr<vector<ulint> > instrs; 00231 ptr<vector<ulint> > in_pids; 00232 ptr<vector<ulint> > out_pids; 00233 ptr<vector<ulint> > in_refs; 00234 ptr<vector<ulint> > out_refs; 00235 00236 instrs = vector<ulint>::create(); 00237 in_pids = vector<ulint>::create(); 00238 out_pids = vector<ulint>::create(); 00239 in_refs = vector<ulint>::create(); 00240 out_refs = vector<ulint>::create(); 00241 00242 instrs->push_back(INSTRUCTION_CWD__1); 00243 instrs->push_back(INSTRUCTION_CDQ__1); 00244 00245 //input operands 00246 in_pids->push_back(PIN_1); 00247 in_refs->push_back(I_1); 00248 00249 //output operands 00250 out_pids->push_back(CWD_O_1); 00251 out_refs->push_back(O_1); 00252 out_pids->push_back(CWD_O_2); 00253 out_refs->push_back(O_2); 00254 00255 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00256 00257 00258 instrs = vector<ulint>::create(); 00259 in_pids = vector<ulint>::create(); 00260 out_pids = vector<ulint>::create(); 00261 in_refs = vector<ulint>::create(); 00262 out_refs = vector<ulint>::create(); 00263 00264 instrs->push_back(INSTRUCTION_IDIV__2); 00265 instrs->push_back(INSTRUCTION_IDIV__3); 00266 00267 //input operands 00268 in_pids->push_back(CWD_O_1); 00269 in_refs->push_back(I_1); 00270 in_pids->push_back(CWD_O_2); 00271 in_refs->push_back(I_2); 00272 in_pids->push_back(PIN_2); 00273 in_refs->push_back(I_3); 00274 00275 //output operands 00276 out_pids->push_back(POUT_1); 00277 out_refs->push_back(O_1); 00278 out_pids->push_back(DIV_O_2); 00279 out_refs->push_back(O_2); 00280 out_pids->push_back(DIV_O_3); 00281 out_refs->push_back(O_3); 00282 00283 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00284 00285 00286 return pi_pi2ge_pi_template::create(TEM_DIV_2,instr_patts); 00287 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_DIV_3 | ( | ) |
Definition at line 289 of file pi_pi2ge_pi_template.mdg.cc.
References DIV_O_2, DIV_O_3, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__2, INSTRUCTION_DIV__3, INSTRUCTION_NULLAH__1, INSTRUCTION_NULLDX__1, INSTRUCTION_NULLEDX__1, NULL_O_1, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_DIV_3.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00289 { 00290 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00291 00292 ptr<vector<ulint> > instrs; 00293 ptr<vector<ulint> > in_pids; 00294 ptr<vector<ulint> > out_pids; 00295 ptr<vector<ulint> > in_refs; 00296 ptr<vector<ulint> > out_refs; 00297 00298 instrs = vector<ulint>::create(); 00299 in_pids = vector<ulint>::create(); 00300 out_pids = vector<ulint>::create(); 00301 in_refs = vector<ulint>::create(); 00302 out_refs = vector<ulint>::create(); 00303 00304 instrs->push_back(INSTRUCTION_NULLAH__1); 00305 instrs->push_back(INSTRUCTION_NULLDX__1); 00306 instrs->push_back(INSTRUCTION_NULLEDX__1); 00307 00308 //input operands 00309 00310 //output operands 00311 out_pids->push_back(NULL_O_1); 00312 out_refs->push_back(O_1); 00313 00314 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00315 00316 00317 instrs = vector<ulint>::create(); 00318 in_pids = vector<ulint>::create(); 00319 out_pids = vector<ulint>::create(); 00320 in_refs = vector<ulint>::create(); 00321 out_refs = vector<ulint>::create(); 00322 00323 instrs->push_back(INSTRUCTION_DIV__1); 00324 instrs->push_back(INSTRUCTION_DIV__2); 00325 instrs->push_back(INSTRUCTION_DIV__3); 00326 00327 //input operands 00328 in_pids->push_back(NULL_O_1); 00329 in_refs->push_back(I_1); 00330 in_pids->push_back(PIN_1); 00331 in_refs->push_back(I_2); 00332 in_pids->push_back(PIN_2); 00333 in_refs->push_back(I_3); 00334 00335 //output operands 00336 out_pids->push_back(POUT_1); 00337 out_refs->push_back(O_1); 00338 out_pids->push_back(DIV_O_2); 00339 out_refs->push_back(O_2); 00340 out_pids->push_back(DIV_O_3); 00341 out_refs->push_back(O_3); 00342 00343 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00344 00345 00346 return pi_pi2ge_pi_template::create(TEM_DIV_3,instr_patts); 00347 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_GAT_1 | ( | ) |
Definition at line 738 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, O_1, PIN_1, POUT_1, and TEM_GAT_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00738 { 00739 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00740 00741 ptr<vector<ulint> > instrs; 00742 ptr<vector<ulint> > in_pids; 00743 ptr<vector<ulint> > out_pids; 00744 ptr<vector<ulint> > in_refs; 00745 ptr<vector<ulint> > out_refs; 00746 00747 instrs = vector<ulint>::create(); 00748 in_pids = vector<ulint>::create(); 00749 out_pids = vector<ulint>::create(); 00750 in_refs = vector<ulint>::create(); 00751 out_refs = vector<ulint>::create(); 00752 00753 instrs->push_back(INSTRUCTION_MOV__1); 00754 00755 //input operands 00756 in_pids->push_back(PIN_1); 00757 in_refs->push_back(I_1); 00758 00759 //output operands 00760 out_pids->push_back(POUT_1); 00761 out_refs->push_back(O_1); 00762 00763 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00764 00765 00766 return pi_pi2ge_pi_template::create(TEM_GAT_1,instr_patts); 00767 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LAND_1 | ( | ) |
Definition at line 1121 of file pi_pi2ge_pi_template.mdg.cc.
References AND_O_2, I_1, I_2, INSTRUCTION_AND__1, O_1, O_2, PIN_1, PIN_2, POUT_1, and TEM_LAND_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01121 { 01122 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01123 01124 ptr<vector<ulint> > instrs; 01125 ptr<vector<ulint> > in_pids; 01126 ptr<vector<ulint> > out_pids; 01127 ptr<vector<ulint> > in_refs; 01128 ptr<vector<ulint> > out_refs; 01129 01130 instrs = vector<ulint>::create(); 01131 in_pids = vector<ulint>::create(); 01132 out_pids = vector<ulint>::create(); 01133 in_refs = vector<ulint>::create(); 01134 out_refs = vector<ulint>::create(); 01135 01136 instrs->push_back(INSTRUCTION_AND__1); 01137 01138 //input operands 01139 in_pids->push_back(PIN_1); 01140 in_refs->push_back(I_1); 01141 in_pids->push_back(PIN_2); 01142 in_refs->push_back(I_2); 01143 01144 //output operands 01145 out_pids->push_back(POUT_1); 01146 out_refs->push_back(O_1); 01147 out_pids->push_back(AND_O_2); 01148 out_refs->push_back(O_2); 01149 01150 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01151 01152 01153 return pi_pi2ge_pi_template::create(TEM_LAND_1,instr_patts); 01154 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LD_1 | ( | ) |
Definition at line 1609 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__3, O_1, PIN_1, POUT_1, and TEM_LD_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01609 { 01610 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01611 01612 ptr<vector<ulint> > instrs; 01613 ptr<vector<ulint> > in_pids; 01614 ptr<vector<ulint> > out_pids; 01615 ptr<vector<ulint> > in_refs; 01616 ptr<vector<ulint> > out_refs; 01617 01618 instrs = vector<ulint>::create(); 01619 in_pids = vector<ulint>::create(); 01620 out_pids = vector<ulint>::create(); 01621 in_refs = vector<ulint>::create(); 01622 out_refs = vector<ulint>::create(); 01623 01624 instrs->push_back(INSTRUCTION_MOV__3); 01625 instrs->push_back(INSTRUCTION_MOV__1); 01626 01627 //input operands 01628 in_pids->push_back(PIN_1); 01629 in_refs->push_back(I_1); 01630 01631 //output operands 01632 out_pids->push_back(POUT_1); 01633 out_refs->push_back(O_1); 01634 01635 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01636 01637 01638 return pi_pi2ge_pi_template::create(TEM_LD_1,instr_patts); 01639 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LDA_1 | ( | ) |
Definition at line 1770 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_LEA__1, O_1, PIN_1, POUT_1, and TEM_LDA_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01770 { 01771 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01772 01773 ptr<vector<ulint> > instrs; 01774 ptr<vector<ulint> > in_pids; 01775 ptr<vector<ulint> > out_pids; 01776 ptr<vector<ulint> > in_refs; 01777 ptr<vector<ulint> > out_refs; 01778 01779 instrs = vector<ulint>::create(); 01780 in_pids = vector<ulint>::create(); 01781 out_pids = vector<ulint>::create(); 01782 in_refs = vector<ulint>::create(); 01783 out_refs = vector<ulint>::create(); 01784 01785 instrs->push_back(INSTRUCTION_LEA__1); 01786 01787 //input operands 01788 in_pids->push_back(PIN_1); 01789 in_refs->push_back(I_1); 01790 01791 //output operands 01792 out_pids->push_back(POUT_1); 01793 out_refs->push_back(O_1); 01794 01795 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01796 01797 01798 return pi_pi2ge_pi_template::create(TEM_LDA_1,instr_patts); 01799 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LDI_1 | ( | ) |
Definition at line 1673 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__5, O_1, PIN_1, POUT_1, and TEM_LDI_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01673 { 01674 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01675 01676 ptr<vector<ulint> > instrs; 01677 ptr<vector<ulint> > in_pids; 01678 ptr<vector<ulint> > out_pids; 01679 ptr<vector<ulint> > in_refs; 01680 ptr<vector<ulint> > out_refs; 01681 01682 instrs = vector<ulint>::create(); 01683 in_pids = vector<ulint>::create(); 01684 out_pids = vector<ulint>::create(); 01685 in_refs = vector<ulint>::create(); 01686 out_refs = vector<ulint>::create(); 01687 01688 instrs->push_back(INSTRUCTION_MOV__5); 01689 01690 //input operands 01691 in_pids->push_back(PIN_1); 01692 in_refs->push_back(I_1); 01693 01694 //output operands 01695 out_pids->push_back(POUT_1); 01696 out_refs->push_back(O_1); 01697 01698 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01699 01700 01701 return pi_pi2ge_pi_template::create(TEM_LDI_1,instr_patts); 01702 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LDP_1 | ( | ) |
Definition at line 1704 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_MOV__8, O_1, PIN_1, PIN_2, POUT_1, and TEM_LDP_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01704 { 01705 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01706 01707 ptr<vector<ulint> > instrs; 01708 ptr<vector<ulint> > in_pids; 01709 ptr<vector<ulint> > out_pids; 01710 ptr<vector<ulint> > in_refs; 01711 ptr<vector<ulint> > out_refs; 01712 01713 instrs = vector<ulint>::create(); 01714 in_pids = vector<ulint>::create(); 01715 out_pids = vector<ulint>::create(); 01716 in_refs = vector<ulint>::create(); 01717 out_refs = vector<ulint>::create(); 01718 01719 instrs->push_back(INSTRUCTION_MOV__8); 01720 01721 //input operands 01722 in_pids->push_back(PIN_1); 01723 in_refs->push_back(I_1); 01724 in_pids->push_back(PIN_2); 01725 in_refs->push_back(I_2); 01726 01727 //output operands 01728 out_pids->push_back(POUT_1); 01729 out_refs->push_back(O_1); 01730 01731 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01732 01733 01734 return pi_pi2ge_pi_template::create(TEM_LDP_1,instr_patts); 01735 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LDPV_1 | ( | ) |
Definition at line 1737 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_MOV__8, O_1, PIN_1, PIN_2, POUT_1, and TEM_LDPV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01737 { 01738 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01739 01740 ptr<vector<ulint> > instrs; 01741 ptr<vector<ulint> > in_pids; 01742 ptr<vector<ulint> > out_pids; 01743 ptr<vector<ulint> > in_refs; 01744 ptr<vector<ulint> > out_refs; 01745 01746 instrs = vector<ulint>::create(); 01747 in_pids = vector<ulint>::create(); 01748 out_pids = vector<ulint>::create(); 01749 in_refs = vector<ulint>::create(); 01750 out_refs = vector<ulint>::create(); 01751 01752 instrs->push_back(INSTRUCTION_MOV__8); 01753 01754 //input operands 01755 in_pids->push_back(PIN_1); 01756 in_refs->push_back(I_1); 01757 in_pids->push_back(PIN_2); 01758 in_refs->push_back(I_2); 01759 01760 //output operands 01761 out_pids->push_back(POUT_1); 01762 out_refs->push_back(O_1); 01763 01764 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01765 01766 01767 return pi_pi2ge_pi_template::create(TEM_LDPV_1,instr_patts); 01768 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LDV_1 | ( | ) |
Definition at line 1641 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__3, O_1, PIN_1, POUT_1, and TEM_LDV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01641 { 01642 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01643 01644 ptr<vector<ulint> > instrs; 01645 ptr<vector<ulint> > in_pids; 01646 ptr<vector<ulint> > out_pids; 01647 ptr<vector<ulint> > in_refs; 01648 ptr<vector<ulint> > out_refs; 01649 01650 instrs = vector<ulint>::create(); 01651 in_pids = vector<ulint>::create(); 01652 out_pids = vector<ulint>::create(); 01653 in_refs = vector<ulint>::create(); 01654 out_refs = vector<ulint>::create(); 01655 01656 instrs->push_back(INSTRUCTION_MOV__3); 01657 instrs->push_back(INSTRUCTION_MOV__1); 01658 01659 //input operands 01660 in_pids->push_back(PIN_1); 01661 in_refs->push_back(I_1); 01662 01663 //output operands 01664 out_pids->push_back(POUT_1); 01665 out_refs->push_back(O_1); 01666 01667 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01668 01669 01670 return pi_pi2ge_pi_template::create(TEM_LDV_1,instr_patts); 01671 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LNOT_1 | ( | ) |
Definition at line 1226 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_XOR__2, O_1, O_2, PIN_1, POUT_1, TEM_LNOT_1, and XOR_O_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01226 { 01227 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01228 01229 ptr<vector<ulint> > instrs; 01230 ptr<vector<ulint> > in_pids; 01231 ptr<vector<ulint> > out_pids; 01232 ptr<vector<ulint> > in_refs; 01233 ptr<vector<ulint> > out_refs; 01234 01235 instrs = vector<ulint>::create(); 01236 in_pids = vector<ulint>::create(); 01237 out_pids = vector<ulint>::create(); 01238 in_refs = vector<ulint>::create(); 01239 out_refs = vector<ulint>::create(); 01240 01241 instrs->push_back(INSTRUCTION_XOR__2); 01242 01243 //input operands 01244 in_pids->push_back(PIN_1); 01245 in_refs->push_back(I_1); 01246 01247 //output operands 01248 out_pids->push_back(POUT_1); 01249 out_refs->push_back(O_1); 01250 out_pids->push_back(XOR_O_2); 01251 out_refs->push_back(O_2); 01252 01253 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01254 01255 01256 return pi_pi2ge_pi_template::create(TEM_LNOT_1,instr_patts); 01257 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LOR_1 | ( | ) |
Definition at line 1156 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_OR__1, O_1, O_2, OR_O_2, PIN_1, PIN_2, POUT_1, and TEM_LOR_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01156 { 01157 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01158 01159 ptr<vector<ulint> > instrs; 01160 ptr<vector<ulint> > in_pids; 01161 ptr<vector<ulint> > out_pids; 01162 ptr<vector<ulint> > in_refs; 01163 ptr<vector<ulint> > out_refs; 01164 01165 instrs = vector<ulint>::create(); 01166 in_pids = vector<ulint>::create(); 01167 out_pids = vector<ulint>::create(); 01168 in_refs = vector<ulint>::create(); 01169 out_refs = vector<ulint>::create(); 01170 01171 instrs->push_back(INSTRUCTION_OR__1); 01172 01173 //input operands 01174 in_pids->push_back(PIN_1); 01175 in_refs->push_back(I_1); 01176 in_pids->push_back(PIN_2); 01177 in_refs->push_back(I_2); 01178 01179 //output operands 01180 out_pids->push_back(POUT_1); 01181 out_refs->push_back(O_1); 01182 out_pids->push_back(OR_O_2); 01183 out_refs->push_back(O_2); 01184 01185 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01186 01187 01188 return pi_pi2ge_pi_template::create(TEM_LOR_1,instr_patts); 01189 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_LXOR_1 | ( | ) |
Definition at line 1191 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_XOR__1, O_1, O_2, PIN_1, PIN_2, POUT_1, TEM_LXOR_1, and XOR_O_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01191 { 01192 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01193 01194 ptr<vector<ulint> > instrs; 01195 ptr<vector<ulint> > in_pids; 01196 ptr<vector<ulint> > out_pids; 01197 ptr<vector<ulint> > in_refs; 01198 ptr<vector<ulint> > out_refs; 01199 01200 instrs = vector<ulint>::create(); 01201 in_pids = vector<ulint>::create(); 01202 out_pids = vector<ulint>::create(); 01203 in_refs = vector<ulint>::create(); 01204 out_refs = vector<ulint>::create(); 01205 01206 instrs->push_back(INSTRUCTION_XOR__1); 01207 01208 //input operands 01209 in_pids->push_back(PIN_1); 01210 in_refs->push_back(I_1); 01211 in_pids->push_back(PIN_2); 01212 in_refs->push_back(I_2); 01213 01214 //output operands 01215 out_pids->push_back(POUT_1); 01216 out_refs->push_back(O_1); 01217 out_pids->push_back(XOR_O_2); 01218 out_refs->push_back(O_2); 01219 01220 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01221 01222 01223 return pi_pi2ge_pi_template::create(TEM_LXOR_1,instr_patts); 01224 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_MOD_1 | ( | ) |
Definition at line 349 of file pi_pi2ge_pi_template.mdg.cc.
References CBW_O_1, DIV_O_1, DIV_O_3, I_1, I_2, INSTRUCTION_CBW__1, INSTRUCTION_IDIV__1, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_MOD_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00349 { 00350 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00351 00352 ptr<vector<ulint> > instrs; 00353 ptr<vector<ulint> > in_pids; 00354 ptr<vector<ulint> > out_pids; 00355 ptr<vector<ulint> > in_refs; 00356 ptr<vector<ulint> > out_refs; 00357 00358 instrs = vector<ulint>::create(); 00359 in_pids = vector<ulint>::create(); 00360 out_pids = vector<ulint>::create(); 00361 in_refs = vector<ulint>::create(); 00362 out_refs = vector<ulint>::create(); 00363 00364 instrs->push_back(INSTRUCTION_CBW__1); 00365 00366 //input operands 00367 in_pids->push_back(PIN_1); 00368 in_refs->push_back(I_1); 00369 00370 //output operands 00371 out_pids->push_back(CBW_O_1); 00372 out_refs->push_back(O_1); 00373 00374 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00375 00376 00377 instrs = vector<ulint>::create(); 00378 in_pids = vector<ulint>::create(); 00379 out_pids = vector<ulint>::create(); 00380 in_refs = vector<ulint>::create(); 00381 out_refs = vector<ulint>::create(); 00382 00383 instrs->push_back(INSTRUCTION_IDIV__1); 00384 00385 //input operands 00386 in_pids->push_back(CBW_O_1); 00387 in_refs->push_back(I_1); 00388 in_pids->push_back(PIN_2); 00389 in_refs->push_back(I_2); 00390 00391 //output operands 00392 out_pids->push_back(DIV_O_1); 00393 out_refs->push_back(O_1); 00394 out_pids->push_back(POUT_1); 00395 out_refs->push_back(O_2); 00396 out_pids->push_back(DIV_O_3); 00397 out_refs->push_back(O_3); 00398 00399 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00400 00401 00402 return pi_pi2ge_pi_template::create(TEM_MOD_1,instr_patts); 00403 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_MOD_2 | ( | ) |
Definition at line 405 of file pi_pi2ge_pi_template.mdg.cc.
References CWD_O_1, CWD_O_2, DIV_O_1, DIV_O_3, I_1, I_2, I_3, INSTRUCTION_CDQ__1, INSTRUCTION_CWD__1, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__3, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_MOD_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00405 { 00406 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00407 00408 ptr<vector<ulint> > instrs; 00409 ptr<vector<ulint> > in_pids; 00410 ptr<vector<ulint> > out_pids; 00411 ptr<vector<ulint> > in_refs; 00412 ptr<vector<ulint> > out_refs; 00413 00414 instrs = vector<ulint>::create(); 00415 in_pids = vector<ulint>::create(); 00416 out_pids = vector<ulint>::create(); 00417 in_refs = vector<ulint>::create(); 00418 out_refs = vector<ulint>::create(); 00419 00420 instrs->push_back(INSTRUCTION_CWD__1); 00421 instrs->push_back(INSTRUCTION_CDQ__1); 00422 00423 //input operands 00424 in_pids->push_back(PIN_1); 00425 in_refs->push_back(I_1); 00426 00427 //output operands 00428 out_pids->push_back(CWD_O_1); 00429 out_refs->push_back(O_1); 00430 out_pids->push_back(CWD_O_2); 00431 out_refs->push_back(O_2); 00432 00433 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00434 00435 00436 instrs = vector<ulint>::create(); 00437 in_pids = vector<ulint>::create(); 00438 out_pids = vector<ulint>::create(); 00439 in_refs = vector<ulint>::create(); 00440 out_refs = vector<ulint>::create(); 00441 00442 instrs->push_back(INSTRUCTION_IDIV__2); 00443 instrs->push_back(INSTRUCTION_IDIV__3); 00444 00445 //input operands 00446 in_pids->push_back(CWD_O_1); 00447 in_refs->push_back(I_1); 00448 in_pids->push_back(CWD_O_2); 00449 in_refs->push_back(I_2); 00450 in_pids->push_back(PIN_2); 00451 in_refs->push_back(I_3); 00452 00453 //output operands 00454 out_pids->push_back(DIV_O_1); 00455 out_refs->push_back(O_1); 00456 out_pids->push_back(POUT_1); 00457 out_refs->push_back(O_2); 00458 out_pids->push_back(DIV_O_3); 00459 out_refs->push_back(O_3); 00460 00461 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00462 00463 00464 return pi_pi2ge_pi_template::create(TEM_MOD_2,instr_patts); 00465 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_MOD_3 | ( | ) |
Definition at line 467 of file pi_pi2ge_pi_template.mdg.cc.
References DIV_O_1, DIV_O_3, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__2, INSTRUCTION_DIV__3, INSTRUCTION_NULLAH__1, INSTRUCTION_NULLDX__1, INSTRUCTION_NULLEDX__1, NULL_O_1, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_MOD_3.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00467 { 00468 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00469 00470 ptr<vector<ulint> > instrs; 00471 ptr<vector<ulint> > in_pids; 00472 ptr<vector<ulint> > out_pids; 00473 ptr<vector<ulint> > in_refs; 00474 ptr<vector<ulint> > out_refs; 00475 00476 instrs = vector<ulint>::create(); 00477 in_pids = vector<ulint>::create(); 00478 out_pids = vector<ulint>::create(); 00479 in_refs = vector<ulint>::create(); 00480 out_refs = vector<ulint>::create(); 00481 00482 instrs->push_back(INSTRUCTION_NULLAH__1); 00483 instrs->push_back(INSTRUCTION_NULLDX__1); 00484 instrs->push_back(INSTRUCTION_NULLEDX__1); 00485 00486 //input operands 00487 00488 //output operands 00489 out_pids->push_back(NULL_O_1); 00490 out_refs->push_back(O_1); 00491 00492 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00493 00494 00495 instrs = vector<ulint>::create(); 00496 in_pids = vector<ulint>::create(); 00497 out_pids = vector<ulint>::create(); 00498 in_refs = vector<ulint>::create(); 00499 out_refs = vector<ulint>::create(); 00500 00501 instrs->push_back(INSTRUCTION_DIV__1); 00502 instrs->push_back(INSTRUCTION_DIV__2); 00503 instrs->push_back(INSTRUCTION_DIV__3); 00504 00505 //input operands 00506 in_pids->push_back(NULL_O_1); 00507 in_refs->push_back(I_1); 00508 in_pids->push_back(PIN_1); 00509 in_refs->push_back(I_2); 00510 in_pids->push_back(PIN_2); 00511 in_refs->push_back(I_3); 00512 00513 //output operands 00514 out_pids->push_back(DIV_O_1); 00515 out_refs->push_back(O_1); 00516 out_pids->push_back(POUT_1); 00517 out_refs->push_back(O_2); 00518 out_pids->push_back(DIV_O_3); 00519 out_refs->push_back(O_3); 00520 00521 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00522 00523 00524 return pi_pi2ge_pi_template::create(TEM_MOD_3,instr_patts); 00525 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_MOV_1 | ( | ) |
Definition at line 1386 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, O_1, PIN_1, POUT_1, and TEM_MOV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01386 { 01387 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01388 01389 ptr<vector<ulint> > instrs; 01390 ptr<vector<ulint> > in_pids; 01391 ptr<vector<ulint> > out_pids; 01392 ptr<vector<ulint> > in_refs; 01393 ptr<vector<ulint> > out_refs; 01394 01395 instrs = vector<ulint>::create(); 01396 in_pids = vector<ulint>::create(); 01397 out_pids = vector<ulint>::create(); 01398 in_refs = vector<ulint>::create(); 01399 out_refs = vector<ulint>::create(); 01400 01401 instrs->push_back(INSTRUCTION_MOV__1); 01402 01403 //input operands 01404 in_pids->push_back(PIN_1); 01405 in_refs->push_back(I_1); 01406 01407 //output operands 01408 out_pids->push_back(POUT_1); 01409 out_refs->push_back(O_1); 01410 01411 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01412 01413 01414 return pi_pi2ge_pi_template::create(TEM_MOV_1,instr_patts); 01415 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_MUL_1 | ( | ) |
Definition at line 92 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, INSTRUCTION_MUL__1, MUL_O_2, O_1, O_2, PIN_1, PIN_2, POUT_1, and TEM_MUL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00092 { 00093 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00094 00095 ptr<vector<ulint> > instrs; 00096 ptr<vector<ulint> > in_pids; 00097 ptr<vector<ulint> > out_pids; 00098 ptr<vector<ulint> > in_refs; 00099 ptr<vector<ulint> > out_refs; 00100 00101 instrs = vector<ulint>::create(); 00102 in_pids = vector<ulint>::create(); 00103 out_pids = vector<ulint>::create(); 00104 in_refs = vector<ulint>::create(); 00105 out_refs = vector<ulint>::create(); 00106 00107 instrs->push_back(INSTRUCTION_MUL__1); 00108 instrs->push_back(INSTRUCTION_IMUL__1); 00109 instrs->push_back(INSTRUCTION_IMUL__2); 00110 instrs->push_back(INSTRUCTION_IMUL__21); 00111 instrs->push_back(INSTRUCTION_IMUL__22); 00112 instrs->push_back(INSTRUCTION_IMUL__23); 00113 instrs->push_back(INSTRUCTION_IMUL__24); 00114 00115 //input operands 00116 in_pids->push_back(PIN_1); 00117 in_refs->push_back(I_1); 00118 in_pids->push_back(PIN_2); 00119 in_refs->push_back(I_2); 00120 00121 //output operands 00122 out_pids->push_back(POUT_1); 00123 out_refs->push_back(O_1); 00124 out_pids->push_back(MUL_O_2); 00125 out_refs->push_back(O_2); 00126 00127 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00128 00129 00130 return pi_pi2ge_pi_template::create(TEM_MUL_1,instr_patts); 00131 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_MUL_2 | ( | ) |
Definition at line 133 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_MUL__2, INSTRUCTION_MUL__3, MUL_O_2, MUL_O_3, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_MUL_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00133 { 00134 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00135 00136 ptr<vector<ulint> > instrs; 00137 ptr<vector<ulint> > in_pids; 00138 ptr<vector<ulint> > out_pids; 00139 ptr<vector<ulint> > in_refs; 00140 ptr<vector<ulint> > out_refs; 00141 00142 instrs = vector<ulint>::create(); 00143 in_pids = vector<ulint>::create(); 00144 out_pids = vector<ulint>::create(); 00145 in_refs = vector<ulint>::create(); 00146 out_refs = vector<ulint>::create(); 00147 00148 instrs->push_back(INSTRUCTION_MUL__2); 00149 instrs->push_back(INSTRUCTION_MUL__3); 00150 00151 //input operands 00152 in_pids->push_back(PIN_1); 00153 in_refs->push_back(I_1); 00154 in_pids->push_back(PIN_2); 00155 in_refs->push_back(I_2); 00156 00157 //output operands 00158 out_pids->push_back(POUT_1); 00159 out_refs->push_back(O_1); 00160 out_pids->push_back(MUL_O_2); 00161 out_refs->push_back(O_2); 00162 out_pids->push_back(MUL_O_3); 00163 out_refs->push_back(O_3); 00164 00165 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00166 00167 00168 return pi_pi2ge_pi_template::create(TEM_MUL_2,instr_patts); 00169 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_NEG_1 | ( | ) |
Definition at line 705 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_NEG__1, NEG_O_2, O_1, O_2, PIN_1, POUT_1, and TEM_NEG_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00705 { 00706 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00707 00708 ptr<vector<ulint> > instrs; 00709 ptr<vector<ulint> > in_pids; 00710 ptr<vector<ulint> > out_pids; 00711 ptr<vector<ulint> > in_refs; 00712 ptr<vector<ulint> > out_refs; 00713 00714 instrs = vector<ulint>::create(); 00715 in_pids = vector<ulint>::create(); 00716 out_pids = vector<ulint>::create(); 00717 in_refs = vector<ulint>::create(); 00718 out_refs = vector<ulint>::create(); 00719 00720 instrs->push_back(INSTRUCTION_NEG__1); 00721 00722 //input operands 00723 in_pids->push_back(PIN_1); 00724 in_refs->push_back(I_1); 00725 00726 //output operands 00727 out_pids->push_back(POUT_1); 00728 out_refs->push_back(O_1); 00729 out_pids->push_back(NEG_O_2); 00730 out_refs->push_back(O_2); 00731 00732 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00733 00734 00735 return pi_pi2ge_pi_template::create(TEM_NEG_1,instr_patts); 00736 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REGISTER_MOVE_1 | ( | ) |
Definition at line 2478 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, O_1, PIN_1, POUT_1, and TEM_REGISTER_MOVE_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02478 { 02479 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02480 02481 ptr<vector<ulint> > instrs; 02482 ptr<vector<ulint> > in_pids; 02483 ptr<vector<ulint> > out_pids; 02484 ptr<vector<ulint> > in_refs; 02485 ptr<vector<ulint> > out_refs; 02486 02487 instrs = vector<ulint>::create(); 02488 in_pids = vector<ulint>::create(); 02489 out_pids = vector<ulint>::create(); 02490 in_refs = vector<ulint>::create(); 02491 out_refs = vector<ulint>::create(); 02492 02493 instrs->push_back(INSTRUCTION_MOV__1); 02494 instrs->push_back(INSTRUCTION_MOV__2); 02495 instrs->push_back(INSTRUCTION_MOV__3); 02496 02497 //input operands 02498 in_pids->push_back(PIN_1); 02499 in_refs->push_back(I_1); 02500 02501 //output operands 02502 out_pids->push_back(POUT_1); 02503 out_refs->push_back(O_1); 02504 02505 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02506 02507 02508 return pi_pi2ge_pi_template::create(TEM_REGISTER_MOVE_1,instr_patts); 02509 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REGISTER_MOVE_2 | ( | ) |
Definition at line 2511 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_LAHF__1, INSTRUCTION_SAHF__1, O_1, PIN_1, POUT_1, and TEM_REGISTER_MOVE_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02511 { 02512 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02513 02514 ptr<vector<ulint> > instrs; 02515 ptr<vector<ulint> > in_pids; 02516 ptr<vector<ulint> > out_pids; 02517 ptr<vector<ulint> > in_refs; 02518 ptr<vector<ulint> > out_refs; 02519 02520 instrs = vector<ulint>::create(); 02521 in_pids = vector<ulint>::create(); 02522 out_pids = vector<ulint>::create(); 02523 in_refs = vector<ulint>::create(); 02524 out_refs = vector<ulint>::create(); 02525 02526 instrs->push_back(INSTRUCTION_LAHF__1); 02527 instrs->push_back(INSTRUCTION_SAHF__1); 02528 02529 //input operands 02530 in_pids->push_back(PIN_1); 02531 in_refs->push_back(I_1); 02532 02533 //output operands 02534 out_pids->push_back(POUT_1); 02535 out_refs->push_back(O_1); 02536 02537 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02538 02539 02540 return pi_pi2ge_pi_template::create(TEM_REGISTER_MOVE_2,instr_patts); 02541 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REGISTER_MOVE_3 | ( | ) |
Definition at line 2543 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_LAHF__1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, LAHF_O_1, O_1, PIN_1, POUT_1, and TEM_REGISTER_MOVE_3.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02543 { 02544 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02545 02546 ptr<vector<ulint> > instrs; 02547 ptr<vector<ulint> > in_pids; 02548 ptr<vector<ulint> > out_pids; 02549 ptr<vector<ulint> > in_refs; 02550 ptr<vector<ulint> > out_refs; 02551 02552 instrs = vector<ulint>::create(); 02553 in_pids = vector<ulint>::create(); 02554 out_pids = vector<ulint>::create(); 02555 in_refs = vector<ulint>::create(); 02556 out_refs = vector<ulint>::create(); 02557 02558 instrs->push_back(INSTRUCTION_LAHF__1); 02559 02560 //input operands 02561 in_pids->push_back(PIN_1); 02562 in_refs->push_back(I_1); 02563 02564 //output operands 02565 out_pids->push_back(LAHF_O_1); 02566 out_refs->push_back(O_1); 02567 02568 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02569 02570 02571 instrs = vector<ulint>::create(); 02572 in_pids = vector<ulint>::create(); 02573 out_pids = vector<ulint>::create(); 02574 in_refs = vector<ulint>::create(); 02575 out_refs = vector<ulint>::create(); 02576 02577 instrs->push_back(INSTRUCTION_MOV__1); 02578 instrs->push_back(INSTRUCTION_MOV__2); 02579 02580 //input operands 02581 in_pids->push_back(LAHF_O_1); 02582 in_refs->push_back(I_1); 02583 02584 //output operands 02585 out_pids->push_back(POUT_1); 02586 out_refs->push_back(O_1); 02587 02588 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02589 02590 02591 return pi_pi2ge_pi_template::create(TEM_REGISTER_MOVE_3,instr_patts); 02592 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REGISTER_MOVE_4 | ( | ) |
Definition at line 2594 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__3, INSTRUCTION_SAHF__1, MOV_O_1, O_1, PIN_1, POUT_1, and TEM_REGISTER_MOVE_4.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02594 { 02595 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02596 02597 ptr<vector<ulint> > instrs; 02598 ptr<vector<ulint> > in_pids; 02599 ptr<vector<ulint> > out_pids; 02600 ptr<vector<ulint> > in_refs; 02601 ptr<vector<ulint> > out_refs; 02602 02603 instrs = vector<ulint>::create(); 02604 in_pids = vector<ulint>::create(); 02605 out_pids = vector<ulint>::create(); 02606 in_refs = vector<ulint>::create(); 02607 out_refs = vector<ulint>::create(); 02608 02609 instrs->push_back(INSTRUCTION_MOV__1); 02610 instrs->push_back(INSTRUCTION_MOV__3); 02611 02612 //input operands 02613 in_pids->push_back(PIN_1); 02614 in_refs->push_back(I_1); 02615 02616 //output operands 02617 out_pids->push_back(MOV_O_1); 02618 out_refs->push_back(O_1); 02619 02620 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02621 02622 02623 instrs = vector<ulint>::create(); 02624 in_pids = vector<ulint>::create(); 02625 out_pids = vector<ulint>::create(); 02626 in_refs = vector<ulint>::create(); 02627 out_refs = vector<ulint>::create(); 02628 02629 instrs->push_back(INSTRUCTION_SAHF__1); 02630 02631 //input operands 02632 in_pids->push_back(MOV_O_1); 02633 in_refs->push_back(I_1); 02634 02635 //output operands 02636 out_pids->push_back(POUT_1); 02637 out_refs->push_back(O_1); 02638 02639 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02640 02641 02642 return pi_pi2ge_pi_template::create(TEM_REGISTER_MOVE_4,instr_patts); 02643 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REGISTER_MOVE_5 | ( | ) |
Definition at line 2645 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_SYSMOV__10, INSTRUCTION_SYSMOV__11, INSTRUCTION_SYSMOV__9, O_1, PIN_1, POUT_1, and TEM_REGISTER_MOVE_5.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02645 { 02646 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02647 02648 ptr<vector<ulint> > instrs; 02649 ptr<vector<ulint> > in_pids; 02650 ptr<vector<ulint> > out_pids; 02651 ptr<vector<ulint> > in_refs; 02652 ptr<vector<ulint> > out_refs; 02653 02654 instrs = vector<ulint>::create(); 02655 in_pids = vector<ulint>::create(); 02656 out_pids = vector<ulint>::create(); 02657 in_refs = vector<ulint>::create(); 02658 out_refs = vector<ulint>::create(); 02659 02660 instrs->push_back(INSTRUCTION_SYSMOV__9); 02661 instrs->push_back(INSTRUCTION_SYSMOV__10); 02662 instrs->push_back(INSTRUCTION_SYSMOV__11); 02663 02664 //input operands 02665 in_pids->push_back(PIN_1); 02666 in_refs->push_back(I_1); 02667 02668 //output operands 02669 out_pids->push_back(POUT_1); 02670 out_refs->push_back(O_1); 02671 02672 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02673 02674 02675 return pi_pi2ge_pi_template::create(TEM_REGISTER_MOVE_5,instr_patts); 02676 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REM_1 | ( | ) |
Definition at line 527 of file pi_pi2ge_pi_template.mdg.cc.
References CBW_O_1, DIV_O_1, DIV_O_3, I_1, I_2, INSTRUCTION_CBW__1, INSTRUCTION_IDIV__1, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_REM_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00527 { 00528 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00529 00530 ptr<vector<ulint> > instrs; 00531 ptr<vector<ulint> > in_pids; 00532 ptr<vector<ulint> > out_pids; 00533 ptr<vector<ulint> > in_refs; 00534 ptr<vector<ulint> > out_refs; 00535 00536 instrs = vector<ulint>::create(); 00537 in_pids = vector<ulint>::create(); 00538 out_pids = vector<ulint>::create(); 00539 in_refs = vector<ulint>::create(); 00540 out_refs = vector<ulint>::create(); 00541 00542 instrs->push_back(INSTRUCTION_CBW__1); 00543 00544 //input operands 00545 in_pids->push_back(PIN_1); 00546 in_refs->push_back(I_1); 00547 00548 //output operands 00549 out_pids->push_back(CBW_O_1); 00550 out_refs->push_back(O_1); 00551 00552 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00553 00554 00555 instrs = vector<ulint>::create(); 00556 in_pids = vector<ulint>::create(); 00557 out_pids = vector<ulint>::create(); 00558 in_refs = vector<ulint>::create(); 00559 out_refs = vector<ulint>::create(); 00560 00561 instrs->push_back(INSTRUCTION_IDIV__1); 00562 00563 //input operands 00564 in_pids->push_back(CBW_O_1); 00565 in_refs->push_back(I_1); 00566 in_pids->push_back(PIN_2); 00567 in_refs->push_back(I_2); 00568 00569 //output operands 00570 out_pids->push_back(DIV_O_1); 00571 out_refs->push_back(O_1); 00572 out_pids->push_back(POUT_1); 00573 out_refs->push_back(O_2); 00574 out_pids->push_back(DIV_O_3); 00575 out_refs->push_back(O_3); 00576 00577 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00578 00579 00580 return pi_pi2ge_pi_template::create(TEM_REM_1,instr_patts); 00581 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REM_2 | ( | ) |
Definition at line 583 of file pi_pi2ge_pi_template.mdg.cc.
References CWD_O_1, CWD_O_2, DIV_O_1, DIV_O_3, I_1, I_2, I_3, INSTRUCTION_CDQ__1, INSTRUCTION_CWD__1, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__3, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_REM_2.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00583 { 00584 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00585 00586 ptr<vector<ulint> > instrs; 00587 ptr<vector<ulint> > in_pids; 00588 ptr<vector<ulint> > out_pids; 00589 ptr<vector<ulint> > in_refs; 00590 ptr<vector<ulint> > out_refs; 00591 00592 instrs = vector<ulint>::create(); 00593 in_pids = vector<ulint>::create(); 00594 out_pids = vector<ulint>::create(); 00595 in_refs = vector<ulint>::create(); 00596 out_refs = vector<ulint>::create(); 00597 00598 instrs->push_back(INSTRUCTION_CWD__1); 00599 instrs->push_back(INSTRUCTION_CDQ__1); 00600 00601 //input operands 00602 in_pids->push_back(PIN_1); 00603 in_refs->push_back(I_1); 00604 00605 //output operands 00606 out_pids->push_back(CWD_O_1); 00607 out_refs->push_back(O_1); 00608 out_pids->push_back(CWD_O_2); 00609 out_refs->push_back(O_2); 00610 00611 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00612 00613 00614 instrs = vector<ulint>::create(); 00615 in_pids = vector<ulint>::create(); 00616 out_pids = vector<ulint>::create(); 00617 in_refs = vector<ulint>::create(); 00618 out_refs = vector<ulint>::create(); 00619 00620 instrs->push_back(INSTRUCTION_IDIV__2); 00621 instrs->push_back(INSTRUCTION_IDIV__3); 00622 00623 //input operands 00624 in_pids->push_back(CWD_O_1); 00625 in_refs->push_back(I_1); 00626 in_pids->push_back(CWD_O_2); 00627 in_refs->push_back(I_2); 00628 in_pids->push_back(PIN_2); 00629 in_refs->push_back(I_3); 00630 00631 //output operands 00632 out_pids->push_back(DIV_O_1); 00633 out_refs->push_back(O_1); 00634 out_pids->push_back(POUT_1); 00635 out_refs->push_back(O_2); 00636 out_pids->push_back(DIV_O_3); 00637 out_refs->push_back(O_3); 00638 00639 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00640 00641 00642 return pi_pi2ge_pi_template::create(TEM_REM_2,instr_patts); 00643 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_REM_3 | ( | ) |
Definition at line 645 of file pi_pi2ge_pi_template.mdg.cc.
References DIV_O_1, DIV_O_3, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__2, INSTRUCTION_DIV__3, INSTRUCTION_NULLAH__1, INSTRUCTION_NULLDX__1, INSTRUCTION_NULLEDX__1, NULL_O_1, O_1, O_2, O_3, PIN_1, PIN_2, POUT_1, and TEM_REM_3.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00645 { 00646 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00647 00648 ptr<vector<ulint> > instrs; 00649 ptr<vector<ulint> > in_pids; 00650 ptr<vector<ulint> > out_pids; 00651 ptr<vector<ulint> > in_refs; 00652 ptr<vector<ulint> > out_refs; 00653 00654 instrs = vector<ulint>::create(); 00655 in_pids = vector<ulint>::create(); 00656 out_pids = vector<ulint>::create(); 00657 in_refs = vector<ulint>::create(); 00658 out_refs = vector<ulint>::create(); 00659 00660 instrs->push_back(INSTRUCTION_NULLAH__1); 00661 instrs->push_back(INSTRUCTION_NULLDX__1); 00662 instrs->push_back(INSTRUCTION_NULLEDX__1); 00663 00664 //input operands 00665 00666 //output operands 00667 out_pids->push_back(NULL_O_1); 00668 out_refs->push_back(O_1); 00669 00670 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00671 00672 00673 instrs = vector<ulint>::create(); 00674 in_pids = vector<ulint>::create(); 00675 out_pids = vector<ulint>::create(); 00676 in_refs = vector<ulint>::create(); 00677 out_refs = vector<ulint>::create(); 00678 00679 instrs->push_back(INSTRUCTION_DIV__1); 00680 instrs->push_back(INSTRUCTION_DIV__2); 00681 instrs->push_back(INSTRUCTION_DIV__3); 00682 00683 //input operands 00684 in_pids->push_back(NULL_O_1); 00685 in_refs->push_back(I_1); 00686 in_pids->push_back(PIN_1); 00687 in_refs->push_back(I_2); 00688 in_pids->push_back(PIN_2); 00689 in_refs->push_back(I_3); 00690 00691 //output operands 00692 out_pids->push_back(DIV_O_1); 00693 out_refs->push_back(O_1); 00694 out_pids->push_back(POUT_1); 00695 out_refs->push_back(O_2); 00696 out_pids->push_back(DIV_O_3); 00697 out_refs->push_back(O_3); 00698 00699 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00700 00701 00702 return pi_pi2ge_pi_template::create(TEM_REM_3,instr_patts); 00703 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SAL_1 | ( | ) |
Definition at line 877 of file pi_pi2ge_pi_template.mdg.cc.
References CVT_O_1, I_1, I_2, INSTRUCTION_CONVERT__1, INSTRUCTION_SAL__1, O_1, O_2, PIN_1, PIN_2, POUT_1, SAL_O_2, and TEM_SAL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00877 { 00878 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00879 00880 ptr<vector<ulint> > instrs; 00881 ptr<vector<ulint> > in_pids; 00882 ptr<vector<ulint> > out_pids; 00883 ptr<vector<ulint> > in_refs; 00884 ptr<vector<ulint> > out_refs; 00885 00886 instrs = vector<ulint>::create(); 00887 in_pids = vector<ulint>::create(); 00888 out_pids = vector<ulint>::create(); 00889 in_refs = vector<ulint>::create(); 00890 out_refs = vector<ulint>::create(); 00891 00892 instrs->push_back(INSTRUCTION_CONVERT__1); 00893 00894 //input operands 00895 in_pids->push_back(PIN_2); 00896 in_refs->push_back(I_1); 00897 00898 //output operands 00899 out_pids->push_back(CVT_O_1); 00900 out_refs->push_back(O_1); 00901 00902 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00903 00904 00905 instrs = vector<ulint>::create(); 00906 in_pids = vector<ulint>::create(); 00907 out_pids = vector<ulint>::create(); 00908 in_refs = vector<ulint>::create(); 00909 out_refs = vector<ulint>::create(); 00910 00911 instrs->push_back(INSTRUCTION_SAL__1); 00912 00913 //input operands 00914 in_pids->push_back(PIN_1); 00915 in_refs->push_back(I_1); 00916 in_pids->push_back(CVT_O_1); 00917 in_refs->push_back(I_2); 00918 00919 //output operands 00920 out_pids->push_back(POUT_1); 00921 out_refs->push_back(O_1); 00922 out_pids->push_back(SAL_O_2); 00923 out_refs->push_back(O_2); 00924 00925 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00926 00927 00928 return pi_pi2ge_pi_template::create(TEM_SAL_1,instr_patts); 00929 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SAR_1 | ( | ) |
Definition at line 931 of file pi_pi2ge_pi_template.mdg.cc.
References CVT_O_1, I_1, I_2, INSTRUCTION_CONVERT__1, INSTRUCTION_SAR__1, O_1, O_2, PIN_1, PIN_2, POUT_1, SAR_O_2, and TEM_SAR_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00931 { 00932 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00933 00934 ptr<vector<ulint> > instrs; 00935 ptr<vector<ulint> > in_pids; 00936 ptr<vector<ulint> > out_pids; 00937 ptr<vector<ulint> > in_refs; 00938 ptr<vector<ulint> > out_refs; 00939 00940 instrs = vector<ulint>::create(); 00941 in_pids = vector<ulint>::create(); 00942 out_pids = vector<ulint>::create(); 00943 in_refs = vector<ulint>::create(); 00944 out_refs = vector<ulint>::create(); 00945 00946 instrs->push_back(INSTRUCTION_CONVERT__1); 00947 00948 //input operands 00949 in_pids->push_back(PIN_2); 00950 in_refs->push_back(I_1); 00951 00952 //output operands 00953 out_pids->push_back(CVT_O_1); 00954 out_refs->push_back(O_1); 00955 00956 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00957 00958 00959 instrs = vector<ulint>::create(); 00960 in_pids = vector<ulint>::create(); 00961 out_pids = vector<ulint>::create(); 00962 in_refs = vector<ulint>::create(); 00963 out_refs = vector<ulint>::create(); 00964 00965 instrs->push_back(INSTRUCTION_SAR__1); 00966 00967 //input operands 00968 in_pids->push_back(PIN_1); 00969 in_refs->push_back(I_1); 00970 in_pids->push_back(CVT_O_1); 00971 in_refs->push_back(I_2); 00972 00973 //output operands 00974 out_pids->push_back(POUT_1); 00975 out_refs->push_back(O_1); 00976 out_pids->push_back(SAR_O_2); 00977 out_refs->push_back(O_2); 00978 00979 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00980 00981 00982 return pi_pi2ge_pi_template::create(TEM_SAR_1,instr_patts); 00983 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SBE_1 | ( | ) |
Definition at line 2268 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, I_2, INSTRUCTION_CMP__2, INSTRUCTION_SETE__1, O_1, PIN_1, PIN_2, POUT_1, and TEM_SBE_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02268 { 02269 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02270 02271 ptr<vector<ulint> > instrs; 02272 ptr<vector<ulint> > in_pids; 02273 ptr<vector<ulint> > out_pids; 02274 ptr<vector<ulint> > in_refs; 02275 ptr<vector<ulint> > out_refs; 02276 02277 instrs = vector<ulint>::create(); 02278 in_pids = vector<ulint>::create(); 02279 out_pids = vector<ulint>::create(); 02280 in_refs = vector<ulint>::create(); 02281 out_refs = vector<ulint>::create(); 02282 02283 instrs->push_back(INSTRUCTION_CMP__2); 02284 02285 //input operands 02286 in_pids->push_back(PIN_1); 02287 in_refs->push_back(I_1); 02288 in_pids->push_back(PIN_2); 02289 in_refs->push_back(I_2); 02290 02291 //output operands 02292 out_pids->push_back(CMP_O_1); 02293 out_refs->push_back(O_1); 02294 02295 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02296 02297 02298 instrs = vector<ulint>::create(); 02299 in_pids = vector<ulint>::create(); 02300 out_pids = vector<ulint>::create(); 02301 in_refs = vector<ulint>::create(); 02302 out_refs = vector<ulint>::create(); 02303 02304 instrs->push_back(INSTRUCTION_SETE__1); 02305 02306 //input operands 02307 in_pids->push_back(CMP_O_1); 02308 in_refs->push_back(I_1); 02309 02310 //output operands 02311 out_pids->push_back(POUT_1); 02312 out_refs->push_back(O_1); 02313 02314 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02315 02316 02317 return pi_pi2ge_pi_template::create(TEM_SBE_1,instr_patts); 02318 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SBG_1 | ( | ) |
Definition at line 2162 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, I_2, INSTRUCTION_CMP__2, INSTRUCTION_SETA__1, INSTRUCTION_SETG__1, O_1, PIN_1, PIN_2, POUT_1, and TEM_SBG_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02162 { 02163 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02164 02165 ptr<vector<ulint> > instrs; 02166 ptr<vector<ulint> > in_pids; 02167 ptr<vector<ulint> > out_pids; 02168 ptr<vector<ulint> > in_refs; 02169 ptr<vector<ulint> > out_refs; 02170 02171 instrs = vector<ulint>::create(); 02172 in_pids = vector<ulint>::create(); 02173 out_pids = vector<ulint>::create(); 02174 in_refs = vector<ulint>::create(); 02175 out_refs = vector<ulint>::create(); 02176 02177 instrs->push_back(INSTRUCTION_CMP__2); 02178 02179 //input operands 02180 in_pids->push_back(PIN_1); 02181 in_refs->push_back(I_1); 02182 in_pids->push_back(PIN_2); 02183 in_refs->push_back(I_2); 02184 02185 //output operands 02186 out_pids->push_back(CMP_O_1); 02187 out_refs->push_back(O_1); 02188 02189 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02190 02191 02192 instrs = vector<ulint>::create(); 02193 in_pids = vector<ulint>::create(); 02194 out_pids = vector<ulint>::create(); 02195 in_refs = vector<ulint>::create(); 02196 out_refs = vector<ulint>::create(); 02197 02198 instrs->push_back(INSTRUCTION_SETG__1); 02199 instrs->push_back(INSTRUCTION_SETA__1); 02200 02201 //input operands 02202 in_pids->push_back(CMP_O_1); 02203 in_refs->push_back(I_1); 02204 02205 //output operands 02206 out_pids->push_back(POUT_1); 02207 out_refs->push_back(O_1); 02208 02209 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02210 02211 02212 return pi_pi2ge_pi_template::create(TEM_SBG_1,instr_patts); 02213 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SBL_1 | ( | ) |
Definition at line 2215 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, I_2, INSTRUCTION_CMP__2, INSTRUCTION_SETB__1, INSTRUCTION_SETL__1, O_1, PIN_1, PIN_2, POUT_1, and TEM_SBL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02215 { 02216 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02217 02218 ptr<vector<ulint> > instrs; 02219 ptr<vector<ulint> > in_pids; 02220 ptr<vector<ulint> > out_pids; 02221 ptr<vector<ulint> > in_refs; 02222 ptr<vector<ulint> > out_refs; 02223 02224 instrs = vector<ulint>::create(); 02225 in_pids = vector<ulint>::create(); 02226 out_pids = vector<ulint>::create(); 02227 in_refs = vector<ulint>::create(); 02228 out_refs = vector<ulint>::create(); 02229 02230 instrs->push_back(INSTRUCTION_CMP__2); 02231 02232 //input operands 02233 in_pids->push_back(PIN_1); 02234 in_refs->push_back(I_1); 02235 in_pids->push_back(PIN_2); 02236 in_refs->push_back(I_2); 02237 02238 //output operands 02239 out_pids->push_back(CMP_O_1); 02240 out_refs->push_back(O_1); 02241 02242 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02243 02244 02245 instrs = vector<ulint>::create(); 02246 in_pids = vector<ulint>::create(); 02247 out_pids = vector<ulint>::create(); 02248 in_refs = vector<ulint>::create(); 02249 out_refs = vector<ulint>::create(); 02250 02251 instrs->push_back(INSTRUCTION_SETL__1); 02252 instrs->push_back(INSTRUCTION_SETB__1); 02253 02254 //input operands 02255 in_pids->push_back(CMP_O_1); 02256 in_refs->push_back(I_1); 02257 02258 //output operands 02259 out_pids->push_back(POUT_1); 02260 out_refs->push_back(O_1); 02261 02262 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02263 02264 02265 return pi_pi2ge_pi_template::create(TEM_SBL_1,instr_patts); 02266 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SBNE_1 | ( | ) |
Definition at line 2426 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, I_2, INSTRUCTION_CMP__2, INSTRUCTION_SETNE__1, O_1, PIN_1, PIN_2, POUT_1, and TEM_SBNE_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02426 { 02427 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02428 02429 ptr<vector<ulint> > instrs; 02430 ptr<vector<ulint> > in_pids; 02431 ptr<vector<ulint> > out_pids; 02432 ptr<vector<ulint> > in_refs; 02433 ptr<vector<ulint> > out_refs; 02434 02435 instrs = vector<ulint>::create(); 02436 in_pids = vector<ulint>::create(); 02437 out_pids = vector<ulint>::create(); 02438 in_refs = vector<ulint>::create(); 02439 out_refs = vector<ulint>::create(); 02440 02441 instrs->push_back(INSTRUCTION_CMP__2); 02442 02443 //input operands 02444 in_pids->push_back(PIN_1); 02445 in_refs->push_back(I_1); 02446 in_pids->push_back(PIN_2); 02447 in_refs->push_back(I_2); 02448 02449 //output operands 02450 out_pids->push_back(CMP_O_1); 02451 out_refs->push_back(O_1); 02452 02453 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02454 02455 02456 instrs = vector<ulint>::create(); 02457 in_pids = vector<ulint>::create(); 02458 out_pids = vector<ulint>::create(); 02459 in_refs = vector<ulint>::create(); 02460 out_refs = vector<ulint>::create(); 02461 02462 instrs->push_back(INSTRUCTION_SETNE__1); 02463 02464 //input operands 02465 in_pids->push_back(CMP_O_1); 02466 in_refs->push_back(I_1); 02467 02468 //output operands 02469 out_pids->push_back(POUT_1); 02470 out_refs->push_back(O_1); 02471 02472 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02473 02474 02475 return pi_pi2ge_pi_template::create(TEM_SBNE_1,instr_patts); 02476 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SBNG_1 | ( | ) |
Definition at line 2320 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, I_2, INSTRUCTION_CMP__2, INSTRUCTION_SETNA__1, INSTRUCTION_SETNG__1, O_1, PIN_1, PIN_2, POUT_1, and TEM_SBNG_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02320 { 02321 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02322 02323 ptr<vector<ulint> > instrs; 02324 ptr<vector<ulint> > in_pids; 02325 ptr<vector<ulint> > out_pids; 02326 ptr<vector<ulint> > in_refs; 02327 ptr<vector<ulint> > out_refs; 02328 02329 instrs = vector<ulint>::create(); 02330 in_pids = vector<ulint>::create(); 02331 out_pids = vector<ulint>::create(); 02332 in_refs = vector<ulint>::create(); 02333 out_refs = vector<ulint>::create(); 02334 02335 instrs->push_back(INSTRUCTION_CMP__2); 02336 02337 //input operands 02338 in_pids->push_back(PIN_1); 02339 in_refs->push_back(I_1); 02340 in_pids->push_back(PIN_2); 02341 in_refs->push_back(I_2); 02342 02343 //output operands 02344 out_pids->push_back(CMP_O_1); 02345 out_refs->push_back(O_1); 02346 02347 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02348 02349 02350 instrs = vector<ulint>::create(); 02351 in_pids = vector<ulint>::create(); 02352 out_pids = vector<ulint>::create(); 02353 in_refs = vector<ulint>::create(); 02354 out_refs = vector<ulint>::create(); 02355 02356 instrs->push_back(INSTRUCTION_SETNG__1); 02357 instrs->push_back(INSTRUCTION_SETNA__1); 02358 02359 //input operands 02360 in_pids->push_back(CMP_O_1); 02361 in_refs->push_back(I_1); 02362 02363 //output operands 02364 out_pids->push_back(POUT_1); 02365 out_refs->push_back(O_1); 02366 02367 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02368 02369 02370 return pi_pi2ge_pi_template::create(TEM_SBNG_1,instr_patts); 02371 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SBNL_1 | ( | ) |
Definition at line 2373 of file pi_pi2ge_pi_template.mdg.cc.
References CMP_O_1, I_1, I_2, INSTRUCTION_CMP__2, INSTRUCTION_SETNB__1, INSTRUCTION_SETNL__1, O_1, PIN_1, PIN_2, POUT_1, and TEM_SBNL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
02373 { 02374 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 02375 02376 ptr<vector<ulint> > instrs; 02377 ptr<vector<ulint> > in_pids; 02378 ptr<vector<ulint> > out_pids; 02379 ptr<vector<ulint> > in_refs; 02380 ptr<vector<ulint> > out_refs; 02381 02382 instrs = vector<ulint>::create(); 02383 in_pids = vector<ulint>::create(); 02384 out_pids = vector<ulint>::create(); 02385 in_refs = vector<ulint>::create(); 02386 out_refs = vector<ulint>::create(); 02387 02388 instrs->push_back(INSTRUCTION_CMP__2); 02389 02390 //input operands 02391 in_pids->push_back(PIN_1); 02392 in_refs->push_back(I_1); 02393 in_pids->push_back(PIN_2); 02394 in_refs->push_back(I_2); 02395 02396 //output operands 02397 out_pids->push_back(CMP_O_1); 02398 out_refs->push_back(O_1); 02399 02400 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02401 02402 02403 instrs = vector<ulint>::create(); 02404 in_pids = vector<ulint>::create(); 02405 out_pids = vector<ulint>::create(); 02406 in_refs = vector<ulint>::create(); 02407 out_refs = vector<ulint>::create(); 02408 02409 instrs->push_back(INSTRUCTION_SETNL__1); 02410 instrs->push_back(INSTRUCTION_SETNB__1); 02411 02412 //input operands 02413 in_pids->push_back(CMP_O_1); 02414 in_refs->push_back(I_1); 02415 02416 //output operands 02417 out_pids->push_back(POUT_1); 02418 out_refs->push_back(O_1); 02419 02420 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 02421 02422 02423 return pi_pi2ge_pi_template::create(TEM_SBNL_1,instr_patts); 02424 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SHL_1 | ( | ) |
Definition at line 769 of file pi_pi2ge_pi_template.mdg.cc.
References CVT_O_1, I_1, I_2, INSTRUCTION_CONVERT__1, INSTRUCTION_SHL__1, O_1, O_2, PIN_1, PIN_2, POUT_1, SHL_O_2, and TEM_SHL_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00769 { 00770 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00771 00772 ptr<vector<ulint> > instrs; 00773 ptr<vector<ulint> > in_pids; 00774 ptr<vector<ulint> > out_pids; 00775 ptr<vector<ulint> > in_refs; 00776 ptr<vector<ulint> > out_refs; 00777 00778 instrs = vector<ulint>::create(); 00779 in_pids = vector<ulint>::create(); 00780 out_pids = vector<ulint>::create(); 00781 in_refs = vector<ulint>::create(); 00782 out_refs = vector<ulint>::create(); 00783 00784 instrs->push_back(INSTRUCTION_CONVERT__1); 00785 00786 //input operands 00787 in_pids->push_back(PIN_2); 00788 in_refs->push_back(I_1); 00789 00790 //output operands 00791 out_pids->push_back(CVT_O_1); 00792 out_refs->push_back(O_1); 00793 00794 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00795 00796 00797 instrs = vector<ulint>::create(); 00798 in_pids = vector<ulint>::create(); 00799 out_pids = vector<ulint>::create(); 00800 in_refs = vector<ulint>::create(); 00801 out_refs = vector<ulint>::create(); 00802 00803 instrs->push_back(INSTRUCTION_SHL__1); 00804 00805 //input operands 00806 in_pids->push_back(PIN_1); 00807 in_refs->push_back(I_1); 00808 in_pids->push_back(CVT_O_1); 00809 in_refs->push_back(I_2); 00810 00811 //output operands 00812 out_pids->push_back(POUT_1); 00813 out_refs->push_back(O_1); 00814 out_pids->push_back(SHL_O_2); 00815 out_refs->push_back(O_2); 00816 00817 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00818 00819 00820 return pi_pi2ge_pi_template::create(TEM_SHL_1,instr_patts); 00821 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SHR_1 | ( | ) |
Definition at line 823 of file pi_pi2ge_pi_template.mdg.cc.
References CVT_O_1, I_1, I_2, INSTRUCTION_CONVERT__1, INSTRUCTION_SHR__1, O_1, O_2, PIN_1, PIN_2, POUT_1, SHR_O_2, and TEM_SHR_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00823 { 00824 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00825 00826 ptr<vector<ulint> > instrs; 00827 ptr<vector<ulint> > in_pids; 00828 ptr<vector<ulint> > out_pids; 00829 ptr<vector<ulint> > in_refs; 00830 ptr<vector<ulint> > out_refs; 00831 00832 instrs = vector<ulint>::create(); 00833 in_pids = vector<ulint>::create(); 00834 out_pids = vector<ulint>::create(); 00835 in_refs = vector<ulint>::create(); 00836 out_refs = vector<ulint>::create(); 00837 00838 instrs->push_back(INSTRUCTION_CONVERT__1); 00839 00840 //input operands 00841 in_pids->push_back(PIN_2); 00842 in_refs->push_back(I_1); 00843 00844 //output operands 00845 out_pids->push_back(CVT_O_1); 00846 out_refs->push_back(O_1); 00847 00848 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00849 00850 00851 instrs = vector<ulint>::create(); 00852 in_pids = vector<ulint>::create(); 00853 out_pids = vector<ulint>::create(); 00854 in_refs = vector<ulint>::create(); 00855 out_refs = vector<ulint>::create(); 00856 00857 instrs->push_back(INSTRUCTION_SHR__1); 00858 00859 //input operands 00860 in_pids->push_back(PIN_1); 00861 in_refs->push_back(I_1); 00862 in_pids->push_back(CVT_O_1); 00863 in_refs->push_back(I_2); 00864 00865 //output operands 00866 out_pids->push_back(POUT_1); 00867 out_refs->push_back(O_1); 00868 out_pids->push_back(SHR_O_2); 00869 out_refs->push_back(O_2); 00870 00871 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00872 00873 00874 return pi_pi2ge_pi_template::create(TEM_SHR_1,instr_patts); 00875 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_ST_1 | ( | ) |
Definition at line 1417 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, O_1, PIN_1, POUT_1, and TEM_ST_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01417 { 01418 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01419 01420 ptr<vector<ulint> > instrs; 01421 ptr<vector<ulint> > in_pids; 01422 ptr<vector<ulint> > out_pids; 01423 ptr<vector<ulint> > in_refs; 01424 ptr<vector<ulint> > out_refs; 01425 01426 instrs = vector<ulint>::create(); 01427 in_pids = vector<ulint>::create(); 01428 out_pids = vector<ulint>::create(); 01429 in_refs = vector<ulint>::create(); 01430 out_refs = vector<ulint>::create(); 01431 01432 instrs->push_back(INSTRUCTION_MOV__2); 01433 instrs->push_back(INSTRUCTION_MOV__1); 01434 01435 //input operands 01436 in_pids->push_back(PIN_1); 01437 in_refs->push_back(I_1); 01438 01439 //output operands 01440 out_pids->push_back(POUT_1); 01441 out_refs->push_back(O_1); 01442 01443 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01444 01445 01446 return pi_pi2ge_pi_template::create(TEM_ST_1,instr_patts); 01447 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_STI_1 | ( | ) |
Definition at line 1481 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__4, O_1, PIN_1, POUT_1, and TEM_STI_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01481 { 01482 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01483 01484 ptr<vector<ulint> > instrs; 01485 ptr<vector<ulint> > in_pids; 01486 ptr<vector<ulint> > out_pids; 01487 ptr<vector<ulint> > in_refs; 01488 ptr<vector<ulint> > out_refs; 01489 01490 instrs = vector<ulint>::create(); 01491 in_pids = vector<ulint>::create(); 01492 out_pids = vector<ulint>::create(); 01493 in_refs = vector<ulint>::create(); 01494 out_refs = vector<ulint>::create(); 01495 01496 instrs->push_back(INSTRUCTION_MOV__4); 01497 01498 //input operands 01499 in_pids->push_back(PIN_1); 01500 in_refs->push_back(I_1); 01501 01502 //output operands 01503 out_pids->push_back(POUT_1); 01504 out_refs->push_back(O_1); 01505 01506 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01507 01508 01509 return pi_pi2ge_pi_template::create(TEM_STI_1,instr_patts); 01510 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_STIV_1 | ( | ) |
Definition at line 1512 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__4, O_1, PIN_1, POUT_1, and TEM_STIV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01512 { 01513 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01514 01515 ptr<vector<ulint> > instrs; 01516 ptr<vector<ulint> > in_pids; 01517 ptr<vector<ulint> > out_pids; 01518 ptr<vector<ulint> > in_refs; 01519 ptr<vector<ulint> > out_refs; 01520 01521 instrs = vector<ulint>::create(); 01522 in_pids = vector<ulint>::create(); 01523 out_pids = vector<ulint>::create(); 01524 in_refs = vector<ulint>::create(); 01525 out_refs = vector<ulint>::create(); 01526 01527 instrs->push_back(INSTRUCTION_MOV__4); 01528 01529 //input operands 01530 in_pids->push_back(PIN_1); 01531 in_refs->push_back(I_1); 01532 01533 //output operands 01534 out_pids->push_back(POUT_1); 01535 out_refs->push_back(O_1); 01536 01537 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01538 01539 01540 return pi_pi2ge_pi_template::create(TEM_STIV_1,instr_patts); 01541 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_STP_1 | ( | ) |
Definition at line 1543 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_MOV__7, O_1, PIN_1, PIN_2, POUT_1, and TEM_STP_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01543 { 01544 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01545 01546 ptr<vector<ulint> > instrs; 01547 ptr<vector<ulint> > in_pids; 01548 ptr<vector<ulint> > out_pids; 01549 ptr<vector<ulint> > in_refs; 01550 ptr<vector<ulint> > out_refs; 01551 01552 instrs = vector<ulint>::create(); 01553 in_pids = vector<ulint>::create(); 01554 out_pids = vector<ulint>::create(); 01555 in_refs = vector<ulint>::create(); 01556 out_refs = vector<ulint>::create(); 01557 01558 instrs->push_back(INSTRUCTION_MOV__7); 01559 01560 //input operands 01561 in_pids->push_back(PIN_1); 01562 in_refs->push_back(I_1); 01563 in_pids->push_back(PIN_2); 01564 in_refs->push_back(I_2); 01565 01566 //output operands 01567 out_pids->push_back(POUT_1); 01568 out_refs->push_back(O_1); 01569 01570 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01571 01572 01573 return pi_pi2ge_pi_template::create(TEM_STP_1,instr_patts); 01574 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_STPV_1 | ( | ) |
Definition at line 1576 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_MOV__7, O_1, PIN_1, PIN_2, POUT_1, and TEM_STPV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01576 { 01577 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01578 01579 ptr<vector<ulint> > instrs; 01580 ptr<vector<ulint> > in_pids; 01581 ptr<vector<ulint> > out_pids; 01582 ptr<vector<ulint> > in_refs; 01583 ptr<vector<ulint> > out_refs; 01584 01585 instrs = vector<ulint>::create(); 01586 in_pids = vector<ulint>::create(); 01587 out_pids = vector<ulint>::create(); 01588 in_refs = vector<ulint>::create(); 01589 out_refs = vector<ulint>::create(); 01590 01591 instrs->push_back(INSTRUCTION_MOV__7); 01592 01593 //input operands 01594 in_pids->push_back(PIN_1); 01595 in_refs->push_back(I_1); 01596 in_pids->push_back(PIN_2); 01597 in_refs->push_back(I_2); 01598 01599 //output operands 01600 out_pids->push_back(POUT_1); 01601 out_refs->push_back(O_1); 01602 01603 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01604 01605 01606 return pi_pi2ge_pi_template::create(TEM_STPV_1,instr_patts); 01607 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_STV_1 | ( | ) |
Definition at line 1449 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, O_1, PIN_1, POUT_1, and TEM_STV_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
01449 { 01450 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 01451 01452 ptr<vector<ulint> > instrs; 01453 ptr<vector<ulint> > in_pids; 01454 ptr<vector<ulint> > out_pids; 01455 ptr<vector<ulint> > in_refs; 01456 ptr<vector<ulint> > out_refs; 01457 01458 instrs = vector<ulint>::create(); 01459 in_pids = vector<ulint>::create(); 01460 out_pids = vector<ulint>::create(); 01461 in_refs = vector<ulint>::create(); 01462 out_refs = vector<ulint>::create(); 01463 01464 instrs->push_back(INSTRUCTION_MOV__2); 01465 instrs->push_back(INSTRUCTION_MOV__1); 01466 01467 //input operands 01468 in_pids->push_back(PIN_1); 01469 in_refs->push_back(I_1); 01470 01471 //output operands 01472 out_pids->push_back(POUT_1); 01473 out_refs->push_back(O_1); 01474 01475 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 01476 01477 01478 return pi_pi2ge_pi_template::create(TEM_STV_1,instr_patts); 01479 }
| ptr<pi_pi2ge_pi_template> lestes::md::instructions::pi_pi2ge_pi_template_create_TEM_SUB_1 | ( | ) |
Definition at line 55 of file pi_pi2ge_pi_template.mdg.cc.
References I_1, I_2, INSTRUCTION_SUB__1, INSTRUCTION_SUB__11, INSTRUCTION_SUB__12, O_1, O_2, PIN_1, PIN_2, POUT_1, SUB_O_2, and TEM_SUB_1.
Referenced by lestes::md::instructions::pi_pi2ge_pi_template::instance().
00055 { 00056 ptr<vector<srp<instruction_group_base> > > instr_patts = vector<srp<instruction_group_base> >::create(); 00057 00058 ptr<vector<ulint> > instrs; 00059 ptr<vector<ulint> > in_pids; 00060 ptr<vector<ulint> > out_pids; 00061 ptr<vector<ulint> > in_refs; 00062 ptr<vector<ulint> > out_refs; 00063 00064 instrs = vector<ulint>::create(); 00065 in_pids = vector<ulint>::create(); 00066 out_pids = vector<ulint>::create(); 00067 in_refs = vector<ulint>::create(); 00068 out_refs = vector<ulint>::create(); 00069 00070 instrs->push_back(INSTRUCTION_SUB__1); 00071 instrs->push_back(INSTRUCTION_SUB__11); 00072 instrs->push_back(INSTRUCTION_SUB__12); 00073 00074 //input operands 00075 in_pids->push_back(PIN_1); 00076 in_refs->push_back(I_1); 00077 in_pids->push_back(PIN_2); 00078 in_refs->push_back(I_2); 00079 00080 //output operands 00081 out_pids->push_back(POUT_1); 00082 out_refs->push_back(O_1); 00083 out_pids->push_back(SUB_O_2); 00084 out_refs->push_back(O_2); 00085 00086 instr_patts->push_back(instruction_group::create(instrs,in_pids,out_pids,in_refs,out_refs)); 00087 00088 00089 return pi_pi2ge_pi_template::create(TEM_SUB_1,instr_patts); 00090 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_ADD__1 | ( | ) |
Definition at line 964 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_ADD__1, INSTRUCTION_ADD__11, INSTRUCTION_ADD__12, INSTRUCTION_ADD__13, INSTRUCTION_ADD__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00964 { 00965 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00966 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00967 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00968 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00969 ptr<set<tm_data_type_base::id_type> > allowed_types; 00970 ptr<execution_info> einfo; 00971 ptr<set<ulint> > versions; 00972 00973 //input operands 00974 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00975 dt_list_I_1->insert(DT_INT_8P); 00976 dt_list_I_1->insert(DT_INT_8U); 00977 dt_list_I_1->insert(DT_INT_8S); 00978 dt_list_I_1->insert(DT_INT_16U); 00979 dt_list_I_1->insert(DT_INT_16S); 00980 dt_list_I_1->insert(DT_INT_32U); 00981 dt_list_I_1->insert(DT_INT_32S); 00982 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00983 reg_list_I_1->insert(R_EAX); 00984 reg_list_I_1->insert(R_EBX); 00985 reg_list_I_1->insert(R_ECX); 00986 reg_list_I_1->insert(R_EDX); 00987 reg_list_I_1->insert(R_EDI); 00988 reg_list_I_1->insert(R_ESI); 00989 reg_list_I_1->insert(R_AX); 00990 reg_list_I_1->insert(R_BX); 00991 reg_list_I_1->insert(R_CX); 00992 reg_list_I_1->insert(R_DX); 00993 reg_list_I_1->insert(R_DI); 00994 reg_list_I_1->insert(R_SI); 00995 reg_list_I_1->insert(R_AL); 00996 reg_list_I_1->insert(R_AH); 00997 reg_list_I_1->insert(R_BL); 00998 reg_list_I_1->insert(R_BH); 00999 reg_list_I_1->insert(R_CL); 01000 reg_list_I_1->insert(R_CH); 01001 reg_list_I_1->insert(R_DL); 01002 reg_list_I_1->insert(R_DH); 01003 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01004 op_I_1->destroyed_by_get()->push_back(O_1); 01005 in_operands->push_back(op_I_1); 01006 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01007 dt_list_I_2->insert(DT_INT_8P); 01008 dt_list_I_2->insert(DT_INT_8U); 01009 dt_list_I_2->insert(DT_INT_8S); 01010 dt_list_I_2->insert(DT_INT_16U); 01011 dt_list_I_2->insert(DT_INT_16S); 01012 dt_list_I_2->insert(DT_INT_32U); 01013 dt_list_I_2->insert(DT_INT_32S); 01014 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 01015 reg_list_I_2->insert(R_EAX); 01016 reg_list_I_2->insert(R_EBX); 01017 reg_list_I_2->insert(R_ECX); 01018 reg_list_I_2->insert(R_EDX); 01019 reg_list_I_2->insert(R_EDI); 01020 reg_list_I_2->insert(R_ESI); 01021 reg_list_I_2->insert(R_AX); 01022 reg_list_I_2->insert(R_BX); 01023 reg_list_I_2->insert(R_CX); 01024 reg_list_I_2->insert(R_DX); 01025 reg_list_I_2->insert(R_DI); 01026 reg_list_I_2->insert(R_SI); 01027 reg_list_I_2->insert(R_AL); 01028 reg_list_I_2->insert(R_AH); 01029 reg_list_I_2->insert(R_BL); 01030 reg_list_I_2->insert(R_BH); 01031 reg_list_I_2->insert(R_CL); 01032 reg_list_I_2->insert(R_CH); 01033 reg_list_I_2->insert(R_DL); 01034 reg_list_I_2->insert(R_DH); 01035 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 01036 in_operands->push_back(op_I_2); 01037 01038 //output operands 01039 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01040 dt_list_O_1->insert(DT_INT_8P); 01041 dt_list_O_1->insert(DT_INT_8U); 01042 dt_list_O_1->insert(DT_INT_8S); 01043 dt_list_O_1->insert(DT_INT_16U); 01044 dt_list_O_1->insert(DT_INT_16S); 01045 dt_list_O_1->insert(DT_INT_32U); 01046 dt_list_O_1->insert(DT_INT_32S); 01047 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01048 reg_list_O_1->insert(R_EAX); 01049 reg_list_O_1->insert(R_EBX); 01050 reg_list_O_1->insert(R_ECX); 01051 reg_list_O_1->insert(R_EDX); 01052 reg_list_O_1->insert(R_EDI); 01053 reg_list_O_1->insert(R_ESI); 01054 reg_list_O_1->insert(R_AX); 01055 reg_list_O_1->insert(R_BX); 01056 reg_list_O_1->insert(R_CX); 01057 reg_list_O_1->insert(R_DX); 01058 reg_list_O_1->insert(R_DI); 01059 reg_list_O_1->insert(R_SI); 01060 reg_list_O_1->insert(R_AL); 01061 reg_list_O_1->insert(R_AH); 01062 reg_list_O_1->insert(R_BL); 01063 reg_list_O_1->insert(R_BH); 01064 reg_list_O_1->insert(R_CL); 01065 reg_list_O_1->insert(R_CH); 01066 reg_list_O_1->insert(R_DL); 01067 reg_list_O_1->insert(R_DH); 01068 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01069 op_O_1->destroys_set(I_1); 01070 out_operands->push_back(op_O_1); 01071 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01072 dt_list_O_2->insert(DT_COND); 01073 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01074 reg_list_O_2->insert(R_COND); 01075 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01076 out_operands->push_back(op_O_2); 01077 01078 //execution info 01079 einfo = execution_info::create(10); 01080 01081 //properties 01082 01083 //versions 01084 versions = set<ulint>::create(); 01085 versions->insert(INSTRUCTION_ADD__11); 01086 versions->insert(INSTRUCTION_ADD__12); 01087 versions->insert(INSTRUCTION_ADD__13); 01088 versions->insert(INSTRUCTION_ADD__14); 01089 01090 01091 //return target pseudoinstruction 01092 return tm_instr::create(INSTRUCTION_ADD__1,in_operands,out_operands,lstring("add $O_1, $I_2"), props,versions,0,einfo); 01093 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_ADD__11 | ( | ) |
Definition at line 1095 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_ADD__1, INSTRUCTION_ADD__11, INSTRUCTION_ADD__12, INSTRUCTION_ADD__13, INSTRUCTION_ADD__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01095 { 01096 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01097 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01098 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01099 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01100 ptr<set<tm_data_type_base::id_type> > allowed_types; 01101 ptr<execution_info> einfo; 01102 ptr<set<ulint> > versions; 01103 01104 //input operands 01105 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01106 dt_list_I_1->insert(DT_INT_8P); 01107 dt_list_I_1->insert(DT_INT_8U); 01108 dt_list_I_1->insert(DT_INT_8S); 01109 dt_list_I_1->insert(DT_INT_16U); 01110 dt_list_I_1->insert(DT_INT_16S); 01111 dt_list_I_1->insert(DT_INT_32U); 01112 dt_list_I_1->insert(DT_INT_32S); 01113 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01114 reg_list_I_1->insert(R_EAX); 01115 reg_list_I_1->insert(R_EBX); 01116 reg_list_I_1->insert(R_ECX); 01117 reg_list_I_1->insert(R_EDX); 01118 reg_list_I_1->insert(R_EDI); 01119 reg_list_I_1->insert(R_ESI); 01120 reg_list_I_1->insert(R_AX); 01121 reg_list_I_1->insert(R_BX); 01122 reg_list_I_1->insert(R_CX); 01123 reg_list_I_1->insert(R_DX); 01124 reg_list_I_1->insert(R_DI); 01125 reg_list_I_1->insert(R_SI); 01126 reg_list_I_1->insert(R_AL); 01127 reg_list_I_1->insert(R_AH); 01128 reg_list_I_1->insert(R_BL); 01129 reg_list_I_1->insert(R_BH); 01130 reg_list_I_1->insert(R_CL); 01131 reg_list_I_1->insert(R_CH); 01132 reg_list_I_1->insert(R_DL); 01133 reg_list_I_1->insert(R_DH); 01134 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01135 op_I_1->destroyed_by_get()->push_back(O_1); 01136 in_operands->push_back(op_I_1); 01137 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01138 dt_list_I_2->insert(DT_INT_8P); 01139 dt_list_I_2->insert(DT_INT_8U); 01140 dt_list_I_2->insert(DT_INT_8S); 01141 dt_list_I_2->insert(DT_INT_16U); 01142 dt_list_I_2->insert(DT_INT_16S); 01143 dt_list_I_2->insert(DT_INT_32U); 01144 dt_list_I_2->insert(DT_INT_32S); 01145 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 01146 in_operands->push_back(op_I_2); 01147 01148 //output operands 01149 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01150 dt_list_O_1->insert(DT_INT_8P); 01151 dt_list_O_1->insert(DT_INT_8U); 01152 dt_list_O_1->insert(DT_INT_8S); 01153 dt_list_O_1->insert(DT_INT_16U); 01154 dt_list_O_1->insert(DT_INT_16S); 01155 dt_list_O_1->insert(DT_INT_32U); 01156 dt_list_O_1->insert(DT_INT_32S); 01157 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01158 reg_list_O_1->insert(R_EAX); 01159 reg_list_O_1->insert(R_EBX); 01160 reg_list_O_1->insert(R_ECX); 01161 reg_list_O_1->insert(R_EDX); 01162 reg_list_O_1->insert(R_EDI); 01163 reg_list_O_1->insert(R_ESI); 01164 reg_list_O_1->insert(R_AX); 01165 reg_list_O_1->insert(R_BX); 01166 reg_list_O_1->insert(R_CX); 01167 reg_list_O_1->insert(R_DX); 01168 reg_list_O_1->insert(R_DI); 01169 reg_list_O_1->insert(R_SI); 01170 reg_list_O_1->insert(R_AL); 01171 reg_list_O_1->insert(R_AH); 01172 reg_list_O_1->insert(R_BL); 01173 reg_list_O_1->insert(R_BH); 01174 reg_list_O_1->insert(R_CL); 01175 reg_list_O_1->insert(R_CH); 01176 reg_list_O_1->insert(R_DL); 01177 reg_list_O_1->insert(R_DH); 01178 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01179 op_O_1->destroys_set(I_1); 01180 out_operands->push_back(op_O_1); 01181 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01182 dt_list_O_2->insert(DT_COND); 01183 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01184 reg_list_O_2->insert(R_COND); 01185 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01186 out_operands->push_back(op_O_2); 01187 01188 //execution info 01189 einfo = execution_info::create(30); 01190 01191 //properties 01192 01193 //versions 01194 versions = set<ulint>::create(); 01195 versions->insert(INSTRUCTION_ADD__1); 01196 versions->insert(INSTRUCTION_ADD__12); 01197 versions->insert(INSTRUCTION_ADD__13); 01198 versions->insert(INSTRUCTION_ADD__14); 01199 01200 01201 //return target pseudoinstruction 01202 return tm_instr::create(INSTRUCTION_ADD__11,in_operands,out_operands,lstring("add $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 01203 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_ADD__12 | ( | ) |
Definition at line 1205 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_ADD__1, INSTRUCTION_ADD__11, INSTRUCTION_ADD__12, INSTRUCTION_ADD__13, INSTRUCTION_ADD__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01205 { 01206 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01207 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01208 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01209 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01210 ptr<set<tm_data_type_base::id_type> > allowed_types; 01211 ptr<execution_info> einfo; 01212 ptr<set<ulint> > versions; 01213 01214 //input operands 01215 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01216 dt_list_I_1->insert(DT_INT_8P); 01217 dt_list_I_1->insert(DT_INT_8U); 01218 dt_list_I_1->insert(DT_INT_8S); 01219 dt_list_I_1->insert(DT_INT_16U); 01220 dt_list_I_1->insert(DT_INT_16S); 01221 dt_list_I_1->insert(DT_INT_32U); 01222 dt_list_I_1->insert(DT_INT_32S); 01223 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 01224 in_operands->push_back(op_I_1); 01225 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01226 dt_list_I_2->insert(DT_INT_8P); 01227 dt_list_I_2->insert(DT_INT_8U); 01228 dt_list_I_2->insert(DT_INT_8S); 01229 dt_list_I_2->insert(DT_INT_16U); 01230 dt_list_I_2->insert(DT_INT_16S); 01231 dt_list_I_2->insert(DT_INT_32U); 01232 dt_list_I_2->insert(DT_INT_32S); 01233 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 01234 reg_list_I_2->insert(R_EAX); 01235 reg_list_I_2->insert(R_EBX); 01236 reg_list_I_2->insert(R_ECX); 01237 reg_list_I_2->insert(R_EDX); 01238 reg_list_I_2->insert(R_EDI); 01239 reg_list_I_2->insert(R_ESI); 01240 reg_list_I_2->insert(R_AX); 01241 reg_list_I_2->insert(R_BX); 01242 reg_list_I_2->insert(R_CX); 01243 reg_list_I_2->insert(R_DX); 01244 reg_list_I_2->insert(R_DI); 01245 reg_list_I_2->insert(R_SI); 01246 reg_list_I_2->insert(R_AL); 01247 reg_list_I_2->insert(R_AH); 01248 reg_list_I_2->insert(R_BL); 01249 reg_list_I_2->insert(R_BH); 01250 reg_list_I_2->insert(R_CL); 01251 reg_list_I_2->insert(R_CH); 01252 reg_list_I_2->insert(R_DL); 01253 reg_list_I_2->insert(R_DH); 01254 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 01255 op_I_2->destroyed_by_get()->push_back(O_1); 01256 in_operands->push_back(op_I_2); 01257 01258 //output operands 01259 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01260 dt_list_O_1->insert(DT_INT_8P); 01261 dt_list_O_1->insert(DT_INT_8U); 01262 dt_list_O_1->insert(DT_INT_8S); 01263 dt_list_O_1->insert(DT_INT_16U); 01264 dt_list_O_1->insert(DT_INT_16S); 01265 dt_list_O_1->insert(DT_INT_32U); 01266 dt_list_O_1->insert(DT_INT_32S); 01267 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01268 reg_list_O_1->insert(R_EAX); 01269 reg_list_O_1->insert(R_EBX); 01270 reg_list_O_1->insert(R_ECX); 01271 reg_list_O_1->insert(R_EDX); 01272 reg_list_O_1->insert(R_EDI); 01273 reg_list_O_1->insert(R_ESI); 01274 reg_list_O_1->insert(R_AX); 01275 reg_list_O_1->insert(R_BX); 01276 reg_list_O_1->insert(R_CX); 01277 reg_list_O_1->insert(R_DX); 01278 reg_list_O_1->insert(R_DI); 01279 reg_list_O_1->insert(R_SI); 01280 reg_list_O_1->insert(R_AL); 01281 reg_list_O_1->insert(R_AH); 01282 reg_list_O_1->insert(R_BL); 01283 reg_list_O_1->insert(R_BH); 01284 reg_list_O_1->insert(R_CL); 01285 reg_list_O_1->insert(R_CH); 01286 reg_list_O_1->insert(R_DL); 01287 reg_list_O_1->insert(R_DH); 01288 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01289 op_O_1->destroys_set(I_2); 01290 out_operands->push_back(op_O_1); 01291 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01292 dt_list_O_2->insert(DT_COND); 01293 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01294 reg_list_O_2->insert(R_COND); 01295 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01296 out_operands->push_back(op_O_2); 01297 01298 //execution info 01299 einfo = execution_info::create(30); 01300 01301 //properties 01302 01303 //versions 01304 versions = set<ulint>::create(); 01305 versions->insert(INSTRUCTION_ADD__1); 01306 versions->insert(INSTRUCTION_ADD__11); 01307 versions->insert(INSTRUCTION_ADD__13); 01308 versions->insert(INSTRUCTION_ADD__14); 01309 01310 01311 //return target pseudoinstruction 01312 return tm_instr::create(INSTRUCTION_ADD__12,in_operands,out_operands,lstring("add $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 01313 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_ADD__13 | ( | ) |
Definition at line 1315 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_ADD__1, INSTRUCTION_ADD__11, INSTRUCTION_ADD__12, INSTRUCTION_ADD__13, INSTRUCTION_ADD__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01315 { 01316 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01317 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01318 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01319 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01320 ptr<set<tm_data_type_base::id_type> > allowed_types; 01321 ptr<execution_info> einfo; 01322 ptr<set<ulint> > versions; 01323 01324 //input operands 01325 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01326 dt_list_I_1->insert(DT_INT_8P); 01327 dt_list_I_1->insert(DT_INT_8U); 01328 dt_list_I_1->insert(DT_INT_8S); 01329 dt_list_I_1->insert(DT_INT_16U); 01330 dt_list_I_1->insert(DT_INT_16S); 01331 dt_list_I_1->insert(DT_INT_32U); 01332 dt_list_I_1->insert(DT_INT_32S); 01333 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01334 reg_list_I_1->insert(R_EAX); 01335 reg_list_I_1->insert(R_EBX); 01336 reg_list_I_1->insert(R_ECX); 01337 reg_list_I_1->insert(R_EDX); 01338 reg_list_I_1->insert(R_EDI); 01339 reg_list_I_1->insert(R_ESI); 01340 reg_list_I_1->insert(R_AX); 01341 reg_list_I_1->insert(R_BX); 01342 reg_list_I_1->insert(R_CX); 01343 reg_list_I_1->insert(R_DX); 01344 reg_list_I_1->insert(R_DI); 01345 reg_list_I_1->insert(R_SI); 01346 reg_list_I_1->insert(R_AL); 01347 reg_list_I_1->insert(R_AH); 01348 reg_list_I_1->insert(R_BL); 01349 reg_list_I_1->insert(R_BH); 01350 reg_list_I_1->insert(R_CL); 01351 reg_list_I_1->insert(R_CH); 01352 reg_list_I_1->insert(R_DL); 01353 reg_list_I_1->insert(R_DH); 01354 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01355 op_I_1->destroyed_by_get()->push_back(O_1); 01356 in_operands->push_back(op_I_1); 01357 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01358 dt_list_I_2->insert(DT_INT_8P); 01359 dt_list_I_2->insert(DT_INT_8U); 01360 dt_list_I_2->insert(DT_INT_8S); 01361 dt_list_I_2->insert(DT_INT_16U); 01362 dt_list_I_2->insert(DT_INT_16S); 01363 dt_list_I_2->insert(DT_INT_32U); 01364 dt_list_I_2->insert(DT_INT_32S); 01365 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 01366 in_operands->push_back(op_I_2); 01367 01368 //output operands 01369 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01370 dt_list_O_1->insert(DT_INT_8P); 01371 dt_list_O_1->insert(DT_INT_8U); 01372 dt_list_O_1->insert(DT_INT_8S); 01373 dt_list_O_1->insert(DT_INT_16U); 01374 dt_list_O_1->insert(DT_INT_16S); 01375 dt_list_O_1->insert(DT_INT_32U); 01376 dt_list_O_1->insert(DT_INT_32S); 01377 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01378 reg_list_O_1->insert(R_EAX); 01379 reg_list_O_1->insert(R_EBX); 01380 reg_list_O_1->insert(R_ECX); 01381 reg_list_O_1->insert(R_EDX); 01382 reg_list_O_1->insert(R_EDI); 01383 reg_list_O_1->insert(R_ESI); 01384 reg_list_O_1->insert(R_AX); 01385 reg_list_O_1->insert(R_BX); 01386 reg_list_O_1->insert(R_CX); 01387 reg_list_O_1->insert(R_DX); 01388 reg_list_O_1->insert(R_DI); 01389 reg_list_O_1->insert(R_SI); 01390 reg_list_O_1->insert(R_AL); 01391 reg_list_O_1->insert(R_AH); 01392 reg_list_O_1->insert(R_BL); 01393 reg_list_O_1->insert(R_BH); 01394 reg_list_O_1->insert(R_CL); 01395 reg_list_O_1->insert(R_CH); 01396 reg_list_O_1->insert(R_DL); 01397 reg_list_O_1->insert(R_DH); 01398 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01399 op_O_1->destroys_set(I_1); 01400 out_operands->push_back(op_O_1); 01401 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01402 dt_list_O_2->insert(DT_COND); 01403 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01404 reg_list_O_2->insert(R_COND); 01405 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01406 out_operands->push_back(op_O_2); 01407 01408 //execution info 01409 einfo = execution_info::create(10); 01410 01411 //properties 01412 01413 //versions 01414 versions = set<ulint>::create(); 01415 versions->insert(INSTRUCTION_ADD__1); 01416 versions->insert(INSTRUCTION_ADD__11); 01417 versions->insert(INSTRUCTION_ADD__12); 01418 versions->insert(INSTRUCTION_ADD__14); 01419 01420 01421 //return target pseudoinstruction 01422 return tm_instr::create(INSTRUCTION_ADD__13,in_operands,out_operands,lstring("add $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 01423 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_ADD__14 | ( | ) |
Definition at line 1425 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_ADD__1, INSTRUCTION_ADD__11, INSTRUCTION_ADD__12, INSTRUCTION_ADD__13, INSTRUCTION_ADD__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01425 { 01426 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01427 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01428 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01429 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01430 ptr<set<tm_data_type_base::id_type> > allowed_types; 01431 ptr<execution_info> einfo; 01432 ptr<set<ulint> > versions; 01433 01434 //input operands 01435 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01436 dt_list_I_1->insert(DT_INT_8P); 01437 dt_list_I_1->insert(DT_INT_8U); 01438 dt_list_I_1->insert(DT_INT_8S); 01439 dt_list_I_1->insert(DT_INT_16U); 01440 dt_list_I_1->insert(DT_INT_16S); 01441 dt_list_I_1->insert(DT_INT_32U); 01442 dt_list_I_1->insert(DT_INT_32S); 01443 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 01444 in_operands->push_back(op_I_1); 01445 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01446 dt_list_I_2->insert(DT_INT_8P); 01447 dt_list_I_2->insert(DT_INT_8U); 01448 dt_list_I_2->insert(DT_INT_8S); 01449 dt_list_I_2->insert(DT_INT_16U); 01450 dt_list_I_2->insert(DT_INT_16S); 01451 dt_list_I_2->insert(DT_INT_32U); 01452 dt_list_I_2->insert(DT_INT_32S); 01453 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 01454 reg_list_I_2->insert(R_EAX); 01455 reg_list_I_2->insert(R_EBX); 01456 reg_list_I_2->insert(R_ECX); 01457 reg_list_I_2->insert(R_EDX); 01458 reg_list_I_2->insert(R_EDI); 01459 reg_list_I_2->insert(R_ESI); 01460 reg_list_I_2->insert(R_AX); 01461 reg_list_I_2->insert(R_BX); 01462 reg_list_I_2->insert(R_CX); 01463 reg_list_I_2->insert(R_DX); 01464 reg_list_I_2->insert(R_DI); 01465 reg_list_I_2->insert(R_SI); 01466 reg_list_I_2->insert(R_AL); 01467 reg_list_I_2->insert(R_AH); 01468 reg_list_I_2->insert(R_BL); 01469 reg_list_I_2->insert(R_BH); 01470 reg_list_I_2->insert(R_CL); 01471 reg_list_I_2->insert(R_CH); 01472 reg_list_I_2->insert(R_DL); 01473 reg_list_I_2->insert(R_DH); 01474 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 01475 op_I_2->destroyed_by_get()->push_back(O_1); 01476 in_operands->push_back(op_I_2); 01477 01478 //output operands 01479 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01480 dt_list_O_1->insert(DT_INT_8P); 01481 dt_list_O_1->insert(DT_INT_8U); 01482 dt_list_O_1->insert(DT_INT_8S); 01483 dt_list_O_1->insert(DT_INT_16U); 01484 dt_list_O_1->insert(DT_INT_16S); 01485 dt_list_O_1->insert(DT_INT_32U); 01486 dt_list_O_1->insert(DT_INT_32S); 01487 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01488 reg_list_O_1->insert(R_EAX); 01489 reg_list_O_1->insert(R_EBX); 01490 reg_list_O_1->insert(R_ECX); 01491 reg_list_O_1->insert(R_EDX); 01492 reg_list_O_1->insert(R_EDI); 01493 reg_list_O_1->insert(R_ESI); 01494 reg_list_O_1->insert(R_AX); 01495 reg_list_O_1->insert(R_BX); 01496 reg_list_O_1->insert(R_CX); 01497 reg_list_O_1->insert(R_DX); 01498 reg_list_O_1->insert(R_DI); 01499 reg_list_O_1->insert(R_SI); 01500 reg_list_O_1->insert(R_AL); 01501 reg_list_O_1->insert(R_AH); 01502 reg_list_O_1->insert(R_BL); 01503 reg_list_O_1->insert(R_BH); 01504 reg_list_O_1->insert(R_CL); 01505 reg_list_O_1->insert(R_CH); 01506 reg_list_O_1->insert(R_DL); 01507 reg_list_O_1->insert(R_DH); 01508 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01509 op_O_1->destroys_set(I_2); 01510 out_operands->push_back(op_O_1); 01511 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01512 dt_list_O_2->insert(DT_COND); 01513 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01514 reg_list_O_2->insert(R_COND); 01515 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01516 out_operands->push_back(op_O_2); 01517 01518 //execution info 01519 einfo = execution_info::create(10); 01520 01521 //properties 01522 01523 //versions 01524 versions = set<ulint>::create(); 01525 versions->insert(INSTRUCTION_ADD__1); 01526 versions->insert(INSTRUCTION_ADD__11); 01527 versions->insert(INSTRUCTION_ADD__12); 01528 versions->insert(INSTRUCTION_ADD__13); 01529 01530 01531 //return target pseudoinstruction 01532 return tm_instr::create(INSTRUCTION_ADD__14,in_operands,out_operands,lstring("add $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 01533 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_AND__1 | ( | ) |
Definition at line 4547 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_AND__1, INSTRUCTION_AND__11, INSTRUCTION_AND__12, INSTRUCTION_AND__13, INSTRUCTION_AND__14, INSTRUCTION_AND__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04547 { 04548 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04549 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04550 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04551 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04552 ptr<set<tm_data_type_base::id_type> > allowed_types; 04553 ptr<execution_info> einfo; 04554 ptr<set<ulint> > versions; 04555 04556 //input operands 04557 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04558 dt_list_I_1->insert(DT_INT_8P); 04559 dt_list_I_1->insert(DT_INT_8U); 04560 dt_list_I_1->insert(DT_INT_8S); 04561 dt_list_I_1->insert(DT_INT_16U); 04562 dt_list_I_1->insert(DT_INT_16S); 04563 dt_list_I_1->insert(DT_INT_32U); 04564 dt_list_I_1->insert(DT_INT_32S); 04565 dt_list_I_1->insert(DT_BOOL); 04566 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04567 reg_list_I_1->insert(R_EAX); 04568 reg_list_I_1->insert(R_EBX); 04569 reg_list_I_1->insert(R_ECX); 04570 reg_list_I_1->insert(R_EDX); 04571 reg_list_I_1->insert(R_EDI); 04572 reg_list_I_1->insert(R_ESI); 04573 reg_list_I_1->insert(R_AX); 04574 reg_list_I_1->insert(R_BX); 04575 reg_list_I_1->insert(R_CX); 04576 reg_list_I_1->insert(R_DX); 04577 reg_list_I_1->insert(R_DI); 04578 reg_list_I_1->insert(R_SI); 04579 reg_list_I_1->insert(R_AL); 04580 reg_list_I_1->insert(R_AH); 04581 reg_list_I_1->insert(R_BL); 04582 reg_list_I_1->insert(R_BH); 04583 reg_list_I_1->insert(R_CL); 04584 reg_list_I_1->insert(R_CH); 04585 reg_list_I_1->insert(R_DL); 04586 reg_list_I_1->insert(R_DH); 04587 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04588 op_I_1->destroyed_by_get()->push_back(O_1); 04589 in_operands->push_back(op_I_1); 04590 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04591 dt_list_I_2->insert(DT_INT_8P); 04592 dt_list_I_2->insert(DT_INT_8U); 04593 dt_list_I_2->insert(DT_INT_8S); 04594 dt_list_I_2->insert(DT_INT_16U); 04595 dt_list_I_2->insert(DT_INT_16S); 04596 dt_list_I_2->insert(DT_INT_32U); 04597 dt_list_I_2->insert(DT_INT_32S); 04598 dt_list_I_2->insert(DT_BOOL); 04599 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 04600 reg_list_I_2->insert(R_EAX); 04601 reg_list_I_2->insert(R_EBX); 04602 reg_list_I_2->insert(R_ECX); 04603 reg_list_I_2->insert(R_EDX); 04604 reg_list_I_2->insert(R_EDI); 04605 reg_list_I_2->insert(R_ESI); 04606 reg_list_I_2->insert(R_AX); 04607 reg_list_I_2->insert(R_BX); 04608 reg_list_I_2->insert(R_CX); 04609 reg_list_I_2->insert(R_DX); 04610 reg_list_I_2->insert(R_DI); 04611 reg_list_I_2->insert(R_SI); 04612 reg_list_I_2->insert(R_AL); 04613 reg_list_I_2->insert(R_AH); 04614 reg_list_I_2->insert(R_BL); 04615 reg_list_I_2->insert(R_BH); 04616 reg_list_I_2->insert(R_CL); 04617 reg_list_I_2->insert(R_CH); 04618 reg_list_I_2->insert(R_DL); 04619 reg_list_I_2->insert(R_DH); 04620 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 04621 in_operands->push_back(op_I_2); 04622 04623 //output operands 04624 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04625 dt_list_O_1->insert(DT_INT_8P); 04626 dt_list_O_1->insert(DT_INT_8U); 04627 dt_list_O_1->insert(DT_INT_8S); 04628 dt_list_O_1->insert(DT_INT_16U); 04629 dt_list_O_1->insert(DT_INT_16S); 04630 dt_list_O_1->insert(DT_INT_32U); 04631 dt_list_O_1->insert(DT_INT_32S); 04632 dt_list_O_1->insert(DT_BOOL); 04633 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04634 reg_list_O_1->insert(R_EAX); 04635 reg_list_O_1->insert(R_EBX); 04636 reg_list_O_1->insert(R_ECX); 04637 reg_list_O_1->insert(R_EDX); 04638 reg_list_O_1->insert(R_EDI); 04639 reg_list_O_1->insert(R_ESI); 04640 reg_list_O_1->insert(R_AX); 04641 reg_list_O_1->insert(R_BX); 04642 reg_list_O_1->insert(R_CX); 04643 reg_list_O_1->insert(R_DX); 04644 reg_list_O_1->insert(R_DI); 04645 reg_list_O_1->insert(R_SI); 04646 reg_list_O_1->insert(R_AL); 04647 reg_list_O_1->insert(R_AH); 04648 reg_list_O_1->insert(R_BL); 04649 reg_list_O_1->insert(R_BH); 04650 reg_list_O_1->insert(R_CL); 04651 reg_list_O_1->insert(R_CH); 04652 reg_list_O_1->insert(R_DL); 04653 reg_list_O_1->insert(R_DH); 04654 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04655 op_O_1->destroys_set(I_1); 04656 out_operands->push_back(op_O_1); 04657 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04658 dt_list_O_2->insert(DT_COND); 04659 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04660 reg_list_O_2->insert(R_COND); 04661 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04662 out_operands->push_back(op_O_2); 04663 04664 //execution info 04665 einfo = execution_info::create(10); 04666 04667 //properties 04668 04669 //versions 04670 versions = set<ulint>::create(); 04671 versions->insert(INSTRUCTION_AND__11); 04672 versions->insert(INSTRUCTION_AND__12); 04673 versions->insert(INSTRUCTION_AND__13); 04674 versions->insert(INSTRUCTION_AND__14); 04675 versions->insert(INSTRUCTION_AND__2); 04676 04677 04678 //return target pseudoinstruction 04679 return tm_instr::create(INSTRUCTION_AND__1,in_operands,out_operands,lstring("and $O_1, $I_2"), props,versions,0,einfo); 04680 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_AND__11 | ( | ) |
Definition at line 4682 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_AND__1, INSTRUCTION_AND__11, INSTRUCTION_AND__12, INSTRUCTION_AND__13, INSTRUCTION_AND__14, INSTRUCTION_AND__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04682 { 04683 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04684 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04685 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04686 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04687 ptr<set<tm_data_type_base::id_type> > allowed_types; 04688 ptr<execution_info> einfo; 04689 ptr<set<ulint> > versions; 04690 04691 //input operands 04692 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04693 dt_list_I_1->insert(DT_INT_8P); 04694 dt_list_I_1->insert(DT_INT_8U); 04695 dt_list_I_1->insert(DT_INT_8S); 04696 dt_list_I_1->insert(DT_INT_16U); 04697 dt_list_I_1->insert(DT_INT_16S); 04698 dt_list_I_1->insert(DT_INT_32U); 04699 dt_list_I_1->insert(DT_INT_32S); 04700 dt_list_I_1->insert(DT_BOOL); 04701 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04702 reg_list_I_1->insert(R_EAX); 04703 reg_list_I_1->insert(R_EBX); 04704 reg_list_I_1->insert(R_ECX); 04705 reg_list_I_1->insert(R_EDX); 04706 reg_list_I_1->insert(R_EDI); 04707 reg_list_I_1->insert(R_ESI); 04708 reg_list_I_1->insert(R_AX); 04709 reg_list_I_1->insert(R_BX); 04710 reg_list_I_1->insert(R_CX); 04711 reg_list_I_1->insert(R_DX); 04712 reg_list_I_1->insert(R_DI); 04713 reg_list_I_1->insert(R_SI); 04714 reg_list_I_1->insert(R_AL); 04715 reg_list_I_1->insert(R_AH); 04716 reg_list_I_1->insert(R_BL); 04717 reg_list_I_1->insert(R_BH); 04718 reg_list_I_1->insert(R_CL); 04719 reg_list_I_1->insert(R_CH); 04720 reg_list_I_1->insert(R_DL); 04721 reg_list_I_1->insert(R_DH); 04722 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04723 op_I_1->destroyed_by_get()->push_back(O_1); 04724 in_operands->push_back(op_I_1); 04725 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04726 dt_list_I_2->insert(DT_INT_8P); 04727 dt_list_I_2->insert(DT_INT_8U); 04728 dt_list_I_2->insert(DT_INT_8S); 04729 dt_list_I_2->insert(DT_INT_16U); 04730 dt_list_I_2->insert(DT_INT_16S); 04731 dt_list_I_2->insert(DT_INT_32U); 04732 dt_list_I_2->insert(DT_INT_32S); 04733 dt_list_I_2->insert(DT_BOOL); 04734 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 04735 in_operands->push_back(op_I_2); 04736 04737 //output operands 04738 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04739 dt_list_O_1->insert(DT_INT_8P); 04740 dt_list_O_1->insert(DT_INT_8U); 04741 dt_list_O_1->insert(DT_INT_8S); 04742 dt_list_O_1->insert(DT_INT_16U); 04743 dt_list_O_1->insert(DT_INT_16S); 04744 dt_list_O_1->insert(DT_INT_32U); 04745 dt_list_O_1->insert(DT_INT_32S); 04746 dt_list_O_1->insert(DT_BOOL); 04747 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04748 reg_list_O_1->insert(R_EAX); 04749 reg_list_O_1->insert(R_EBX); 04750 reg_list_O_1->insert(R_ECX); 04751 reg_list_O_1->insert(R_EDX); 04752 reg_list_O_1->insert(R_EDI); 04753 reg_list_O_1->insert(R_ESI); 04754 reg_list_O_1->insert(R_AX); 04755 reg_list_O_1->insert(R_BX); 04756 reg_list_O_1->insert(R_CX); 04757 reg_list_O_1->insert(R_DX); 04758 reg_list_O_1->insert(R_DI); 04759 reg_list_O_1->insert(R_SI); 04760 reg_list_O_1->insert(R_AL); 04761 reg_list_O_1->insert(R_AH); 04762 reg_list_O_1->insert(R_BL); 04763 reg_list_O_1->insert(R_BH); 04764 reg_list_O_1->insert(R_CL); 04765 reg_list_O_1->insert(R_CH); 04766 reg_list_O_1->insert(R_DL); 04767 reg_list_O_1->insert(R_DH); 04768 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04769 op_O_1->destroys_set(I_1); 04770 out_operands->push_back(op_O_1); 04771 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04772 dt_list_O_2->insert(DT_COND); 04773 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04774 reg_list_O_2->insert(R_COND); 04775 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04776 out_operands->push_back(op_O_2); 04777 04778 //execution info 04779 einfo = execution_info::create(10); 04780 04781 //properties 04782 04783 //versions 04784 versions = set<ulint>::create(); 04785 versions->insert(INSTRUCTION_AND__1); 04786 versions->insert(INSTRUCTION_AND__12); 04787 versions->insert(INSTRUCTION_AND__13); 04788 versions->insert(INSTRUCTION_AND__14); 04789 versions->insert(INSTRUCTION_AND__2); 04790 04791 04792 //return target pseudoinstruction 04793 return tm_instr::create(INSTRUCTION_AND__11,in_operands,out_operands,lstring("and $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 04794 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_AND__12 | ( | ) |
Definition at line 4796 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_AND__1, INSTRUCTION_AND__11, INSTRUCTION_AND__12, INSTRUCTION_AND__13, INSTRUCTION_AND__14, INSTRUCTION_AND__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04796 { 04797 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04798 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04799 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04800 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04801 ptr<set<tm_data_type_base::id_type> > allowed_types; 04802 ptr<execution_info> einfo; 04803 ptr<set<ulint> > versions; 04804 04805 //input operands 04806 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04807 dt_list_I_1->insert(DT_INT_8P); 04808 dt_list_I_1->insert(DT_INT_8U); 04809 dt_list_I_1->insert(DT_INT_8S); 04810 dt_list_I_1->insert(DT_INT_16U); 04811 dt_list_I_1->insert(DT_INT_16S); 04812 dt_list_I_1->insert(DT_INT_32U); 04813 dt_list_I_1->insert(DT_INT_32S); 04814 dt_list_I_1->insert(DT_BOOL); 04815 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 04816 in_operands->push_back(op_I_1); 04817 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04818 dt_list_I_2->insert(DT_INT_8P); 04819 dt_list_I_2->insert(DT_INT_8U); 04820 dt_list_I_2->insert(DT_INT_8S); 04821 dt_list_I_2->insert(DT_INT_16U); 04822 dt_list_I_2->insert(DT_INT_16S); 04823 dt_list_I_2->insert(DT_INT_32U); 04824 dt_list_I_2->insert(DT_INT_32S); 04825 dt_list_I_2->insert(DT_BOOL); 04826 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 04827 reg_list_I_2->insert(R_EAX); 04828 reg_list_I_2->insert(R_EBX); 04829 reg_list_I_2->insert(R_ECX); 04830 reg_list_I_2->insert(R_EDX); 04831 reg_list_I_2->insert(R_EDI); 04832 reg_list_I_2->insert(R_ESI); 04833 reg_list_I_2->insert(R_AX); 04834 reg_list_I_2->insert(R_BX); 04835 reg_list_I_2->insert(R_CX); 04836 reg_list_I_2->insert(R_DX); 04837 reg_list_I_2->insert(R_DI); 04838 reg_list_I_2->insert(R_SI); 04839 reg_list_I_2->insert(R_AL); 04840 reg_list_I_2->insert(R_AH); 04841 reg_list_I_2->insert(R_BL); 04842 reg_list_I_2->insert(R_BH); 04843 reg_list_I_2->insert(R_CL); 04844 reg_list_I_2->insert(R_CH); 04845 reg_list_I_2->insert(R_DL); 04846 reg_list_I_2->insert(R_DH); 04847 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 04848 op_I_2->destroyed_by_get()->push_back(O_1); 04849 in_operands->push_back(op_I_2); 04850 04851 //output operands 04852 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04853 dt_list_O_1->insert(DT_INT_8P); 04854 dt_list_O_1->insert(DT_INT_8U); 04855 dt_list_O_1->insert(DT_INT_8S); 04856 dt_list_O_1->insert(DT_INT_16U); 04857 dt_list_O_1->insert(DT_INT_16S); 04858 dt_list_O_1->insert(DT_INT_32U); 04859 dt_list_O_1->insert(DT_INT_32S); 04860 dt_list_O_1->insert(DT_BOOL); 04861 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04862 reg_list_O_1->insert(R_EAX); 04863 reg_list_O_1->insert(R_EBX); 04864 reg_list_O_1->insert(R_ECX); 04865 reg_list_O_1->insert(R_EDX); 04866 reg_list_O_1->insert(R_EDI); 04867 reg_list_O_1->insert(R_ESI); 04868 reg_list_O_1->insert(R_AX); 04869 reg_list_O_1->insert(R_BX); 04870 reg_list_O_1->insert(R_CX); 04871 reg_list_O_1->insert(R_DX); 04872 reg_list_O_1->insert(R_DI); 04873 reg_list_O_1->insert(R_SI); 04874 reg_list_O_1->insert(R_AL); 04875 reg_list_O_1->insert(R_AH); 04876 reg_list_O_1->insert(R_BL); 04877 reg_list_O_1->insert(R_BH); 04878 reg_list_O_1->insert(R_CL); 04879 reg_list_O_1->insert(R_CH); 04880 reg_list_O_1->insert(R_DL); 04881 reg_list_O_1->insert(R_DH); 04882 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04883 op_O_1->destroys_set(I_2); 04884 out_operands->push_back(op_O_1); 04885 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04886 dt_list_O_2->insert(DT_COND); 04887 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04888 reg_list_O_2->insert(R_COND); 04889 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04890 out_operands->push_back(op_O_2); 04891 04892 //execution info 04893 einfo = execution_info::create(10); 04894 04895 //properties 04896 04897 //versions 04898 versions = set<ulint>::create(); 04899 versions->insert(INSTRUCTION_AND__1); 04900 versions->insert(INSTRUCTION_AND__11); 04901 versions->insert(INSTRUCTION_AND__13); 04902 versions->insert(INSTRUCTION_AND__14); 04903 versions->insert(INSTRUCTION_AND__2); 04904 04905 04906 //return target pseudoinstruction 04907 return tm_instr::create(INSTRUCTION_AND__12,in_operands,out_operands,lstring("and $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 04908 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_AND__13 | ( | ) |
Definition at line 4910 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_AND__1, INSTRUCTION_AND__11, INSTRUCTION_AND__12, INSTRUCTION_AND__13, INSTRUCTION_AND__14, INSTRUCTION_AND__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04910 { 04911 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04912 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04913 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04914 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04915 ptr<set<tm_data_type_base::id_type> > allowed_types; 04916 ptr<execution_info> einfo; 04917 ptr<set<ulint> > versions; 04918 04919 //input operands 04920 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04921 dt_list_I_1->insert(DT_INT_8P); 04922 dt_list_I_1->insert(DT_INT_8U); 04923 dt_list_I_1->insert(DT_INT_8S); 04924 dt_list_I_1->insert(DT_INT_16U); 04925 dt_list_I_1->insert(DT_INT_16S); 04926 dt_list_I_1->insert(DT_INT_32U); 04927 dt_list_I_1->insert(DT_INT_32S); 04928 dt_list_I_1->insert(DT_BOOL); 04929 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04930 reg_list_I_1->insert(R_EAX); 04931 reg_list_I_1->insert(R_EBX); 04932 reg_list_I_1->insert(R_ECX); 04933 reg_list_I_1->insert(R_EDX); 04934 reg_list_I_1->insert(R_EDI); 04935 reg_list_I_1->insert(R_ESI); 04936 reg_list_I_1->insert(R_AX); 04937 reg_list_I_1->insert(R_BX); 04938 reg_list_I_1->insert(R_CX); 04939 reg_list_I_1->insert(R_DX); 04940 reg_list_I_1->insert(R_DI); 04941 reg_list_I_1->insert(R_SI); 04942 reg_list_I_1->insert(R_AL); 04943 reg_list_I_1->insert(R_AH); 04944 reg_list_I_1->insert(R_BL); 04945 reg_list_I_1->insert(R_BH); 04946 reg_list_I_1->insert(R_CL); 04947 reg_list_I_1->insert(R_CH); 04948 reg_list_I_1->insert(R_DL); 04949 reg_list_I_1->insert(R_DH); 04950 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04951 op_I_1->destroyed_by_get()->push_back(O_1); 04952 in_operands->push_back(op_I_1); 04953 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04954 dt_list_I_2->insert(DT_INT_8P); 04955 dt_list_I_2->insert(DT_INT_8U); 04956 dt_list_I_2->insert(DT_INT_8S); 04957 dt_list_I_2->insert(DT_INT_16U); 04958 dt_list_I_2->insert(DT_INT_16S); 04959 dt_list_I_2->insert(DT_INT_32U); 04960 dt_list_I_2->insert(DT_INT_32S); 04961 dt_list_I_2->insert(DT_BOOL); 04962 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 04963 in_operands->push_back(op_I_2); 04964 04965 //output operands 04966 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04967 dt_list_O_1->insert(DT_INT_8P); 04968 dt_list_O_1->insert(DT_INT_8U); 04969 dt_list_O_1->insert(DT_INT_8S); 04970 dt_list_O_1->insert(DT_INT_16U); 04971 dt_list_O_1->insert(DT_INT_16S); 04972 dt_list_O_1->insert(DT_INT_32U); 04973 dt_list_O_1->insert(DT_INT_32S); 04974 dt_list_O_1->insert(DT_BOOL); 04975 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04976 reg_list_O_1->insert(R_EAX); 04977 reg_list_O_1->insert(R_EBX); 04978 reg_list_O_1->insert(R_ECX); 04979 reg_list_O_1->insert(R_EDX); 04980 reg_list_O_1->insert(R_EDI); 04981 reg_list_O_1->insert(R_ESI); 04982 reg_list_O_1->insert(R_AX); 04983 reg_list_O_1->insert(R_BX); 04984 reg_list_O_1->insert(R_CX); 04985 reg_list_O_1->insert(R_DX); 04986 reg_list_O_1->insert(R_DI); 04987 reg_list_O_1->insert(R_SI); 04988 reg_list_O_1->insert(R_AL); 04989 reg_list_O_1->insert(R_AH); 04990 reg_list_O_1->insert(R_BL); 04991 reg_list_O_1->insert(R_BH); 04992 reg_list_O_1->insert(R_CL); 04993 reg_list_O_1->insert(R_CH); 04994 reg_list_O_1->insert(R_DL); 04995 reg_list_O_1->insert(R_DH); 04996 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04997 op_O_1->destroys_set(I_1); 04998 out_operands->push_back(op_O_1); 04999 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05000 dt_list_O_2->insert(DT_COND); 05001 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05002 reg_list_O_2->insert(R_COND); 05003 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05004 out_operands->push_back(op_O_2); 05005 05006 //execution info 05007 einfo = execution_info::create(30); 05008 05009 //properties 05010 05011 //versions 05012 versions = set<ulint>::create(); 05013 versions->insert(INSTRUCTION_AND__1); 05014 versions->insert(INSTRUCTION_AND__11); 05015 versions->insert(INSTRUCTION_AND__12); 05016 versions->insert(INSTRUCTION_AND__14); 05017 versions->insert(INSTRUCTION_AND__2); 05018 05019 05020 //return target pseudoinstruction 05021 return tm_instr::create(INSTRUCTION_AND__13,in_operands,out_operands,lstring("and $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 05022 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_AND__14 | ( | ) |
Definition at line 5024 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_AND__1, INSTRUCTION_AND__11, INSTRUCTION_AND__12, INSTRUCTION_AND__13, INSTRUCTION_AND__14, INSTRUCTION_AND__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05024 { 05025 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05026 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05027 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05028 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05029 ptr<set<tm_data_type_base::id_type> > allowed_types; 05030 ptr<execution_info> einfo; 05031 ptr<set<ulint> > versions; 05032 05033 //input operands 05034 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05035 dt_list_I_1->insert(DT_INT_8P); 05036 dt_list_I_1->insert(DT_INT_8U); 05037 dt_list_I_1->insert(DT_INT_8S); 05038 dt_list_I_1->insert(DT_INT_16U); 05039 dt_list_I_1->insert(DT_INT_16S); 05040 dt_list_I_1->insert(DT_INT_32U); 05041 dt_list_I_1->insert(DT_INT_32S); 05042 dt_list_I_1->insert(DT_BOOL); 05043 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 05044 in_operands->push_back(op_I_1); 05045 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05046 dt_list_I_2->insert(DT_INT_8P); 05047 dt_list_I_2->insert(DT_INT_8U); 05048 dt_list_I_2->insert(DT_INT_8S); 05049 dt_list_I_2->insert(DT_INT_16U); 05050 dt_list_I_2->insert(DT_INT_16S); 05051 dt_list_I_2->insert(DT_INT_32U); 05052 dt_list_I_2->insert(DT_INT_32S); 05053 dt_list_I_2->insert(DT_BOOL); 05054 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 05055 reg_list_I_2->insert(R_EAX); 05056 reg_list_I_2->insert(R_EBX); 05057 reg_list_I_2->insert(R_ECX); 05058 reg_list_I_2->insert(R_EDX); 05059 reg_list_I_2->insert(R_EDI); 05060 reg_list_I_2->insert(R_ESI); 05061 reg_list_I_2->insert(R_AX); 05062 reg_list_I_2->insert(R_BX); 05063 reg_list_I_2->insert(R_CX); 05064 reg_list_I_2->insert(R_DX); 05065 reg_list_I_2->insert(R_DI); 05066 reg_list_I_2->insert(R_SI); 05067 reg_list_I_2->insert(R_AL); 05068 reg_list_I_2->insert(R_AH); 05069 reg_list_I_2->insert(R_BL); 05070 reg_list_I_2->insert(R_BH); 05071 reg_list_I_2->insert(R_CL); 05072 reg_list_I_2->insert(R_CH); 05073 reg_list_I_2->insert(R_DL); 05074 reg_list_I_2->insert(R_DH); 05075 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 05076 op_I_2->destroyed_by_get()->push_back(O_1); 05077 in_operands->push_back(op_I_2); 05078 05079 //output operands 05080 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05081 dt_list_O_1->insert(DT_INT_8P); 05082 dt_list_O_1->insert(DT_INT_8U); 05083 dt_list_O_1->insert(DT_INT_8S); 05084 dt_list_O_1->insert(DT_INT_16U); 05085 dt_list_O_1->insert(DT_INT_16S); 05086 dt_list_O_1->insert(DT_INT_32U); 05087 dt_list_O_1->insert(DT_INT_32S); 05088 dt_list_O_1->insert(DT_BOOL); 05089 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05090 reg_list_O_1->insert(R_EAX); 05091 reg_list_O_1->insert(R_EBX); 05092 reg_list_O_1->insert(R_ECX); 05093 reg_list_O_1->insert(R_EDX); 05094 reg_list_O_1->insert(R_EDI); 05095 reg_list_O_1->insert(R_ESI); 05096 reg_list_O_1->insert(R_AX); 05097 reg_list_O_1->insert(R_BX); 05098 reg_list_O_1->insert(R_CX); 05099 reg_list_O_1->insert(R_DX); 05100 reg_list_O_1->insert(R_DI); 05101 reg_list_O_1->insert(R_SI); 05102 reg_list_O_1->insert(R_AL); 05103 reg_list_O_1->insert(R_AH); 05104 reg_list_O_1->insert(R_BL); 05105 reg_list_O_1->insert(R_BH); 05106 reg_list_O_1->insert(R_CL); 05107 reg_list_O_1->insert(R_CH); 05108 reg_list_O_1->insert(R_DL); 05109 reg_list_O_1->insert(R_DH); 05110 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05111 op_O_1->destroys_set(I_2); 05112 out_operands->push_back(op_O_1); 05113 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05114 dt_list_O_2->insert(DT_COND); 05115 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05116 reg_list_O_2->insert(R_COND); 05117 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05118 out_operands->push_back(op_O_2); 05119 05120 //execution info 05121 einfo = execution_info::create(30); 05122 05123 //properties 05124 05125 //versions 05126 versions = set<ulint>::create(); 05127 versions->insert(INSTRUCTION_AND__1); 05128 versions->insert(INSTRUCTION_AND__11); 05129 versions->insert(INSTRUCTION_AND__12); 05130 versions->insert(INSTRUCTION_AND__13); 05131 versions->insert(INSTRUCTION_AND__2); 05132 05133 05134 //return target pseudoinstruction 05135 return tm_instr::create(INSTRUCTION_AND__14,in_operands,out_operands,lstring("and $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 05136 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_AND__2 | ( | ) |
Definition at line 5138 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_AND__1, INSTRUCTION_AND__11, INSTRUCTION_AND__12, INSTRUCTION_AND__13, INSTRUCTION_AND__14, INSTRUCTION_AND__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05138 { 05139 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05140 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05141 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05142 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05143 ptr<set<tm_data_type_base::id_type> > allowed_types; 05144 ptr<execution_info> einfo; 05145 ptr<set<ulint> > versions; 05146 05147 //input operands 05148 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05149 dt_list_I_1->insert(DT_BOOL); 05150 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 05151 reg_list_I_1->insert(R_AL); 05152 reg_list_I_1->insert(R_AH); 05153 reg_list_I_1->insert(R_BL); 05154 reg_list_I_1->insert(R_BH); 05155 reg_list_I_1->insert(R_CL); 05156 reg_list_I_1->insert(R_CH); 05157 reg_list_I_1->insert(R_DL); 05158 reg_list_I_1->insert(R_DH); 05159 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 05160 op_I_1->destroyed_by_get()->push_back(O_1); 05161 in_operands->push_back(op_I_1); 05162 05163 //output operands 05164 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05165 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05166 reg_list_O_1->insert(R_EAX); 05167 reg_list_O_1->insert(R_EBX); 05168 reg_list_O_1->insert(R_ECX); 05169 reg_list_O_1->insert(R_EDX); 05170 reg_list_O_1->insert(R_EDI); 05171 reg_list_O_1->insert(R_ESI); 05172 reg_list_O_1->insert(R_AX); 05173 reg_list_O_1->insert(R_BX); 05174 reg_list_O_1->insert(R_CX); 05175 reg_list_O_1->insert(R_DX); 05176 reg_list_O_1->insert(R_DI); 05177 reg_list_O_1->insert(R_SI); 05178 reg_list_O_1->insert(R_AL); 05179 reg_list_O_1->insert(R_AH); 05180 reg_list_O_1->insert(R_BL); 05181 reg_list_O_1->insert(R_BH); 05182 reg_list_O_1->insert(R_CL); 05183 reg_list_O_1->insert(R_CH); 05184 reg_list_O_1->insert(R_DL); 05185 reg_list_O_1->insert(R_DH); 05186 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05187 op_O_1->destroys_set(I_1); 05188 out_operands->push_back(op_O_1); 05189 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05190 dt_list_O_2->insert(DT_COND); 05191 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05192 reg_list_O_2->insert(R_COND); 05193 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05194 out_operands->push_back(op_O_2); 05195 05196 //execution info 05197 einfo = execution_info::create(10); 05198 05199 //properties 05200 05201 //versions 05202 versions = set<ulint>::create(); 05203 versions->insert(INSTRUCTION_AND__1); 05204 versions->insert(INSTRUCTION_AND__11); 05205 versions->insert(INSTRUCTION_AND__12); 05206 versions->insert(INSTRUCTION_AND__13); 05207 versions->insert(INSTRUCTION_AND__14); 05208 05209 05210 //return target pseudoinstruction 05211 return tm_instr::create(INSTRUCTION_AND__2,in_operands,out_operands,lstring("and $O_1, 0x1"), props,versions,0,einfo); 05212 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_BACKUPESP__1 | ( | ) |
Definition at line 9119 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32U, I_1, IF_SYS, INSTRUCTION_BACKUPESP__1, O_1, lestes::md::registers::R_EBP, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
09119 { 09120 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09121 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09122 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09123 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09124 ptr<set<tm_data_type_base::id_type> > allowed_types; 09125 ptr<execution_info> einfo; 09126 ptr<set<ulint> > versions; 09127 09128 //input operands 09129 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 09130 dt_list_I_1->insert(DT_INT_32U); 09131 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 09132 reg_list_I_1->insert(R_ESP); 09133 reg_list_I_1->insert(R_EBP); 09134 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 09135 in_operands->push_back(op_I_1); 09136 09137 //output operands 09138 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 09139 dt_list_O_1->insert(DT_INT_32U); 09140 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 09141 reg_list_O_1->insert(R_ESP); 09142 reg_list_O_1->insert(R_EBP); 09143 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 09144 out_operands->push_back(op_O_1); 09145 09146 //execution info 09147 einfo = execution_info::create(10); 09148 09149 //properties 09150 09151 //versions 09152 09153 09154 //return target pseudoinstruction 09155 return tm_instr::create(INSTRUCTION_BACKUPESP__1,in_operands,out_operands,lstring("mov $O_1, $I_1"), props,versions,IF_SYS,einfo); 09156 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CALL__1 | ( | ) |
Definition at line 9158 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, IF_SYS, INSTRUCTION_CALL__1, O_1, O_2, O_3, lestes::md::registers::R_EAX, lestes::md::registers::R_ECX, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
09158 { 09159 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09160 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09161 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09162 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09163 ptr<set<tm_data_type_base::id_type> > allowed_types; 09164 ptr<execution_info> einfo; 09165 ptr<set<ulint> > versions; 09166 09167 //input operands 09168 09169 //output operands 09170 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 09171 dt_list_O_1->insert(DT_INT_8P); 09172 dt_list_O_1->insert(DT_INT_8U); 09173 dt_list_O_1->insert(DT_INT_8S); 09174 dt_list_O_1->insert(DT_INT_16U); 09175 dt_list_O_1->insert(DT_INT_16S); 09176 dt_list_O_1->insert(DT_INT_32U); 09177 dt_list_O_1->insert(DT_INT_32S); 09178 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 09179 reg_list_O_1->insert(R_EAX); 09180 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 09181 out_operands->push_back(op_O_1); 09182 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 09183 dt_list_O_2->insert(DT_INT_8P); 09184 dt_list_O_2->insert(DT_INT_8U); 09185 dt_list_O_2->insert(DT_INT_8S); 09186 dt_list_O_2->insert(DT_INT_16U); 09187 dt_list_O_2->insert(DT_INT_16S); 09188 dt_list_O_2->insert(DT_INT_32U); 09189 dt_list_O_2->insert(DT_INT_32S); 09190 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 09191 reg_list_O_2->insert(R_ECX); 09192 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 09193 out_operands->push_back(op_O_2); 09194 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 09195 dt_list_O_3->insert(DT_INT_8P); 09196 dt_list_O_3->insert(DT_INT_8U); 09197 dt_list_O_3->insert(DT_INT_8S); 09198 dt_list_O_3->insert(DT_INT_16U); 09199 dt_list_O_3->insert(DT_INT_16S); 09200 dt_list_O_3->insert(DT_INT_32U); 09201 dt_list_O_3->insert(DT_INT_32S); 09202 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 09203 reg_list_O_3->insert(R_EDX); 09204 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 09205 out_operands->push_back(op_O_3); 09206 09207 //execution info 09208 einfo = execution_info::create(50); 09209 09210 //properties 09211 09212 //versions 09213 09214 09215 //return target pseudoinstruction 09216 return tm_instr::create(INSTRUCTION_CALL__1,in_operands,out_operands,lstring("call $name"), props,versions,IF_SYS,einfo); 09217 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CBW__1 | ( | ) |
Definition at line 2942 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_8S, I_1, INSTRUCTION_CBW__1, O_1, lestes::md::registers::R_AL, and lestes::md::registers::R_AX.
Referenced by lestes::md::instructions::tm_instr::instance().
02942 { 02943 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02944 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02945 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02946 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02947 ptr<set<tm_data_type_base::id_type> > allowed_types; 02948 ptr<execution_info> einfo; 02949 ptr<set<ulint> > versions; 02950 02951 //input operands 02952 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02953 dt_list_I_1->insert(DT_INT_8S); 02954 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02955 reg_list_I_1->insert(R_AL); 02956 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02957 op_I_1->destroyed_by_get()->push_back(O_1); 02958 in_operands->push_back(op_I_1); 02959 02960 //output operands 02961 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02962 dt_list_O_1->insert(DT_INT_16S); 02963 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02964 reg_list_O_1->insert(R_AX); 02965 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02966 op_O_1->destroys_set(I_1); 02967 out_operands->push_back(op_O_1); 02968 02969 //execution info 02970 einfo = execution_info::create(10); 02971 02972 //properties 02973 02974 //versions 02975 02976 02977 //return target pseudoinstruction 02978 return tm_instr::create(INSTRUCTION_CBW__1,in_operands,out_operands,lstring("cbw"), props,versions,0,einfo); 02979 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CDQ__1 | ( | ) |
Definition at line 3026 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32S, I_1, INSTRUCTION_CDQ__1, O_1, O_2, lestes::md::registers::R_EAX, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
03026 { 03027 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03028 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03029 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03030 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03031 ptr<set<tm_data_type_base::id_type> > allowed_types; 03032 ptr<execution_info> einfo; 03033 ptr<set<ulint> > versions; 03034 03035 //input operands 03036 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03037 dt_list_I_1->insert(DT_INT_32S); 03038 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03039 reg_list_I_1->insert(R_EAX); 03040 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03041 op_I_1->destroyed_by_get()->push_back(O_2); 03042 in_operands->push_back(op_I_1); 03043 03044 //output operands 03045 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03046 dt_list_O_1->insert(DT_INT_32S); 03047 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03048 reg_list_O_1->insert(R_EDX); 03049 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03050 out_operands->push_back(op_O_1); 03051 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03052 dt_list_O_2->insert(DT_INT_32S); 03053 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03054 reg_list_O_2->insert(R_EAX); 03055 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03056 op_O_2->destroys_set(I_1); 03057 out_operands->push_back(op_O_2); 03058 03059 //execution info 03060 einfo = execution_info::create(10); 03061 03062 //properties 03063 03064 //versions 03065 03066 03067 //return target pseudoinstruction 03068 return tm_instr::create(INSTRUCTION_CDQ__1,in_operands,out_operands,lstring("cdq"), props,versions,0,einfo); 03069 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CMP__1 | ( | ) |
Definition at line 7468 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_CMP__1, INSTRUCTION_CMP__2, INSTRUCTION_CMP__21, INSTRUCTION_CMP__22, INSTRUCTION_CMP__23, INSTRUCTION_CMP__24, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07468 { 07469 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07470 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07471 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07472 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07473 ptr<set<tm_data_type_base::id_type> > allowed_types; 07474 ptr<execution_info> einfo; 07475 ptr<set<ulint> > versions; 07476 07477 //input operands 07478 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07479 dt_list_I_1->insert(DT_INT_8P); 07480 dt_list_I_1->insert(DT_INT_8U); 07481 dt_list_I_1->insert(DT_INT_8S); 07482 dt_list_I_1->insert(DT_INT_16U); 07483 dt_list_I_1->insert(DT_INT_16S); 07484 dt_list_I_1->insert(DT_INT_32U); 07485 dt_list_I_1->insert(DT_INT_32S); 07486 dt_list_I_1->insert(DT_BOOL); 07487 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07488 reg_list_I_1->insert(R_EAX); 07489 reg_list_I_1->insert(R_EBX); 07490 reg_list_I_1->insert(R_ECX); 07491 reg_list_I_1->insert(R_EDX); 07492 reg_list_I_1->insert(R_EDI); 07493 reg_list_I_1->insert(R_ESI); 07494 reg_list_I_1->insert(R_AX); 07495 reg_list_I_1->insert(R_BX); 07496 reg_list_I_1->insert(R_CX); 07497 reg_list_I_1->insert(R_DX); 07498 reg_list_I_1->insert(R_DI); 07499 reg_list_I_1->insert(R_SI); 07500 reg_list_I_1->insert(R_AL); 07501 reg_list_I_1->insert(R_AH); 07502 reg_list_I_1->insert(R_BL); 07503 reg_list_I_1->insert(R_BH); 07504 reg_list_I_1->insert(R_CL); 07505 reg_list_I_1->insert(R_CH); 07506 reg_list_I_1->insert(R_DL); 07507 reg_list_I_1->insert(R_DH); 07508 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07509 in_operands->push_back(op_I_1); 07510 07511 //output operands 07512 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07513 dt_list_O_1->insert(DT_COND); 07514 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07515 reg_list_O_1->insert(R_COND); 07516 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07517 out_operands->push_back(op_O_1); 07518 07519 //execution info 07520 einfo = execution_info::create(10); 07521 07522 //properties 07523 07524 //versions 07525 versions = set<ulint>::create(); 07526 versions->insert(INSTRUCTION_CMP__2); 07527 versions->insert(INSTRUCTION_CMP__21); 07528 versions->insert(INSTRUCTION_CMP__22); 07529 versions->insert(INSTRUCTION_CMP__23); 07530 versions->insert(INSTRUCTION_CMP__24); 07531 07532 07533 //return target pseudoinstruction 07534 return tm_instr::create(INSTRUCTION_CMP__1,in_operands,out_operands,lstring("cmp $I_1, 0"), props,versions,0,einfo); 07535 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CMP__2 | ( | ) |
Definition at line 7537 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_CMP__1, INSTRUCTION_CMP__2, INSTRUCTION_CMP__21, INSTRUCTION_CMP__22, INSTRUCTION_CMP__23, INSTRUCTION_CMP__24, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07537 { 07538 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07539 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07540 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07541 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07542 ptr<set<tm_data_type_base::id_type> > allowed_types; 07543 ptr<execution_info> einfo; 07544 ptr<set<ulint> > versions; 07545 07546 //input operands 07547 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07548 dt_list_I_1->insert(DT_INT_8P); 07549 dt_list_I_1->insert(DT_INT_8U); 07550 dt_list_I_1->insert(DT_INT_8S); 07551 dt_list_I_1->insert(DT_INT_16U); 07552 dt_list_I_1->insert(DT_INT_16S); 07553 dt_list_I_1->insert(DT_INT_32U); 07554 dt_list_I_1->insert(DT_INT_32S); 07555 dt_list_I_1->insert(DT_BOOL); 07556 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07557 reg_list_I_1->insert(R_EAX); 07558 reg_list_I_1->insert(R_EBX); 07559 reg_list_I_1->insert(R_ECX); 07560 reg_list_I_1->insert(R_EDX); 07561 reg_list_I_1->insert(R_EDI); 07562 reg_list_I_1->insert(R_ESI); 07563 reg_list_I_1->insert(R_AX); 07564 reg_list_I_1->insert(R_BX); 07565 reg_list_I_1->insert(R_CX); 07566 reg_list_I_1->insert(R_DX); 07567 reg_list_I_1->insert(R_DI); 07568 reg_list_I_1->insert(R_SI); 07569 reg_list_I_1->insert(R_AL); 07570 reg_list_I_1->insert(R_AH); 07571 reg_list_I_1->insert(R_BL); 07572 reg_list_I_1->insert(R_BH); 07573 reg_list_I_1->insert(R_CL); 07574 reg_list_I_1->insert(R_CH); 07575 reg_list_I_1->insert(R_DL); 07576 reg_list_I_1->insert(R_DH); 07577 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07578 in_operands->push_back(op_I_1); 07579 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 07580 dt_list_I_2->insert(DT_INT_8P); 07581 dt_list_I_2->insert(DT_INT_8U); 07582 dt_list_I_2->insert(DT_INT_8S); 07583 dt_list_I_2->insert(DT_INT_16U); 07584 dt_list_I_2->insert(DT_INT_16S); 07585 dt_list_I_2->insert(DT_INT_32U); 07586 dt_list_I_2->insert(DT_INT_32S); 07587 dt_list_I_2->insert(DT_BOOL); 07588 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 07589 reg_list_I_2->insert(R_EAX); 07590 reg_list_I_2->insert(R_EBX); 07591 reg_list_I_2->insert(R_ECX); 07592 reg_list_I_2->insert(R_EDX); 07593 reg_list_I_2->insert(R_EDI); 07594 reg_list_I_2->insert(R_ESI); 07595 reg_list_I_2->insert(R_AX); 07596 reg_list_I_2->insert(R_BX); 07597 reg_list_I_2->insert(R_CX); 07598 reg_list_I_2->insert(R_DX); 07599 reg_list_I_2->insert(R_DI); 07600 reg_list_I_2->insert(R_SI); 07601 reg_list_I_2->insert(R_AL); 07602 reg_list_I_2->insert(R_AH); 07603 reg_list_I_2->insert(R_BL); 07604 reg_list_I_2->insert(R_BH); 07605 reg_list_I_2->insert(R_CL); 07606 reg_list_I_2->insert(R_CH); 07607 reg_list_I_2->insert(R_DL); 07608 reg_list_I_2->insert(R_DH); 07609 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 07610 in_operands->push_back(op_I_2); 07611 07612 //output operands 07613 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07614 dt_list_O_1->insert(DT_COND); 07615 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07616 reg_list_O_1->insert(R_COND); 07617 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07618 out_operands->push_back(op_O_1); 07619 07620 //execution info 07621 einfo = execution_info::create(10); 07622 07623 //properties 07624 07625 //versions 07626 versions = set<ulint>::create(); 07627 versions->insert(INSTRUCTION_CMP__1); 07628 versions->insert(INSTRUCTION_CMP__21); 07629 versions->insert(INSTRUCTION_CMP__22); 07630 versions->insert(INSTRUCTION_CMP__23); 07631 versions->insert(INSTRUCTION_CMP__24); 07632 07633 07634 //return target pseudoinstruction 07635 return tm_instr::create(INSTRUCTION_CMP__2,in_operands,out_operands,lstring("cmp $I_1, $I_2"), props,versions,0,einfo); 07636 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CMP__21 | ( | ) |
Definition at line 7638 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_CMP__1, INSTRUCTION_CMP__2, INSTRUCTION_CMP__21, INSTRUCTION_CMP__22, INSTRUCTION_CMP__23, INSTRUCTION_CMP__24, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07638 { 07639 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07640 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07641 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07642 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07643 ptr<set<tm_data_type_base::id_type> > allowed_types; 07644 ptr<execution_info> einfo; 07645 ptr<set<ulint> > versions; 07646 07647 //input operands 07648 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07649 dt_list_I_1->insert(DT_INT_8P); 07650 dt_list_I_1->insert(DT_INT_8U); 07651 dt_list_I_1->insert(DT_INT_8S); 07652 dt_list_I_1->insert(DT_INT_16U); 07653 dt_list_I_1->insert(DT_INT_16S); 07654 dt_list_I_1->insert(DT_INT_32U); 07655 dt_list_I_1->insert(DT_INT_32S); 07656 dt_list_I_1->insert(DT_BOOL); 07657 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07658 reg_list_I_1->insert(R_EAX); 07659 reg_list_I_1->insert(R_EBX); 07660 reg_list_I_1->insert(R_ECX); 07661 reg_list_I_1->insert(R_EDX); 07662 reg_list_I_1->insert(R_EDI); 07663 reg_list_I_1->insert(R_ESI); 07664 reg_list_I_1->insert(R_AX); 07665 reg_list_I_1->insert(R_BX); 07666 reg_list_I_1->insert(R_CX); 07667 reg_list_I_1->insert(R_DX); 07668 reg_list_I_1->insert(R_DI); 07669 reg_list_I_1->insert(R_SI); 07670 reg_list_I_1->insert(R_AL); 07671 reg_list_I_1->insert(R_AH); 07672 reg_list_I_1->insert(R_BL); 07673 reg_list_I_1->insert(R_BH); 07674 reg_list_I_1->insert(R_CL); 07675 reg_list_I_1->insert(R_CH); 07676 reg_list_I_1->insert(R_DL); 07677 reg_list_I_1->insert(R_DH); 07678 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07679 in_operands->push_back(op_I_1); 07680 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 07681 dt_list_I_2->insert(DT_INT_8P); 07682 dt_list_I_2->insert(DT_INT_8U); 07683 dt_list_I_2->insert(DT_INT_8S); 07684 dt_list_I_2->insert(DT_INT_16U); 07685 dt_list_I_2->insert(DT_INT_16S); 07686 dt_list_I_2->insert(DT_INT_32U); 07687 dt_list_I_2->insert(DT_INT_32S); 07688 dt_list_I_2->insert(DT_BOOL); 07689 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 07690 in_operands->push_back(op_I_2); 07691 07692 //output operands 07693 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07694 dt_list_O_1->insert(DT_COND); 07695 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07696 reg_list_O_1->insert(R_COND); 07697 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07698 out_operands->push_back(op_O_1); 07699 07700 //execution info 07701 einfo = execution_info::create(10); 07702 07703 //properties 07704 07705 //versions 07706 versions = set<ulint>::create(); 07707 versions->insert(INSTRUCTION_CMP__1); 07708 versions->insert(INSTRUCTION_CMP__2); 07709 versions->insert(INSTRUCTION_CMP__22); 07710 versions->insert(INSTRUCTION_CMP__23); 07711 versions->insert(INSTRUCTION_CMP__24); 07712 07713 07714 //return target pseudoinstruction 07715 return tm_instr::create(INSTRUCTION_CMP__21,in_operands,out_operands,lstring("cmp $I_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 07716 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CMP__22 | ( | ) |
Definition at line 7718 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_CMP__1, INSTRUCTION_CMP__2, INSTRUCTION_CMP__21, INSTRUCTION_CMP__22, INSTRUCTION_CMP__23, INSTRUCTION_CMP__24, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07718 { 07719 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07720 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07721 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07722 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07723 ptr<set<tm_data_type_base::id_type> > allowed_types; 07724 ptr<execution_info> einfo; 07725 ptr<set<ulint> > versions; 07726 07727 //input operands 07728 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07729 dt_list_I_1->insert(DT_INT_8P); 07730 dt_list_I_1->insert(DT_INT_8U); 07731 dt_list_I_1->insert(DT_INT_8S); 07732 dt_list_I_1->insert(DT_INT_16U); 07733 dt_list_I_1->insert(DT_INT_16S); 07734 dt_list_I_1->insert(DT_INT_32U); 07735 dt_list_I_1->insert(DT_INT_32S); 07736 dt_list_I_1->insert(DT_BOOL); 07737 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07738 reg_list_I_1->insert(R_EAX); 07739 reg_list_I_1->insert(R_EBX); 07740 reg_list_I_1->insert(R_ECX); 07741 reg_list_I_1->insert(R_EDX); 07742 reg_list_I_1->insert(R_EDI); 07743 reg_list_I_1->insert(R_ESI); 07744 reg_list_I_1->insert(R_AX); 07745 reg_list_I_1->insert(R_BX); 07746 reg_list_I_1->insert(R_CX); 07747 reg_list_I_1->insert(R_DX); 07748 reg_list_I_1->insert(R_DI); 07749 reg_list_I_1->insert(R_SI); 07750 reg_list_I_1->insert(R_AL); 07751 reg_list_I_1->insert(R_AH); 07752 reg_list_I_1->insert(R_BL); 07753 reg_list_I_1->insert(R_BH); 07754 reg_list_I_1->insert(R_CL); 07755 reg_list_I_1->insert(R_CH); 07756 reg_list_I_1->insert(R_DL); 07757 reg_list_I_1->insert(R_DH); 07758 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07759 in_operands->push_back(op_I_1); 07760 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 07761 dt_list_I_2->insert(DT_INT_8P); 07762 dt_list_I_2->insert(DT_INT_8U); 07763 dt_list_I_2->insert(DT_INT_8S); 07764 dt_list_I_2->insert(DT_INT_16U); 07765 dt_list_I_2->insert(DT_INT_16S); 07766 dt_list_I_2->insert(DT_INT_32U); 07767 dt_list_I_2->insert(DT_INT_32S); 07768 dt_list_I_2->insert(DT_BOOL); 07769 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 07770 in_operands->push_back(op_I_2); 07771 07772 //output operands 07773 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07774 dt_list_O_1->insert(DT_COND); 07775 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07776 reg_list_O_1->insert(R_COND); 07777 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07778 out_operands->push_back(op_O_1); 07779 07780 //execution info 07781 einfo = execution_info::create(30); 07782 07783 //properties 07784 07785 //versions 07786 versions = set<ulint>::create(); 07787 versions->insert(INSTRUCTION_CMP__1); 07788 versions->insert(INSTRUCTION_CMP__2); 07789 versions->insert(INSTRUCTION_CMP__21); 07790 versions->insert(INSTRUCTION_CMP__23); 07791 versions->insert(INSTRUCTION_CMP__24); 07792 07793 07794 //return target pseudoinstruction 07795 return tm_instr::create(INSTRUCTION_CMP__22,in_operands,out_operands,lstring("cmp $I_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 07796 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CMP__23 | ( | ) |
Definition at line 7798 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_CMP__1, INSTRUCTION_CMP__2, INSTRUCTION_CMP__21, INSTRUCTION_CMP__22, INSTRUCTION_CMP__23, INSTRUCTION_CMP__24, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07798 { 07799 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07800 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07801 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07802 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07803 ptr<set<tm_data_type_base::id_type> > allowed_types; 07804 ptr<execution_info> einfo; 07805 ptr<set<ulint> > versions; 07806 07807 //input operands 07808 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07809 dt_list_I_1->insert(DT_INT_8P); 07810 dt_list_I_1->insert(DT_INT_8U); 07811 dt_list_I_1->insert(DT_INT_8S); 07812 dt_list_I_1->insert(DT_INT_16U); 07813 dt_list_I_1->insert(DT_INT_16S); 07814 dt_list_I_1->insert(DT_INT_32U); 07815 dt_list_I_1->insert(DT_INT_32S); 07816 dt_list_I_1->insert(DT_BOOL); 07817 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07818 in_operands->push_back(op_I_1); 07819 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 07820 dt_list_I_2->insert(DT_INT_8P); 07821 dt_list_I_2->insert(DT_INT_8U); 07822 dt_list_I_2->insert(DT_INT_8S); 07823 dt_list_I_2->insert(DT_INT_16U); 07824 dt_list_I_2->insert(DT_INT_16S); 07825 dt_list_I_2->insert(DT_INT_32U); 07826 dt_list_I_2->insert(DT_INT_32S); 07827 dt_list_I_2->insert(DT_BOOL); 07828 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 07829 reg_list_I_2->insert(R_EAX); 07830 reg_list_I_2->insert(R_EBX); 07831 reg_list_I_2->insert(R_ECX); 07832 reg_list_I_2->insert(R_EDX); 07833 reg_list_I_2->insert(R_EDI); 07834 reg_list_I_2->insert(R_ESI); 07835 reg_list_I_2->insert(R_AX); 07836 reg_list_I_2->insert(R_BX); 07837 reg_list_I_2->insert(R_CX); 07838 reg_list_I_2->insert(R_DX); 07839 reg_list_I_2->insert(R_DI); 07840 reg_list_I_2->insert(R_SI); 07841 reg_list_I_2->insert(R_AL); 07842 reg_list_I_2->insert(R_AH); 07843 reg_list_I_2->insert(R_BL); 07844 reg_list_I_2->insert(R_BH); 07845 reg_list_I_2->insert(R_CL); 07846 reg_list_I_2->insert(R_CH); 07847 reg_list_I_2->insert(R_DL); 07848 reg_list_I_2->insert(R_DH); 07849 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 07850 in_operands->push_back(op_I_2); 07851 07852 //output operands 07853 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07854 dt_list_O_1->insert(DT_COND); 07855 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07856 reg_list_O_1->insert(R_COND); 07857 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07858 out_operands->push_back(op_O_1); 07859 07860 //execution info 07861 einfo = execution_info::create(30); 07862 07863 //properties 07864 07865 //versions 07866 versions = set<ulint>::create(); 07867 versions->insert(INSTRUCTION_CMP__1); 07868 versions->insert(INSTRUCTION_CMP__2); 07869 versions->insert(INSTRUCTION_CMP__21); 07870 versions->insert(INSTRUCTION_CMP__22); 07871 versions->insert(INSTRUCTION_CMP__24); 07872 07873 07874 //return target pseudoinstruction 07875 return tm_instr::create(INSTRUCTION_CMP__23,in_operands,out_operands,lstring("cmp $I_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 07876 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CMP__24 | ( | ) |
Definition at line 7878 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_CMP__1, INSTRUCTION_CMP__2, INSTRUCTION_CMP__21, INSTRUCTION_CMP__22, INSTRUCTION_CMP__23, INSTRUCTION_CMP__24, O_1, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
07878 { 07879 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07880 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07881 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07882 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07883 ptr<set<tm_data_type_base::id_type> > allowed_types; 07884 ptr<execution_info> einfo; 07885 ptr<set<ulint> > versions; 07886 07887 //input operands 07888 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07889 dt_list_I_1->insert(DT_INT_8P); 07890 dt_list_I_1->insert(DT_INT_8U); 07891 dt_list_I_1->insert(DT_INT_8S); 07892 dt_list_I_1->insert(DT_INT_16U); 07893 dt_list_I_1->insert(DT_INT_16S); 07894 dt_list_I_1->insert(DT_INT_32U); 07895 dt_list_I_1->insert(DT_INT_32S); 07896 dt_list_I_1->insert(DT_BOOL); 07897 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07898 in_operands->push_back(op_I_1); 07899 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 07900 dt_list_I_2->insert(DT_INT_8P); 07901 dt_list_I_2->insert(DT_INT_8U); 07902 dt_list_I_2->insert(DT_INT_8S); 07903 dt_list_I_2->insert(DT_INT_16U); 07904 dt_list_I_2->insert(DT_INT_16S); 07905 dt_list_I_2->insert(DT_INT_32U); 07906 dt_list_I_2->insert(DT_INT_32S); 07907 dt_list_I_2->insert(DT_BOOL); 07908 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 07909 in_operands->push_back(op_I_2); 07910 07911 //output operands 07912 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07913 dt_list_O_1->insert(DT_COND); 07914 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07915 reg_list_O_1->insert(R_COND); 07916 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07917 out_operands->push_back(op_O_1); 07918 07919 //execution info 07920 einfo = execution_info::create(30); 07921 07922 //properties 07923 07924 //versions 07925 versions = set<ulint>::create(); 07926 versions->insert(INSTRUCTION_CMP__1); 07927 versions->insert(INSTRUCTION_CMP__2); 07928 versions->insert(INSTRUCTION_CMP__21); 07929 versions->insert(INSTRUCTION_CMP__22); 07930 versions->insert(INSTRUCTION_CMP__23); 07931 07932 07933 //return target pseudoinstruction 07934 return tm_instr::create(INSTRUCTION_CMP__24,in_operands,out_operands,lstring("cmp $TYPE_I_1 $I_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 07935 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CONVERT__1 | ( | ) |
Definition at line 6585 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_CONVERT__1, INSTRUCTION_CONVERT__2, INSTRUCTION_CONVERT__3, INSTRUCTION_CONVERT__5, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06585 { 06586 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06587 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06588 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06589 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06590 ptr<set<tm_data_type_base::id_type> > allowed_types; 06591 ptr<execution_info> einfo; 06592 ptr<set<ulint> > versions; 06593 06594 //input operands 06595 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06596 dt_list_I_1->insert(DT_INT_8P); 06597 dt_list_I_1->insert(DT_INT_8U); 06598 dt_list_I_1->insert(DT_INT_8S); 06599 dt_list_I_1->insert(DT_INT_16U); 06600 dt_list_I_1->insert(DT_INT_16S); 06601 dt_list_I_1->insert(DT_INT_32U); 06602 dt_list_I_1->insert(DT_INT_32S); 06603 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06604 reg_list_I_1->insert(R_EAX); 06605 reg_list_I_1->insert(R_EBX); 06606 reg_list_I_1->insert(R_ECX); 06607 reg_list_I_1->insert(R_EDX); 06608 reg_list_I_1->insert(R_EDI); 06609 reg_list_I_1->insert(R_ESI); 06610 reg_list_I_1->insert(R_AX); 06611 reg_list_I_1->insert(R_BX); 06612 reg_list_I_1->insert(R_CX); 06613 reg_list_I_1->insert(R_DX); 06614 reg_list_I_1->insert(R_DI); 06615 reg_list_I_1->insert(R_SI); 06616 reg_list_I_1->insert(R_AL); 06617 reg_list_I_1->insert(R_AH); 06618 reg_list_I_1->insert(R_BL); 06619 reg_list_I_1->insert(R_BH); 06620 reg_list_I_1->insert(R_CL); 06621 reg_list_I_1->insert(R_CH); 06622 reg_list_I_1->insert(R_DL); 06623 reg_list_I_1->insert(R_DH); 06624 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06625 op_I_1->destroyed_by_get()->push_back(O_1); 06626 in_operands->push_back(op_I_1); 06627 06628 //output operands 06629 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06630 dt_list_O_1->insert(DT_INT_8U); 06631 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06632 reg_list_O_1->insert(R_AL); 06633 reg_list_O_1->insert(R_AH); 06634 reg_list_O_1->insert(R_BL); 06635 reg_list_O_1->insert(R_BH); 06636 reg_list_O_1->insert(R_CL); 06637 reg_list_O_1->insert(R_CH); 06638 reg_list_O_1->insert(R_DL); 06639 reg_list_O_1->insert(R_DH); 06640 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06641 op_O_1->destroys_set(I_1); 06642 out_operands->push_back(op_O_1); 06643 06644 //execution info 06645 einfo = execution_info::create(0); 06646 06647 //properties 06648 06649 //versions 06650 versions = set<ulint>::create(); 06651 versions->insert(INSTRUCTION_CONVERT__5); 06652 versions->insert(INSTRUCTION_CONVERT__2); 06653 versions->insert(INSTRUCTION_CONVERT__3); 06654 06655 06656 //return target pseudoinstruction 06657 return tm_instr::create(INSTRUCTION_CONVERT__1,in_operands,out_operands,lstring(""), props,versions,0,einfo); 06658 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CONVERT__2 | ( | ) |
Definition at line 6737 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, I_1, INSTRUCTION_CONVERT__1, INSTRUCTION_CONVERT__2, INSTRUCTION_CONVERT__3, INSTRUCTION_CONVERT__5, O_1, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06737 { 06738 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06739 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06740 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06741 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06742 ptr<set<tm_data_type_base::id_type> > allowed_types; 06743 ptr<execution_info> einfo; 06744 ptr<set<ulint> > versions; 06745 06746 //input operands 06747 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06748 dt_list_I_1->insert(DT_INT_32U); 06749 dt_list_I_1->insert(DT_INT_32S); 06750 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06751 reg_list_I_1->insert(R_EAX); 06752 reg_list_I_1->insert(R_EBX); 06753 reg_list_I_1->insert(R_ECX); 06754 reg_list_I_1->insert(R_EDX); 06755 reg_list_I_1->insert(R_EDI); 06756 reg_list_I_1->insert(R_ESI); 06757 reg_list_I_1->insert(R_AX); 06758 reg_list_I_1->insert(R_BX); 06759 reg_list_I_1->insert(R_CX); 06760 reg_list_I_1->insert(R_DX); 06761 reg_list_I_1->insert(R_DI); 06762 reg_list_I_1->insert(R_SI); 06763 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06764 op_I_1->destroyed_by_get()->push_back(O_1); 06765 in_operands->push_back(op_I_1); 06766 06767 //output operands 06768 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06769 dt_list_O_1->insert(DT_INT_16U); 06770 dt_list_O_1->insert(DT_INT_16S); 06771 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06772 reg_list_O_1->insert(R_AX); 06773 reg_list_O_1->insert(R_BX); 06774 reg_list_O_1->insert(R_CX); 06775 reg_list_O_1->insert(R_DX); 06776 reg_list_O_1->insert(R_DI); 06777 reg_list_O_1->insert(R_SI); 06778 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06779 op_O_1->destroys_set(I_1); 06780 out_operands->push_back(op_O_1); 06781 06782 //execution info 06783 einfo = execution_info::create(0); 06784 06785 //properties 06786 06787 //versions 06788 versions = set<ulint>::create(); 06789 versions->insert(INSTRUCTION_CONVERT__1); 06790 versions->insert(INSTRUCTION_CONVERT__5); 06791 versions->insert(INSTRUCTION_CONVERT__3); 06792 06793 06794 //return target pseudoinstruction 06795 return tm_instr::create(INSTRUCTION_CONVERT__2,in_operands,out_operands,lstring(""), props,versions,0,einfo); 06796 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CONVERT__3 | ( | ) |
Definition at line 6798 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, I_1, INSTRUCTION_CONVERT__1, INSTRUCTION_CONVERT__2, INSTRUCTION_CONVERT__3, INSTRUCTION_CONVERT__5, O_1, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
06798 { 06799 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06800 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06801 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06802 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06803 ptr<set<tm_data_type_base::id_type> > allowed_types; 06804 ptr<execution_info> einfo; 06805 ptr<set<ulint> > versions; 06806 06807 //input operands 06808 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06809 dt_list_I_1->insert(DT_INT_32U); 06810 dt_list_I_1->insert(DT_INT_32S); 06811 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06812 reg_list_I_1->insert(R_EAX); 06813 reg_list_I_1->insert(R_EBX); 06814 reg_list_I_1->insert(R_ECX); 06815 reg_list_I_1->insert(R_EDX); 06816 reg_list_I_1->insert(R_EDI); 06817 reg_list_I_1->insert(R_ESI); 06818 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06819 op_I_1->destroyed_by_get()->push_back(O_1); 06820 in_operands->push_back(op_I_1); 06821 06822 //output operands 06823 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06824 dt_list_O_1->insert(DT_INT_32U); 06825 dt_list_O_1->insert(DT_INT_32S); 06826 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06827 reg_list_O_1->insert(R_EAX); 06828 reg_list_O_1->insert(R_EBX); 06829 reg_list_O_1->insert(R_ECX); 06830 reg_list_O_1->insert(R_EDX); 06831 reg_list_O_1->insert(R_EDI); 06832 reg_list_O_1->insert(R_ESI); 06833 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06834 op_O_1->destroys_set(I_1); 06835 out_operands->push_back(op_O_1); 06836 06837 //execution info 06838 einfo = execution_info::create(0); 06839 06840 //properties 06841 06842 //versions 06843 versions = set<ulint>::create(); 06844 versions->insert(INSTRUCTION_CONVERT__1); 06845 versions->insert(INSTRUCTION_CONVERT__5); 06846 versions->insert(INSTRUCTION_CONVERT__2); 06847 06848 06849 //return target pseudoinstruction 06850 return tm_instr::create(INSTRUCTION_CONVERT__3,in_operands,out_operands,lstring(""), props,versions,0,einfo); 06851 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CONVERT__5 | ( | ) |
Definition at line 6660 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_CONVERT__1, INSTRUCTION_CONVERT__2, INSTRUCTION_CONVERT__3, INSTRUCTION_CONVERT__5, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06660 { 06661 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06662 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06663 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06664 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06665 ptr<set<tm_data_type_base::id_type> > allowed_types; 06666 ptr<execution_info> einfo; 06667 ptr<set<ulint> > versions; 06668 06669 //input operands 06670 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06671 dt_list_I_1->insert(DT_INT_8P); 06672 dt_list_I_1->insert(DT_INT_8U); 06673 dt_list_I_1->insert(DT_INT_8S); 06674 dt_list_I_1->insert(DT_INT_16U); 06675 dt_list_I_1->insert(DT_INT_16S); 06676 dt_list_I_1->insert(DT_INT_32U); 06677 dt_list_I_1->insert(DT_INT_32S); 06678 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06679 reg_list_I_1->insert(R_EAX); 06680 reg_list_I_1->insert(R_EBX); 06681 reg_list_I_1->insert(R_ECX); 06682 reg_list_I_1->insert(R_EDX); 06683 reg_list_I_1->insert(R_EDI); 06684 reg_list_I_1->insert(R_ESI); 06685 reg_list_I_1->insert(R_AX); 06686 reg_list_I_1->insert(R_BX); 06687 reg_list_I_1->insert(R_CX); 06688 reg_list_I_1->insert(R_DX); 06689 reg_list_I_1->insert(R_DI); 06690 reg_list_I_1->insert(R_SI); 06691 reg_list_I_1->insert(R_AL); 06692 reg_list_I_1->insert(R_AH); 06693 reg_list_I_1->insert(R_BL); 06694 reg_list_I_1->insert(R_BH); 06695 reg_list_I_1->insert(R_CL); 06696 reg_list_I_1->insert(R_CH); 06697 reg_list_I_1->insert(R_DL); 06698 reg_list_I_1->insert(R_DH); 06699 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06700 op_I_1->destroyed_by_get()->push_back(O_1); 06701 in_operands->push_back(op_I_1); 06702 06703 //output operands 06704 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06705 dt_list_O_1->insert(DT_INT_8P); 06706 dt_list_O_1->insert(DT_INT_8U); 06707 dt_list_O_1->insert(DT_INT_8S); 06708 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06709 reg_list_O_1->insert(R_AL); 06710 reg_list_O_1->insert(R_AH); 06711 reg_list_O_1->insert(R_BL); 06712 reg_list_O_1->insert(R_BH); 06713 reg_list_O_1->insert(R_CL); 06714 reg_list_O_1->insert(R_CH); 06715 reg_list_O_1->insert(R_DL); 06716 reg_list_O_1->insert(R_DH); 06717 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06718 op_O_1->destroys_set(I_1); 06719 out_operands->push_back(op_O_1); 06720 06721 //execution info 06722 einfo = execution_info::create(0); 06723 06724 //properties 06725 06726 //versions 06727 versions = set<ulint>::create(); 06728 versions->insert(INSTRUCTION_CONVERT__1); 06729 versions->insert(INSTRUCTION_CONVERT__2); 06730 versions->insert(INSTRUCTION_CONVERT__3); 06731 06732 06733 //return target pseudoinstruction 06734 return tm_instr::create(INSTRUCTION_CONVERT__5,in_operands,out_operands,lstring(""), props,versions,0,einfo); 06735 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_CWD__1 | ( | ) |
Definition at line 2981 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, I_1, INSTRUCTION_CWD__1, O_1, O_2, lestes::md::registers::R_AX, and lestes::md::registers::R_DX.
Referenced by lestes::md::instructions::tm_instr::instance().
02981 { 02982 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02983 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02984 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02985 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02986 ptr<set<tm_data_type_base::id_type> > allowed_types; 02987 ptr<execution_info> einfo; 02988 ptr<set<ulint> > versions; 02989 02990 //input operands 02991 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02992 dt_list_I_1->insert(DT_INT_16S); 02993 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02994 reg_list_I_1->insert(R_AX); 02995 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02996 op_I_1->destroyed_by_get()->push_back(O_2); 02997 in_operands->push_back(op_I_1); 02998 02999 //output operands 03000 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03001 dt_list_O_1->insert(DT_INT_16S); 03002 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03003 reg_list_O_1->insert(R_DX); 03004 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03005 out_operands->push_back(op_O_1); 03006 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03007 dt_list_O_2->insert(DT_INT_16S); 03008 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03009 reg_list_O_2->insert(R_AX); 03010 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03011 op_O_2->destroys_set(I_1); 03012 out_operands->push_back(op_O_2); 03013 03014 //execution info 03015 einfo = execution_info::create(10); 03016 03017 //properties 03018 03019 //versions 03020 03021 03022 //return target pseudoinstruction 03023 return tm_instr::create(INSTRUCTION_CWD__1,in_operands,out_operands,lstring("cwd"), props,versions,0,einfo); 03024 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_DIV__1 | ( | ) |
Definition at line 3071 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_8U, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__11, INSTRUCTION_DIV__2, INSTRUCTION_DIV__21, INSTRUCTION_DIV__3, INSTRUCTION_DIV__31, O_1, O_2, O_3, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
03071 { 03072 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03073 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03074 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03075 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03076 ptr<set<tm_data_type_base::id_type> > allowed_types; 03077 ptr<execution_info> einfo; 03078 ptr<set<ulint> > versions; 03079 03080 //input operands 03081 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03082 dt_list_I_1->insert(DT_INT_8U); 03083 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03084 reg_list_I_1->insert(R_AH); 03085 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03086 op_I_1->destroyed_by_get()->push_back(O_2); 03087 in_operands->push_back(op_I_1); 03088 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03089 dt_list_I_2->insert(DT_INT_8U); 03090 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03091 reg_list_I_2->insert(R_AL); 03092 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03093 op_I_2->destroyed_by_get()->push_back(O_1); 03094 in_operands->push_back(op_I_2); 03095 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03096 dt_list_I_3->insert(DT_INT_8U); 03097 ptr<set<tm_register_base::id_type> > reg_list_I_3 = set<tm_register_base::id_type>::create(); 03098 reg_list_I_3->insert(R_AL); 03099 reg_list_I_3->insert(R_AH); 03100 reg_list_I_3->insert(R_BL); 03101 reg_list_I_3->insert(R_BH); 03102 reg_list_I_3->insert(R_CL); 03103 reg_list_I_3->insert(R_CH); 03104 reg_list_I_3->insert(R_DL); 03105 reg_list_I_3->insert(R_DH); 03106 reg_list_I_3->erase(R_AL); 03107 ptr<tm_instr_op_reg> op_I_3 = tm_instr_op_reg::create(I_3, dt_list_I_3, reg_list_I_3); 03108 in_operands->push_back(op_I_3); 03109 03110 //output operands 03111 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03112 dt_list_O_1->insert(DT_INT_8U); 03113 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03114 reg_list_O_1->insert(R_AL); 03115 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03116 op_O_1->destroys_set(I_2); 03117 out_operands->push_back(op_O_1); 03118 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03119 dt_list_O_2->insert(DT_INT_8U); 03120 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03121 reg_list_O_2->insert(R_AH); 03122 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03123 op_O_2->destroys_set(I_1); 03124 out_operands->push_back(op_O_2); 03125 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03126 dt_list_O_3->insert(DT_COND); 03127 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03128 reg_list_O_3->insert(R_COND); 03129 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03130 out_operands->push_back(op_O_3); 03131 03132 //execution info 03133 einfo = execution_info::create(700); 03134 03135 //properties 03136 03137 //versions 03138 versions = set<ulint>::create(); 03139 versions->insert(INSTRUCTION_DIV__11); 03140 versions->insert(INSTRUCTION_DIV__2); 03141 versions->insert(INSTRUCTION_DIV__21); 03142 versions->insert(INSTRUCTION_DIV__3); 03143 versions->insert(INSTRUCTION_DIV__31); 03144 03145 03146 //return target pseudoinstruction 03147 return tm_instr::create(INSTRUCTION_DIV__1,in_operands,out_operands,lstring("div $I_3"), props,versions,0,einfo); 03148 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_DIV__11 | ( | ) |
Definition at line 3150 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_8U, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__11, INSTRUCTION_DIV__2, INSTRUCTION_DIV__21, INSTRUCTION_DIV__3, INSTRUCTION_DIV__31, O_1, O_2, O_3, lestes::md::registers::R_AH, lestes::md::registers::R_AL, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
03150 { 03151 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03152 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03153 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03154 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03155 ptr<set<tm_data_type_base::id_type> > allowed_types; 03156 ptr<execution_info> einfo; 03157 ptr<set<ulint> > versions; 03158 03159 //input operands 03160 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03161 dt_list_I_1->insert(DT_INT_8U); 03162 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03163 reg_list_I_1->insert(R_AH); 03164 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03165 op_I_1->destroyed_by_get()->push_back(O_2); 03166 in_operands->push_back(op_I_1); 03167 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03168 dt_list_I_2->insert(DT_INT_8U); 03169 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03170 reg_list_I_2->insert(R_AL); 03171 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03172 op_I_2->destroyed_by_get()->push_back(O_1); 03173 in_operands->push_back(op_I_2); 03174 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03175 dt_list_I_3->insert(DT_INT_8U); 03176 ptr<tm_instr_op_mem> op_I_3 = tm_instr_op_mem::create(I_3, dt_list_I_3); 03177 in_operands->push_back(op_I_3); 03178 03179 //output operands 03180 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03181 dt_list_O_1->insert(DT_INT_8U); 03182 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03183 reg_list_O_1->insert(R_AL); 03184 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03185 op_O_1->destroys_set(I_2); 03186 out_operands->push_back(op_O_1); 03187 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03188 dt_list_O_2->insert(DT_INT_8U); 03189 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03190 reg_list_O_2->insert(R_AH); 03191 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03192 op_O_2->destroys_set(I_1); 03193 out_operands->push_back(op_O_2); 03194 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03195 dt_list_O_3->insert(DT_COND); 03196 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03197 reg_list_O_3->insert(R_COND); 03198 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03199 out_operands->push_back(op_O_3); 03200 03201 //execution info 03202 einfo = execution_info::create(720); 03203 03204 //properties 03205 03206 //versions 03207 versions = set<ulint>::create(); 03208 versions->insert(INSTRUCTION_DIV__1); 03209 versions->insert(INSTRUCTION_DIV__2); 03210 versions->insert(INSTRUCTION_DIV__21); 03211 versions->insert(INSTRUCTION_DIV__3); 03212 versions->insert(INSTRUCTION_DIV__31); 03213 03214 03215 //return target pseudoinstruction 03216 return tm_instr::create(INSTRUCTION_DIV__11,in_operands,out_operands,lstring("div $TYPE_I_3 $I_3"), props,versions,0,einfo); 03217 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_DIV__2 | ( | ) |
Definition at line 3219 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16U, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__11, INSTRUCTION_DIV__2, INSTRUCTION_DIV__21, INSTRUCTION_DIV__3, INSTRUCTION_DIV__31, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
03219 { 03220 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03221 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03222 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03223 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03224 ptr<set<tm_data_type_base::id_type> > allowed_types; 03225 ptr<execution_info> einfo; 03226 ptr<set<ulint> > versions; 03227 03228 //input operands 03229 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03230 dt_list_I_1->insert(DT_INT_16U); 03231 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03232 reg_list_I_1->insert(R_DX); 03233 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03234 op_I_1->destroyed_by_get()->push_back(O_2); 03235 in_operands->push_back(op_I_1); 03236 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03237 dt_list_I_2->insert(DT_INT_16U); 03238 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03239 reg_list_I_2->insert(R_AX); 03240 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03241 op_I_2->destroyed_by_get()->push_back(O_1); 03242 in_operands->push_back(op_I_2); 03243 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03244 dt_list_I_3->insert(DT_INT_16U); 03245 ptr<set<tm_register_base::id_type> > reg_list_I_3 = set<tm_register_base::id_type>::create(); 03246 reg_list_I_3->insert(R_AX); 03247 reg_list_I_3->insert(R_BX); 03248 reg_list_I_3->insert(R_CX); 03249 reg_list_I_3->insert(R_DX); 03250 reg_list_I_3->insert(R_DI); 03251 reg_list_I_3->insert(R_SI); 03252 reg_list_I_3->erase(R_DX); 03253 ptr<tm_instr_op_reg> op_I_3 = tm_instr_op_reg::create(I_3, dt_list_I_3, reg_list_I_3); 03254 in_operands->push_back(op_I_3); 03255 03256 //output operands 03257 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03258 dt_list_O_1->insert(DT_INT_16U); 03259 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03260 reg_list_O_1->insert(R_AX); 03261 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03262 op_O_1->destroys_set(I_2); 03263 out_operands->push_back(op_O_1); 03264 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03265 dt_list_O_2->insert(DT_INT_16U); 03266 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03267 reg_list_O_2->insert(R_DX); 03268 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03269 op_O_2->destroys_set(I_1); 03270 out_operands->push_back(op_O_2); 03271 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03272 dt_list_O_3->insert(DT_COND); 03273 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03274 reg_list_O_3->insert(R_COND); 03275 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03276 out_operands->push_back(op_O_3); 03277 03278 //execution info 03279 einfo = execution_info::create(700); 03280 03281 //properties 03282 03283 //versions 03284 versions = set<ulint>::create(); 03285 versions->insert(INSTRUCTION_DIV__1); 03286 versions->insert(INSTRUCTION_DIV__11); 03287 versions->insert(INSTRUCTION_DIV__21); 03288 versions->insert(INSTRUCTION_DIV__3); 03289 versions->insert(INSTRUCTION_DIV__31); 03290 03291 03292 //return target pseudoinstruction 03293 return tm_instr::create(INSTRUCTION_DIV__2,in_operands,out_operands,lstring("div $I_3"), props,versions,0,einfo); 03294 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_DIV__21 | ( | ) |
Definition at line 3296 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16U, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__11, INSTRUCTION_DIV__2, INSTRUCTION_DIV__21, INSTRUCTION_DIV__3, INSTRUCTION_DIV__31, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_COND, and lestes::md::registers::R_DX.
Referenced by lestes::md::instructions::tm_instr::instance().
03296 { 03297 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03298 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03299 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03300 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03301 ptr<set<tm_data_type_base::id_type> > allowed_types; 03302 ptr<execution_info> einfo; 03303 ptr<set<ulint> > versions; 03304 03305 //input operands 03306 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03307 dt_list_I_1->insert(DT_INT_16U); 03308 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03309 reg_list_I_1->insert(R_DX); 03310 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03311 op_I_1->destroyed_by_get()->push_back(O_2); 03312 in_operands->push_back(op_I_1); 03313 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03314 dt_list_I_2->insert(DT_INT_16U); 03315 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03316 reg_list_I_2->insert(R_AX); 03317 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03318 op_I_2->destroyed_by_get()->push_back(O_1); 03319 in_operands->push_back(op_I_2); 03320 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03321 dt_list_I_3->insert(DT_INT_16U); 03322 ptr<tm_instr_op_mem> op_I_3 = tm_instr_op_mem::create(I_3, dt_list_I_3); 03323 in_operands->push_back(op_I_3); 03324 03325 //output operands 03326 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03327 dt_list_O_1->insert(DT_INT_16U); 03328 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03329 reg_list_O_1->insert(R_AX); 03330 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03331 op_O_1->destroys_set(I_2); 03332 out_operands->push_back(op_O_1); 03333 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03334 dt_list_O_2->insert(DT_INT_16U); 03335 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03336 reg_list_O_2->insert(R_DX); 03337 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03338 op_O_2->destroys_set(I_1); 03339 out_operands->push_back(op_O_2); 03340 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03341 dt_list_O_3->insert(DT_COND); 03342 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03343 reg_list_O_3->insert(R_COND); 03344 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03345 out_operands->push_back(op_O_3); 03346 03347 //execution info 03348 einfo = execution_info::create(720); 03349 03350 //properties 03351 03352 //versions 03353 versions = set<ulint>::create(); 03354 versions->insert(INSTRUCTION_DIV__1); 03355 versions->insert(INSTRUCTION_DIV__11); 03356 versions->insert(INSTRUCTION_DIV__2); 03357 versions->insert(INSTRUCTION_DIV__3); 03358 versions->insert(INSTRUCTION_DIV__31); 03359 03360 03361 //return target pseudoinstruction 03362 return tm_instr::create(INSTRUCTION_DIV__21,in_operands,out_operands,lstring("div $TYPE_I_3 $I_3"), props,versions,0,einfo); 03363 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_DIV__3 | ( | ) |
Definition at line 3365 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32U, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__11, INSTRUCTION_DIV__2, INSTRUCTION_DIV__21, INSTRUCTION_DIV__3, INSTRUCTION_DIV__31, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
03365 { 03366 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03367 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03368 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03369 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03370 ptr<set<tm_data_type_base::id_type> > allowed_types; 03371 ptr<execution_info> einfo; 03372 ptr<set<ulint> > versions; 03373 03374 //input operands 03375 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03376 dt_list_I_1->insert(DT_INT_32U); 03377 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03378 reg_list_I_1->insert(R_EDX); 03379 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03380 op_I_1->destroyed_by_get()->push_back(O_2); 03381 in_operands->push_back(op_I_1); 03382 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03383 dt_list_I_2->insert(DT_INT_32U); 03384 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03385 reg_list_I_2->insert(R_EAX); 03386 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03387 op_I_2->destroyed_by_get()->push_back(O_1); 03388 in_operands->push_back(op_I_2); 03389 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03390 dt_list_I_3->insert(DT_INT_32U); 03391 ptr<set<tm_register_base::id_type> > reg_list_I_3 = set<tm_register_base::id_type>::create(); 03392 reg_list_I_3->insert(R_EAX); 03393 reg_list_I_3->insert(R_EBX); 03394 reg_list_I_3->insert(R_ECX); 03395 reg_list_I_3->insert(R_EDX); 03396 reg_list_I_3->insert(R_EDI); 03397 reg_list_I_3->insert(R_ESI); 03398 reg_list_I_3->erase(R_EDX); 03399 ptr<tm_instr_op_reg> op_I_3 = tm_instr_op_reg::create(I_3, dt_list_I_3, reg_list_I_3); 03400 in_operands->push_back(op_I_3); 03401 03402 //output operands 03403 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03404 dt_list_O_1->insert(DT_INT_32U); 03405 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03406 reg_list_O_1->insert(R_EAX); 03407 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03408 op_O_1->destroys_set(I_2); 03409 out_operands->push_back(op_O_1); 03410 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03411 dt_list_O_2->insert(DT_INT_32U); 03412 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03413 reg_list_O_2->insert(R_EDX); 03414 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03415 op_O_2->destroys_set(I_1); 03416 out_operands->push_back(op_O_2); 03417 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03418 dt_list_O_3->insert(DT_COND); 03419 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03420 reg_list_O_3->insert(R_COND); 03421 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03422 out_operands->push_back(op_O_3); 03423 03424 //execution info 03425 einfo = execution_info::create(700); 03426 03427 //properties 03428 03429 //versions 03430 versions = set<ulint>::create(); 03431 versions->insert(INSTRUCTION_DIV__1); 03432 versions->insert(INSTRUCTION_DIV__11); 03433 versions->insert(INSTRUCTION_DIV__2); 03434 versions->insert(INSTRUCTION_DIV__21); 03435 versions->insert(INSTRUCTION_DIV__31); 03436 03437 03438 //return target pseudoinstruction 03439 return tm_instr::create(INSTRUCTION_DIV__3,in_operands,out_operands,lstring("div $I_3"), props,versions,0,einfo); 03440 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_DIV__31 | ( | ) |
Definition at line 3442 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32U, I_1, I_2, I_3, INSTRUCTION_DIV__1, INSTRUCTION_DIV__11, INSTRUCTION_DIV__2, INSTRUCTION_DIV__21, INSTRUCTION_DIV__3, INSTRUCTION_DIV__31, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
03442 { 03443 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03444 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03445 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03446 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03447 ptr<set<tm_data_type_base::id_type> > allowed_types; 03448 ptr<execution_info> einfo; 03449 ptr<set<ulint> > versions; 03450 03451 //input operands 03452 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03453 dt_list_I_1->insert(DT_INT_32U); 03454 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03455 reg_list_I_1->insert(R_EDX); 03456 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03457 op_I_1->destroyed_by_get()->push_back(O_2); 03458 in_operands->push_back(op_I_1); 03459 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03460 dt_list_I_2->insert(DT_INT_32U); 03461 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03462 reg_list_I_2->insert(R_EAX); 03463 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03464 op_I_2->destroyed_by_get()->push_back(O_1); 03465 in_operands->push_back(op_I_2); 03466 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03467 dt_list_I_3->insert(DT_INT_32U); 03468 ptr<tm_instr_op_mem> op_I_3 = tm_instr_op_mem::create(I_3, dt_list_I_3); 03469 in_operands->push_back(op_I_3); 03470 03471 //output operands 03472 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03473 dt_list_O_1->insert(DT_INT_32U); 03474 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03475 reg_list_O_1->insert(R_EAX); 03476 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03477 op_O_1->destroys_set(I_2); 03478 out_operands->push_back(op_O_1); 03479 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03480 dt_list_O_2->insert(DT_INT_32U); 03481 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03482 reg_list_O_2->insert(R_EDX); 03483 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03484 op_O_2->destroys_set(I_1); 03485 out_operands->push_back(op_O_2); 03486 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03487 dt_list_O_3->insert(DT_COND); 03488 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03489 reg_list_O_3->insert(R_COND); 03490 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03491 out_operands->push_back(op_O_3); 03492 03493 //execution info 03494 einfo = execution_info::create(720); 03495 03496 //properties 03497 03498 //versions 03499 versions = set<ulint>::create(); 03500 versions->insert(INSTRUCTION_DIV__1); 03501 versions->insert(INSTRUCTION_DIV__11); 03502 versions->insert(INSTRUCTION_DIV__2); 03503 versions->insert(INSTRUCTION_DIV__21); 03504 versions->insert(INSTRUCTION_DIV__3); 03505 03506 03507 //return target pseudoinstruction 03508 return tm_instr::create(INSTRUCTION_DIV__31,in_operands,out_operands,lstring("div $TYPE_I_3 $I_3"), props,versions,0,einfo); 03509 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_EPILOGUE__1 | ( | ) |
Definition at line 9280 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, I_3, IF_SYS, INSTRUCTION_EPILOGUE__1, lestes::md::registers::R_EBX, lestes::md::registers::R_EDI, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
09280 { 09281 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09282 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09283 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09284 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09285 ptr<set<tm_data_type_base::id_type> > allowed_types; 09286 ptr<execution_info> einfo; 09287 ptr<set<ulint> > versions; 09288 09289 //input operands 09290 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 09291 dt_list_I_1->insert(DT_INT_8P); 09292 dt_list_I_1->insert(DT_INT_8U); 09293 dt_list_I_1->insert(DT_INT_8S); 09294 dt_list_I_1->insert(DT_INT_16U); 09295 dt_list_I_1->insert(DT_INT_16S); 09296 dt_list_I_1->insert(DT_INT_32U); 09297 dt_list_I_1->insert(DT_INT_32S); 09298 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 09299 reg_list_I_1->insert(R_EDI); 09300 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 09301 in_operands->push_back(op_I_1); 09302 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 09303 dt_list_I_2->insert(DT_INT_8P); 09304 dt_list_I_2->insert(DT_INT_8U); 09305 dt_list_I_2->insert(DT_INT_8S); 09306 dt_list_I_2->insert(DT_INT_16U); 09307 dt_list_I_2->insert(DT_INT_16S); 09308 dt_list_I_2->insert(DT_INT_32U); 09309 dt_list_I_2->insert(DT_INT_32S); 09310 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 09311 reg_list_I_2->insert(R_ESI); 09312 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 09313 in_operands->push_back(op_I_2); 09314 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 09315 dt_list_I_3->insert(DT_INT_8P); 09316 dt_list_I_3->insert(DT_INT_8U); 09317 dt_list_I_3->insert(DT_INT_8S); 09318 dt_list_I_3->insert(DT_INT_16U); 09319 dt_list_I_3->insert(DT_INT_16S); 09320 dt_list_I_3->insert(DT_INT_32U); 09321 dt_list_I_3->insert(DT_INT_32S); 09322 ptr<set<tm_register_base::id_type> > reg_list_I_3 = set<tm_register_base::id_type>::create(); 09323 reg_list_I_3->insert(R_EBX); 09324 ptr<tm_instr_op_reg> op_I_3 = tm_instr_op_reg::create(I_3, dt_list_I_3, reg_list_I_3); 09325 in_operands->push_back(op_I_3); 09326 09327 //output operands 09328 09329 //execution info 09330 einfo = execution_info::create(0); 09331 09332 //properties 09333 09334 //versions 09335 09336 09337 //return target pseudoinstruction 09338 return tm_instr::create(INSTRUCTION_EPILOGUE__1,in_operands,out_operands,lstring(""), props,versions,IF_SYS,einfo); 09339 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_ESPADD__1 | ( | ) |
Definition at line 9066 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, IF_SYS, INSTRUCTION_ESPADD__1, O_1, O_2, lestes::md::registers::R_COND, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
09066 { 09067 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09068 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09069 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09070 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09071 ptr<set<tm_data_type_base::id_type> > allowed_types; 09072 ptr<execution_info> einfo; 09073 ptr<set<ulint> > versions; 09074 09075 //input operands 09076 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 09077 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 09078 reg_list_I_1->insert(R_ESP); 09079 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 09080 op_I_1->destroyed_by_get()->push_back(O_1); 09081 in_operands->push_back(op_I_1); 09082 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 09083 dt_list_I_2->insert(DT_INT_8P); 09084 dt_list_I_2->insert(DT_INT_8U); 09085 dt_list_I_2->insert(DT_INT_8S); 09086 dt_list_I_2->insert(DT_INT_16U); 09087 dt_list_I_2->insert(DT_INT_16S); 09088 dt_list_I_2->insert(DT_INT_32U); 09089 dt_list_I_2->insert(DT_INT_32S); 09090 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 09091 in_operands->push_back(op_I_2); 09092 09093 //output operands 09094 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 09095 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 09096 reg_list_O_1->insert(R_ESP); 09097 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 09098 op_O_1->destroys_set(I_1); 09099 out_operands->push_back(op_O_1); 09100 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 09101 dt_list_O_2->insert(DT_COND); 09102 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 09103 reg_list_O_2->insert(R_COND); 09104 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 09105 out_operands->push_back(op_O_2); 09106 09107 //execution info 09108 einfo = execution_info::create(10); 09109 09110 //properties 09111 09112 //versions 09113 09114 09115 //return target pseudoinstruction 09116 return tm_instr::create(INSTRUCTION_ESPADD__1,in_operands,out_operands,lstring("add $O_1, $TYPE_I_2 $I_2"), props,versions,IF_SYS,einfo); 09117 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IDIV__1 | ( | ) |
Definition at line 3604 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_8S, I_1, I_2, INSTRUCTION_IDIV__1, INSTRUCTION_IDIV__11, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__21, INSTRUCTION_IDIV__3, INSTRUCTION_IDIV__31, O_1, O_2, O_3, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
03604 { 03605 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03606 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03607 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03608 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03609 ptr<set<tm_data_type_base::id_type> > allowed_types; 03610 ptr<execution_info> einfo; 03611 ptr<set<ulint> > versions; 03612 03613 //input operands 03614 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03615 dt_list_I_1->insert(DT_INT_16S); 03616 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03617 reg_list_I_1->insert(R_AX); 03618 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03619 op_I_1->destroyed_by_get()->push_back(O_1); 03620 op_I_1->destroyed_by_get()->push_back(O_2); 03621 in_operands->push_back(op_I_1); 03622 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03623 dt_list_I_2->insert(DT_INT_8S); 03624 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03625 reg_list_I_2->insert(R_AL); 03626 reg_list_I_2->insert(R_AH); 03627 reg_list_I_2->insert(R_BL); 03628 reg_list_I_2->insert(R_BH); 03629 reg_list_I_2->insert(R_CL); 03630 reg_list_I_2->insert(R_CH); 03631 reg_list_I_2->insert(R_DL); 03632 reg_list_I_2->insert(R_DH); 03633 reg_list_I_2->erase(R_AH); 03634 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03635 in_operands->push_back(op_I_2); 03636 03637 //output operands 03638 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03639 dt_list_O_1->insert(DT_INT_8S); 03640 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03641 reg_list_O_1->insert(R_AL); 03642 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03643 op_O_1->destroys_set(I_1); 03644 out_operands->push_back(op_O_1); 03645 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03646 dt_list_O_2->insert(DT_INT_8S); 03647 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03648 reg_list_O_2->insert(R_AH); 03649 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03650 op_O_2->destroys_set(I_1); 03651 out_operands->push_back(op_O_2); 03652 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03653 dt_list_O_3->insert(DT_COND); 03654 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03655 reg_list_O_3->insert(R_COND); 03656 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03657 out_operands->push_back(op_O_3); 03658 03659 //execution info 03660 einfo = execution_info::create(700); 03661 03662 //properties 03663 03664 //versions 03665 versions = set<ulint>::create(); 03666 versions->insert(INSTRUCTION_IDIV__11); 03667 versions->insert(INSTRUCTION_IDIV__2); 03668 versions->insert(INSTRUCTION_IDIV__21); 03669 versions->insert(INSTRUCTION_IDIV__3); 03670 versions->insert(INSTRUCTION_IDIV__31); 03671 03672 03673 //return target pseudoinstruction 03674 return tm_instr::create(INSTRUCTION_IDIV__1,in_operands,out_operands,lstring("idiv $I_2"), props,versions,0,einfo); 03675 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IDIV__11 | ( | ) |
Definition at line 3677 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_8S, I_1, I_2, INSTRUCTION_IDIV__1, INSTRUCTION_IDIV__11, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__21, INSTRUCTION_IDIV__3, INSTRUCTION_IDIV__31, O_1, O_2, O_3, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
03677 { 03678 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03679 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03680 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03681 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03682 ptr<set<tm_data_type_base::id_type> > allowed_types; 03683 ptr<execution_info> einfo; 03684 ptr<set<ulint> > versions; 03685 03686 //input operands 03687 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03688 dt_list_I_1->insert(DT_INT_16S); 03689 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03690 reg_list_I_1->insert(R_AX); 03691 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03692 op_I_1->destroyed_by_get()->push_back(O_1); 03693 op_I_1->destroyed_by_get()->push_back(O_2); 03694 in_operands->push_back(op_I_1); 03695 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03696 dt_list_I_2->insert(DT_INT_8S); 03697 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 03698 in_operands->push_back(op_I_2); 03699 03700 //output operands 03701 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03702 dt_list_O_1->insert(DT_INT_8S); 03703 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03704 reg_list_O_1->insert(R_AL); 03705 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03706 op_O_1->destroys_set(I_1); 03707 out_operands->push_back(op_O_1); 03708 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03709 dt_list_O_2->insert(DT_INT_8S); 03710 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03711 reg_list_O_2->insert(R_AH); 03712 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03713 op_O_2->destroys_set(I_1); 03714 out_operands->push_back(op_O_2); 03715 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03716 dt_list_O_3->insert(DT_COND); 03717 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03718 reg_list_O_3->insert(R_COND); 03719 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03720 out_operands->push_back(op_O_3); 03721 03722 //execution info 03723 einfo = execution_info::create(720); 03724 03725 //properties 03726 03727 //versions 03728 versions = set<ulint>::create(); 03729 versions->insert(INSTRUCTION_IDIV__1); 03730 versions->insert(INSTRUCTION_IDIV__2); 03731 versions->insert(INSTRUCTION_IDIV__21); 03732 versions->insert(INSTRUCTION_IDIV__3); 03733 versions->insert(INSTRUCTION_IDIV__31); 03734 03735 03736 //return target pseudoinstruction 03737 return tm_instr::create(INSTRUCTION_IDIV__11,in_operands,out_operands,lstring("idiv $TYPE_I_2 $I_2"), props,versions,0,einfo); 03738 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IDIV__2 | ( | ) |
Definition at line 3740 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, I_1, I_2, I_3, INSTRUCTION_IDIV__1, INSTRUCTION_IDIV__11, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__21, INSTRUCTION_IDIV__3, INSTRUCTION_IDIV__31, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
03740 { 03741 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03742 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03743 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03744 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03745 ptr<set<tm_data_type_base::id_type> > allowed_types; 03746 ptr<execution_info> einfo; 03747 ptr<set<ulint> > versions; 03748 03749 //input operands 03750 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03751 dt_list_I_1->insert(DT_INT_16S); 03752 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03753 reg_list_I_1->insert(R_DX); 03754 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03755 op_I_1->destroyed_by_get()->push_back(O_2); 03756 in_operands->push_back(op_I_1); 03757 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03758 dt_list_I_2->insert(DT_INT_16S); 03759 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03760 reg_list_I_2->insert(R_AX); 03761 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03762 op_I_2->destroyed_by_get()->push_back(O_1); 03763 in_operands->push_back(op_I_2); 03764 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03765 dt_list_I_3->insert(DT_INT_16S); 03766 ptr<set<tm_register_base::id_type> > reg_list_I_3 = set<tm_register_base::id_type>::create(); 03767 reg_list_I_3->insert(R_AX); 03768 reg_list_I_3->insert(R_BX); 03769 reg_list_I_3->insert(R_CX); 03770 reg_list_I_3->insert(R_DX); 03771 reg_list_I_3->insert(R_DI); 03772 reg_list_I_3->insert(R_SI); 03773 reg_list_I_3->erase(R_DX); 03774 ptr<tm_instr_op_reg> op_I_3 = tm_instr_op_reg::create(I_3, dt_list_I_3, reg_list_I_3); 03775 in_operands->push_back(op_I_3); 03776 03777 //output operands 03778 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03779 dt_list_O_1->insert(DT_INT_16S); 03780 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03781 reg_list_O_1->insert(R_AX); 03782 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03783 op_O_1->destroys_set(I_2); 03784 out_operands->push_back(op_O_1); 03785 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03786 dt_list_O_2->insert(DT_INT_16S); 03787 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03788 reg_list_O_2->insert(R_DX); 03789 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03790 op_O_2->destroys_set(I_1); 03791 out_operands->push_back(op_O_2); 03792 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03793 dt_list_O_3->insert(DT_COND); 03794 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03795 reg_list_O_3->insert(R_COND); 03796 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03797 out_operands->push_back(op_O_3); 03798 03799 //execution info 03800 einfo = execution_info::create(700); 03801 03802 //properties 03803 03804 //versions 03805 versions = set<ulint>::create(); 03806 versions->insert(INSTRUCTION_IDIV__1); 03807 versions->insert(INSTRUCTION_IDIV__11); 03808 versions->insert(INSTRUCTION_IDIV__21); 03809 versions->insert(INSTRUCTION_IDIV__3); 03810 versions->insert(INSTRUCTION_IDIV__31); 03811 03812 03813 //return target pseudoinstruction 03814 return tm_instr::create(INSTRUCTION_IDIV__2,in_operands,out_operands,lstring("idiv $I_3"), props,versions,0,einfo); 03815 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IDIV__21 | ( | ) |
Definition at line 3817 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, I_1, I_2, I_3, INSTRUCTION_IDIV__1, INSTRUCTION_IDIV__11, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__21, INSTRUCTION_IDIV__3, INSTRUCTION_IDIV__31, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_COND, and lestes::md::registers::R_DX.
Referenced by lestes::md::instructions::tm_instr::instance().
03817 { 03818 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03819 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03820 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03821 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03822 ptr<set<tm_data_type_base::id_type> > allowed_types; 03823 ptr<execution_info> einfo; 03824 ptr<set<ulint> > versions; 03825 03826 //input operands 03827 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03828 dt_list_I_1->insert(DT_INT_16S); 03829 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03830 reg_list_I_1->insert(R_DX); 03831 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03832 op_I_1->destroyed_by_get()->push_back(O_2); 03833 in_operands->push_back(op_I_1); 03834 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03835 dt_list_I_2->insert(DT_INT_16S); 03836 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03837 reg_list_I_2->insert(R_AX); 03838 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03839 op_I_2->destroyed_by_get()->push_back(O_1); 03840 in_operands->push_back(op_I_2); 03841 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03842 dt_list_I_3->insert(DT_INT_16S); 03843 ptr<tm_instr_op_mem> op_I_3 = tm_instr_op_mem::create(I_3, dt_list_I_3); 03844 in_operands->push_back(op_I_3); 03845 03846 //output operands 03847 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03848 dt_list_O_1->insert(DT_INT_16S); 03849 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03850 reg_list_O_1->insert(R_AX); 03851 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03852 op_O_1->destroys_set(I_2); 03853 out_operands->push_back(op_O_1); 03854 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03855 dt_list_O_2->insert(DT_INT_16S); 03856 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03857 reg_list_O_2->insert(R_DX); 03858 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03859 op_O_2->destroys_set(I_1); 03860 out_operands->push_back(op_O_2); 03861 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03862 dt_list_O_3->insert(DT_COND); 03863 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03864 reg_list_O_3->insert(R_COND); 03865 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03866 out_operands->push_back(op_O_3); 03867 03868 //execution info 03869 einfo = execution_info::create(720); 03870 03871 //properties 03872 03873 //versions 03874 versions = set<ulint>::create(); 03875 versions->insert(INSTRUCTION_IDIV__1); 03876 versions->insert(INSTRUCTION_IDIV__11); 03877 versions->insert(INSTRUCTION_IDIV__2); 03878 versions->insert(INSTRUCTION_IDIV__3); 03879 versions->insert(INSTRUCTION_IDIV__31); 03880 03881 03882 //return target pseudoinstruction 03883 return tm_instr::create(INSTRUCTION_IDIV__21,in_operands,out_operands,lstring("idiv $TYPE_I_3 $I_3"), props,versions,0,einfo); 03884 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IDIV__3 | ( | ) |
Definition at line 3886 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32S, I_1, I_2, I_3, INSTRUCTION_IDIV__1, INSTRUCTION_IDIV__11, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__21, INSTRUCTION_IDIV__3, INSTRUCTION_IDIV__31, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
03886 { 03887 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03888 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03889 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03890 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03891 ptr<set<tm_data_type_base::id_type> > allowed_types; 03892 ptr<execution_info> einfo; 03893 ptr<set<ulint> > versions; 03894 03895 //input operands 03896 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03897 dt_list_I_1->insert(DT_INT_32S); 03898 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03899 reg_list_I_1->insert(R_EDX); 03900 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03901 op_I_1->destroyed_by_get()->push_back(O_2); 03902 in_operands->push_back(op_I_1); 03903 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03904 dt_list_I_2->insert(DT_INT_32S); 03905 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03906 reg_list_I_2->insert(R_EAX); 03907 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03908 op_I_2->destroyed_by_get()->push_back(O_1); 03909 in_operands->push_back(op_I_2); 03910 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03911 dt_list_I_3->insert(DT_INT_32S); 03912 ptr<set<tm_register_base::id_type> > reg_list_I_3 = set<tm_register_base::id_type>::create(); 03913 reg_list_I_3->insert(R_EAX); 03914 reg_list_I_3->insert(R_EBX); 03915 reg_list_I_3->insert(R_ECX); 03916 reg_list_I_3->insert(R_EDX); 03917 reg_list_I_3->insert(R_EDI); 03918 reg_list_I_3->insert(R_ESI); 03919 reg_list_I_3->erase(R_EDX); 03920 ptr<tm_instr_op_reg> op_I_3 = tm_instr_op_reg::create(I_3, dt_list_I_3, reg_list_I_3); 03921 in_operands->push_back(op_I_3); 03922 03923 //output operands 03924 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03925 dt_list_O_1->insert(DT_INT_32S); 03926 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03927 reg_list_O_1->insert(R_EAX); 03928 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03929 op_O_1->destroys_set(I_2); 03930 out_operands->push_back(op_O_1); 03931 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 03932 dt_list_O_2->insert(DT_INT_32S); 03933 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 03934 reg_list_O_2->insert(R_EDX); 03935 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 03936 op_O_2->destroys_set(I_1); 03937 out_operands->push_back(op_O_2); 03938 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 03939 dt_list_O_3->insert(DT_COND); 03940 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 03941 reg_list_O_3->insert(R_COND); 03942 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 03943 out_operands->push_back(op_O_3); 03944 03945 //execution info 03946 einfo = execution_info::create(700); 03947 03948 //properties 03949 03950 //versions 03951 versions = set<ulint>::create(); 03952 versions->insert(INSTRUCTION_IDIV__1); 03953 versions->insert(INSTRUCTION_IDIV__11); 03954 versions->insert(INSTRUCTION_IDIV__2); 03955 versions->insert(INSTRUCTION_IDIV__21); 03956 versions->insert(INSTRUCTION_IDIV__31); 03957 03958 03959 //return target pseudoinstruction 03960 return tm_instr::create(INSTRUCTION_IDIV__3,in_operands,out_operands,lstring("idiv $I_3"), props,versions,0,einfo); 03961 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IDIV__31 | ( | ) |
Definition at line 3963 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32S, I_1, I_2, I_3, INSTRUCTION_IDIV__1, INSTRUCTION_IDIV__11, INSTRUCTION_IDIV__2, INSTRUCTION_IDIV__21, INSTRUCTION_IDIV__3, INSTRUCTION_IDIV__31, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
03963 { 03964 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03965 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03966 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03967 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03968 ptr<set<tm_data_type_base::id_type> > allowed_types; 03969 ptr<execution_info> einfo; 03970 ptr<set<ulint> > versions; 03971 03972 //input operands 03973 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 03974 dt_list_I_1->insert(DT_INT_32S); 03975 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 03976 reg_list_I_1->insert(R_EDX); 03977 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 03978 op_I_1->destroyed_by_get()->push_back(O_2); 03979 in_operands->push_back(op_I_1); 03980 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 03981 dt_list_I_2->insert(DT_INT_32S); 03982 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 03983 reg_list_I_2->insert(R_EAX); 03984 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 03985 op_I_2->destroyed_by_get()->push_back(O_1); 03986 in_operands->push_back(op_I_2); 03987 ptr<set<tm_data_type_base::id_type> > dt_list_I_3 = set<tm_data_type_base::id_type>::create(); 03988 dt_list_I_3->insert(DT_INT_32S); 03989 ptr<tm_instr_op_mem> op_I_3 = tm_instr_op_mem::create(I_3, dt_list_I_3); 03990 in_operands->push_back(op_I_3); 03991 03992 //output operands 03993 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03994 dt_list_O_1->insert(DT_INT_32S); 03995 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03996 reg_list_O_1->insert(R_EAX); 03997 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03998 op_O_1->destroys_set(I_2); 03999 out_operands->push_back(op_O_1); 04000 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04001 dt_list_O_2->insert(DT_INT_32S); 04002 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04003 reg_list_O_2->insert(R_EDX); 04004 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04005 op_O_2->destroys_set(I_1); 04006 out_operands->push_back(op_O_2); 04007 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 04008 dt_list_O_3->insert(DT_COND); 04009 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 04010 reg_list_O_3->insert(R_COND); 04011 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 04012 out_operands->push_back(op_O_3); 04013 04014 //execution info 04015 einfo = execution_info::create(720); 04016 04017 //properties 04018 04019 //versions 04020 versions = set<ulint>::create(); 04021 versions->insert(INSTRUCTION_IDIV__1); 04022 versions->insert(INSTRUCTION_IDIV__11); 04023 versions->insert(INSTRUCTION_IDIV__2); 04024 versions->insert(INSTRUCTION_IDIV__21); 04025 versions->insert(INSTRUCTION_IDIV__3); 04026 04027 04028 //return target pseudoinstruction 04029 return tm_instr::create(INSTRUCTION_IDIV__31,in_operands,out_operands,lstring("idiv $TYPE_I_3 $I_3"), props,versions,0,einfo); 04030 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IMUL__1 | ( | ) |
Definition at line 1880 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_8S, I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
01880 { 01881 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01882 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01883 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01884 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01885 ptr<set<tm_data_type_base::id_type> > allowed_types; 01886 ptr<execution_info> einfo; 01887 ptr<set<ulint> > versions; 01888 01889 //input operands 01890 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01891 dt_list_I_1->insert(DT_INT_8S); 01892 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01893 reg_list_I_1->insert(R_AL); 01894 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01895 op_I_1->destroyed_by_get()->push_back(O_1); 01896 in_operands->push_back(op_I_1); 01897 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01898 dt_list_I_2->insert(DT_INT_8S); 01899 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 01900 reg_list_I_2->insert(R_AL); 01901 reg_list_I_2->insert(R_AH); 01902 reg_list_I_2->insert(R_BL); 01903 reg_list_I_2->insert(R_BH); 01904 reg_list_I_2->insert(R_CL); 01905 reg_list_I_2->insert(R_CH); 01906 reg_list_I_2->insert(R_DL); 01907 reg_list_I_2->insert(R_DH); 01908 reg_list_I_2->erase(R_AL); 01909 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 01910 in_operands->push_back(op_I_2); 01911 01912 //output operands 01913 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01914 dt_list_O_1->insert(DT_INT_8S); 01915 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01916 reg_list_O_1->insert(R_AL); 01917 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01918 op_O_1->destroys_set(I_1); 01919 out_operands->push_back(op_O_1); 01920 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01921 dt_list_O_2->insert(DT_COND); 01922 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01923 reg_list_O_2->insert(R_COND); 01924 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01925 out_operands->push_back(op_O_2); 01926 01927 //execution info 01928 einfo = execution_info::create(100); 01929 01930 //properties 01931 01932 //versions 01933 versions = set<ulint>::create(); 01934 versions->insert(INSTRUCTION_IMUL__2); 01935 versions->insert(INSTRUCTION_IMUL__21); 01936 versions->insert(INSTRUCTION_IMUL__22); 01937 versions->insert(INSTRUCTION_IMUL__23); 01938 versions->insert(INSTRUCTION_IMUL__24); 01939 01940 01941 //return target pseudoinstruction 01942 return tm_instr::create(INSTRUCTION_IMUL__1,in_operands,out_operands,lstring("imul $I_2"), props,versions,0,einfo); 01943 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IMUL__2 | ( | ) |
Definition at line 1945 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, O_1, O_2, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01945 { 01946 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01947 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01948 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01949 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01950 ptr<set<tm_data_type_base::id_type> > allowed_types; 01951 ptr<execution_info> einfo; 01952 ptr<set<ulint> > versions; 01953 01954 //input operands 01955 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01956 dt_list_I_1->insert(DT_INT_16S); 01957 dt_list_I_1->insert(DT_INT_32S); 01958 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01959 reg_list_I_1->insert(R_AX); 01960 reg_list_I_1->insert(R_BX); 01961 reg_list_I_1->insert(R_CX); 01962 reg_list_I_1->insert(R_DX); 01963 reg_list_I_1->insert(R_DI); 01964 reg_list_I_1->insert(R_SI); 01965 reg_list_I_1->insert(R_EAX); 01966 reg_list_I_1->insert(R_EBX); 01967 reg_list_I_1->insert(R_ECX); 01968 reg_list_I_1->insert(R_EDX); 01969 reg_list_I_1->insert(R_EDI); 01970 reg_list_I_1->insert(R_ESI); 01971 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01972 op_I_1->destroyed_by_get()->push_back(O_1); 01973 in_operands->push_back(op_I_1); 01974 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01975 dt_list_I_2->insert(DT_INT_16S); 01976 dt_list_I_2->insert(DT_INT_32S); 01977 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 01978 reg_list_I_2->insert(R_AX); 01979 reg_list_I_2->insert(R_BX); 01980 reg_list_I_2->insert(R_CX); 01981 reg_list_I_2->insert(R_DX); 01982 reg_list_I_2->insert(R_DI); 01983 reg_list_I_2->insert(R_SI); 01984 reg_list_I_2->insert(R_EAX); 01985 reg_list_I_2->insert(R_EBX); 01986 reg_list_I_2->insert(R_ECX); 01987 reg_list_I_2->insert(R_EDX); 01988 reg_list_I_2->insert(R_EDI); 01989 reg_list_I_2->insert(R_ESI); 01990 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 01991 in_operands->push_back(op_I_2); 01992 01993 //output operands 01994 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01995 dt_list_O_1->insert(DT_INT_16S); 01996 dt_list_O_1->insert(DT_INT_32S); 01997 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01998 reg_list_O_1->insert(R_AX); 01999 reg_list_O_1->insert(R_BX); 02000 reg_list_O_1->insert(R_CX); 02001 reg_list_O_1->insert(R_DX); 02002 reg_list_O_1->insert(R_DI); 02003 reg_list_O_1->insert(R_SI); 02004 reg_list_O_1->insert(R_EAX); 02005 reg_list_O_1->insert(R_EBX); 02006 reg_list_O_1->insert(R_ECX); 02007 reg_list_O_1->insert(R_EDX); 02008 reg_list_O_1->insert(R_EDI); 02009 reg_list_O_1->insert(R_ESI); 02010 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02011 op_O_1->destroys_set(I_1); 02012 out_operands->push_back(op_O_1); 02013 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02014 dt_list_O_2->insert(DT_COND); 02015 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02016 reg_list_O_2->insert(R_COND); 02017 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02018 out_operands->push_back(op_O_2); 02019 02020 //execution info 02021 einfo = execution_info::create(100); 02022 02023 //properties 02024 02025 //versions 02026 versions = set<ulint>::create(); 02027 versions->insert(INSTRUCTION_IMUL__1); 02028 versions->insert(INSTRUCTION_IMUL__21); 02029 versions->insert(INSTRUCTION_IMUL__22); 02030 versions->insert(INSTRUCTION_IMUL__23); 02031 versions->insert(INSTRUCTION_IMUL__24); 02032 02033 02034 //return target pseudoinstruction 02035 return tm_instr::create(INSTRUCTION_IMUL__2,in_operands,out_operands,lstring("imul $O_1, $I_2"), props,versions,0,einfo); 02036 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IMUL__21 | ( | ) |
Definition at line 2038 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, O_1, O_2, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
02038 { 02039 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02040 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02041 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02042 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02043 ptr<set<tm_data_type_base::id_type> > allowed_types; 02044 ptr<execution_info> einfo; 02045 ptr<set<ulint> > versions; 02046 02047 //input operands 02048 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02049 dt_list_I_1->insert(DT_INT_16S); 02050 dt_list_I_1->insert(DT_INT_32S); 02051 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02052 reg_list_I_1->insert(R_AX); 02053 reg_list_I_1->insert(R_BX); 02054 reg_list_I_1->insert(R_CX); 02055 reg_list_I_1->insert(R_DX); 02056 reg_list_I_1->insert(R_DI); 02057 reg_list_I_1->insert(R_SI); 02058 reg_list_I_1->insert(R_EAX); 02059 reg_list_I_1->insert(R_EBX); 02060 reg_list_I_1->insert(R_ECX); 02061 reg_list_I_1->insert(R_EDX); 02062 reg_list_I_1->insert(R_EDI); 02063 reg_list_I_1->insert(R_ESI); 02064 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02065 op_I_1->destroyed_by_get()->push_back(O_1); 02066 in_operands->push_back(op_I_1); 02067 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02068 dt_list_I_2->insert(DT_INT_16S); 02069 dt_list_I_2->insert(DT_INT_32S); 02070 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 02071 in_operands->push_back(op_I_2); 02072 02073 //output operands 02074 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02075 dt_list_O_1->insert(DT_INT_16S); 02076 dt_list_O_1->insert(DT_INT_32S); 02077 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02078 reg_list_O_1->insert(R_AX); 02079 reg_list_O_1->insert(R_BX); 02080 reg_list_O_1->insert(R_CX); 02081 reg_list_O_1->insert(R_DX); 02082 reg_list_O_1->insert(R_DI); 02083 reg_list_O_1->insert(R_SI); 02084 reg_list_O_1->insert(R_EAX); 02085 reg_list_O_1->insert(R_EBX); 02086 reg_list_O_1->insert(R_ECX); 02087 reg_list_O_1->insert(R_EDX); 02088 reg_list_O_1->insert(R_EDI); 02089 reg_list_O_1->insert(R_ESI); 02090 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02091 op_O_1->destroys_set(I_1); 02092 out_operands->push_back(op_O_1); 02093 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02094 dt_list_O_2->insert(DT_COND); 02095 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02096 reg_list_O_2->insert(R_COND); 02097 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02098 out_operands->push_back(op_O_2); 02099 02100 //execution info 02101 einfo = execution_info::create(100); 02102 02103 //properties 02104 02105 //versions 02106 versions = set<ulint>::create(); 02107 versions->insert(INSTRUCTION_IMUL__1); 02108 versions->insert(INSTRUCTION_IMUL__2); 02109 versions->insert(INSTRUCTION_IMUL__22); 02110 versions->insert(INSTRUCTION_IMUL__23); 02111 versions->insert(INSTRUCTION_IMUL__24); 02112 02113 02114 //return target pseudoinstruction 02115 return tm_instr::create(INSTRUCTION_IMUL__21,in_operands,out_operands,lstring("imul $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 02116 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IMUL__22 | ( | ) |
Definition at line 2118 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, O_1, O_2, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
02118 { 02119 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02120 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02121 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02122 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02123 ptr<set<tm_data_type_base::id_type> > allowed_types; 02124 ptr<execution_info> einfo; 02125 ptr<set<ulint> > versions; 02126 02127 //input operands 02128 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02129 dt_list_I_1->insert(DT_INT_16S); 02130 dt_list_I_1->insert(DT_INT_32S); 02131 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 02132 in_operands->push_back(op_I_1); 02133 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02134 dt_list_I_2->insert(DT_INT_16S); 02135 dt_list_I_2->insert(DT_INT_32S); 02136 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02137 reg_list_I_2->insert(R_AX); 02138 reg_list_I_2->insert(R_BX); 02139 reg_list_I_2->insert(R_CX); 02140 reg_list_I_2->insert(R_DX); 02141 reg_list_I_2->insert(R_DI); 02142 reg_list_I_2->insert(R_SI); 02143 reg_list_I_2->insert(R_EAX); 02144 reg_list_I_2->insert(R_EBX); 02145 reg_list_I_2->insert(R_ECX); 02146 reg_list_I_2->insert(R_EDX); 02147 reg_list_I_2->insert(R_EDI); 02148 reg_list_I_2->insert(R_ESI); 02149 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02150 op_I_2->destroyed_by_get()->push_back(O_1); 02151 in_operands->push_back(op_I_2); 02152 02153 //output operands 02154 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02155 dt_list_O_1->insert(DT_INT_16S); 02156 dt_list_O_1->insert(DT_INT_32S); 02157 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02158 reg_list_O_1->insert(R_AX); 02159 reg_list_O_1->insert(R_BX); 02160 reg_list_O_1->insert(R_CX); 02161 reg_list_O_1->insert(R_DX); 02162 reg_list_O_1->insert(R_DI); 02163 reg_list_O_1->insert(R_SI); 02164 reg_list_O_1->insert(R_EAX); 02165 reg_list_O_1->insert(R_EBX); 02166 reg_list_O_1->insert(R_ECX); 02167 reg_list_O_1->insert(R_EDX); 02168 reg_list_O_1->insert(R_EDI); 02169 reg_list_O_1->insert(R_ESI); 02170 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02171 op_O_1->destroys_set(I_2); 02172 out_operands->push_back(op_O_1); 02173 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02174 dt_list_O_2->insert(DT_COND); 02175 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02176 reg_list_O_2->insert(R_COND); 02177 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02178 out_operands->push_back(op_O_2); 02179 02180 //execution info 02181 einfo = execution_info::create(100); 02182 02183 //properties 02184 02185 //versions 02186 versions = set<ulint>::create(); 02187 versions->insert(INSTRUCTION_IMUL__1); 02188 versions->insert(INSTRUCTION_IMUL__2); 02189 versions->insert(INSTRUCTION_IMUL__21); 02190 versions->insert(INSTRUCTION_IMUL__23); 02191 versions->insert(INSTRUCTION_IMUL__24); 02192 02193 02194 //return target pseudoinstruction 02195 return tm_instr::create(INSTRUCTION_IMUL__22,in_operands,out_operands,lstring("imul $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 02196 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IMUL__23 | ( | ) |
Definition at line 2198 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, O_1, O_2, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
02198 { 02199 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02200 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02201 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02202 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02203 ptr<set<tm_data_type_base::id_type> > allowed_types; 02204 ptr<execution_info> einfo; 02205 ptr<set<ulint> > versions; 02206 02207 //input operands 02208 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02209 dt_list_I_1->insert(DT_INT_16S); 02210 dt_list_I_1->insert(DT_INT_32S); 02211 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02212 reg_list_I_1->insert(R_AX); 02213 reg_list_I_1->insert(R_BX); 02214 reg_list_I_1->insert(R_CX); 02215 reg_list_I_1->insert(R_DX); 02216 reg_list_I_1->insert(R_DI); 02217 reg_list_I_1->insert(R_SI); 02218 reg_list_I_1->insert(R_EAX); 02219 reg_list_I_1->insert(R_EBX); 02220 reg_list_I_1->insert(R_ECX); 02221 reg_list_I_1->insert(R_EDX); 02222 reg_list_I_1->insert(R_EDI); 02223 reg_list_I_1->insert(R_ESI); 02224 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02225 op_I_1->destroyed_by_get()->push_back(O_1); 02226 in_operands->push_back(op_I_1); 02227 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02228 dt_list_I_2->insert(DT_INT_16S); 02229 dt_list_I_2->insert(DT_INT_32S); 02230 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 02231 in_operands->push_back(op_I_2); 02232 02233 //output operands 02234 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02235 dt_list_O_1->insert(DT_INT_16S); 02236 dt_list_O_1->insert(DT_INT_32S); 02237 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02238 reg_list_O_1->insert(R_AX); 02239 reg_list_O_1->insert(R_BX); 02240 reg_list_O_1->insert(R_CX); 02241 reg_list_O_1->insert(R_DX); 02242 reg_list_O_1->insert(R_DI); 02243 reg_list_O_1->insert(R_SI); 02244 reg_list_O_1->insert(R_EAX); 02245 reg_list_O_1->insert(R_EBX); 02246 reg_list_O_1->insert(R_ECX); 02247 reg_list_O_1->insert(R_EDX); 02248 reg_list_O_1->insert(R_EDI); 02249 reg_list_O_1->insert(R_ESI); 02250 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02251 op_O_1->destroys_set(I_1); 02252 out_operands->push_back(op_O_1); 02253 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02254 dt_list_O_2->insert(DT_COND); 02255 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02256 reg_list_O_2->insert(R_COND); 02257 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02258 out_operands->push_back(op_O_2); 02259 02260 //execution info 02261 einfo = execution_info::create(120); 02262 02263 //properties 02264 02265 //versions 02266 versions = set<ulint>::create(); 02267 versions->insert(INSTRUCTION_IMUL__1); 02268 versions->insert(INSTRUCTION_IMUL__2); 02269 versions->insert(INSTRUCTION_IMUL__21); 02270 versions->insert(INSTRUCTION_IMUL__22); 02271 versions->insert(INSTRUCTION_IMUL__24); 02272 02273 02274 //return target pseudoinstruction 02275 return tm_instr::create(INSTRUCTION_IMUL__23,in_operands,out_operands,lstring("imul $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 02276 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_IMUL__24 | ( | ) |
Definition at line 2278 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, I_1, I_2, INSTRUCTION_IMUL__1, INSTRUCTION_IMUL__2, INSTRUCTION_IMUL__21, INSTRUCTION_IMUL__22, INSTRUCTION_IMUL__23, INSTRUCTION_IMUL__24, O_1, O_2, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
02278 { 02279 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02280 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02281 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02282 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02283 ptr<set<tm_data_type_base::id_type> > allowed_types; 02284 ptr<execution_info> einfo; 02285 ptr<set<ulint> > versions; 02286 02287 //input operands 02288 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02289 dt_list_I_1->insert(DT_INT_16S); 02290 dt_list_I_1->insert(DT_INT_32S); 02291 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 02292 in_operands->push_back(op_I_1); 02293 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02294 dt_list_I_2->insert(DT_INT_16S); 02295 dt_list_I_2->insert(DT_INT_32S); 02296 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02297 reg_list_I_2->insert(R_AX); 02298 reg_list_I_2->insert(R_BX); 02299 reg_list_I_2->insert(R_CX); 02300 reg_list_I_2->insert(R_DX); 02301 reg_list_I_2->insert(R_DI); 02302 reg_list_I_2->insert(R_SI); 02303 reg_list_I_2->insert(R_EAX); 02304 reg_list_I_2->insert(R_EBX); 02305 reg_list_I_2->insert(R_ECX); 02306 reg_list_I_2->insert(R_EDX); 02307 reg_list_I_2->insert(R_EDI); 02308 reg_list_I_2->insert(R_ESI); 02309 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02310 op_I_2->destroyed_by_get()->push_back(O_1); 02311 in_operands->push_back(op_I_2); 02312 02313 //output operands 02314 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02315 dt_list_O_1->insert(DT_INT_16S); 02316 dt_list_O_1->insert(DT_INT_32S); 02317 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02318 reg_list_O_1->insert(R_AX); 02319 reg_list_O_1->insert(R_BX); 02320 reg_list_O_1->insert(R_CX); 02321 reg_list_O_1->insert(R_DX); 02322 reg_list_O_1->insert(R_DI); 02323 reg_list_O_1->insert(R_SI); 02324 reg_list_O_1->insert(R_EAX); 02325 reg_list_O_1->insert(R_EBX); 02326 reg_list_O_1->insert(R_ECX); 02327 reg_list_O_1->insert(R_EDX); 02328 reg_list_O_1->insert(R_EDI); 02329 reg_list_O_1->insert(R_ESI); 02330 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02331 op_O_1->destroys_set(I_2); 02332 out_operands->push_back(op_O_1); 02333 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02334 dt_list_O_2->insert(DT_COND); 02335 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02336 reg_list_O_2->insert(R_COND); 02337 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02338 out_operands->push_back(op_O_2); 02339 02340 //execution info 02341 einfo = execution_info::create(120); 02342 02343 //properties 02344 02345 //versions 02346 versions = set<ulint>::create(); 02347 versions->insert(INSTRUCTION_IMUL__1); 02348 versions->insert(INSTRUCTION_IMUL__2); 02349 versions->insert(INSTRUCTION_IMUL__21); 02350 versions->insert(INSTRUCTION_IMUL__22); 02351 versions->insert(INSTRUCTION_IMUL__23); 02352 02353 02354 //return target pseudoinstruction 02355 return tm_instr::create(INSTRUCTION_IMUL__24,in_operands,out_operands,lstring("imul $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 02356 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JA__1 | ( | ) |
Definition at line 7962 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JA__1, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
07962 { 07963 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07964 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07965 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07966 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07967 ptr<set<tm_data_type_base::id_type> > allowed_types; 07968 ptr<execution_info> einfo; 07969 ptr<set<ulint> > versions; 07970 07971 //input operands 07972 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07973 dt_list_I_1->insert(DT_COND); 07974 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07975 reg_list_I_1->insert(R_COND); 07976 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07977 in_operands->push_back(op_I_1); 07978 07979 //output operands 07980 07981 //execution info 07982 einfo = execution_info::create(10); 07983 07984 //properties 07985 07986 //versions 07987 07988 07989 //return target pseudoinstruction 07990 return tm_instr::create(INSTRUCTION_JA__1,in_operands,out_operands,lstring("ja NEAR $label_1"), props,versions,IF_JUMP,einfo); 07991 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JB__1 | ( | ) |
Definition at line 8088 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JB__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08088 { 08089 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08090 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08091 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08092 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08093 ptr<set<tm_data_type_base::id_type> > allowed_types; 08094 ptr<execution_info> einfo; 08095 ptr<set<ulint> > versions; 08096 08097 //input operands 08098 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08099 dt_list_I_1->insert(DT_COND); 08100 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08101 reg_list_I_1->insert(R_COND); 08102 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08103 in_operands->push_back(op_I_1); 08104 08105 //output operands 08106 08107 //execution info 08108 einfo = execution_info::create(10); 08109 08110 //properties 08111 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"false")); 08112 08113 //versions 08114 08115 08116 //return target pseudoinstruction 08117 return tm_instr::create(INSTRUCTION_JB__1,in_operands,out_operands,lstring("jb NEAR $label_1"), props,versions,IF_JUMP,einfo); 08118 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JE__1 | ( | ) |
Definition at line 8120 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JE__1, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08120 { 08121 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08122 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08123 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08124 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08125 ptr<set<tm_data_type_base::id_type> > allowed_types; 08126 ptr<execution_info> einfo; 08127 ptr<set<ulint> > versions; 08128 08129 //input operands 08130 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08131 dt_list_I_1->insert(DT_COND); 08132 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08133 reg_list_I_1->insert(R_COND); 08134 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08135 in_operands->push_back(op_I_1); 08136 08137 //output operands 08138 08139 //execution info 08140 einfo = execution_info::create(10); 08141 08142 //properties 08143 08144 //versions 08145 08146 08147 //return target pseudoinstruction 08148 return tm_instr::create(INSTRUCTION_JE__1,in_operands,out_operands,lstring("je NEAR $label_1"), props,versions,IF_JUMP,einfo); 08149 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JG__1 | ( | ) |
Definition at line 8024 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JG__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08024 { 08025 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08026 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08027 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08028 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08029 ptr<set<tm_data_type_base::id_type> > allowed_types; 08030 ptr<execution_info> einfo; 08031 ptr<set<ulint> > versions; 08032 08033 //input operands 08034 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08035 dt_list_I_1->insert(DT_COND); 08036 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08037 reg_list_I_1->insert(R_COND); 08038 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08039 in_operands->push_back(op_I_1); 08040 08041 //output operands 08042 08043 //execution info 08044 einfo = execution_info::create(10); 08045 08046 //properties 08047 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08048 08049 //versions 08050 08051 08052 //return target pseudoinstruction 08053 return tm_instr::create(INSTRUCTION_JG__1,in_operands,out_operands,lstring("jg NEAR $label_1"), props,versions,IF_JUMP,einfo); 08054 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JL__1 | ( | ) |
Definition at line 8056 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JL__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08056 { 08057 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08058 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08059 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08060 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08061 ptr<set<tm_data_type_base::id_type> > allowed_types; 08062 ptr<execution_info> einfo; 08063 ptr<set<ulint> > versions; 08064 08065 //input operands 08066 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08067 dt_list_I_1->insert(DT_COND); 08068 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08069 reg_list_I_1->insert(R_COND); 08070 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08071 in_operands->push_back(op_I_1); 08072 08073 //output operands 08074 08075 //execution info 08076 einfo = execution_info::create(10); 08077 08078 //properties 08079 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08080 08081 //versions 08082 08083 08084 //return target pseudoinstruction 08085 return tm_instr::create(INSTRUCTION_JL__1,in_operands,out_operands,lstring("jl NEAR $label_1"), props,versions,IF_JUMP,einfo); 08086 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JMP__1 | ( | ) |
Definition at line 7937 of file tm_instr.mdg.cc.
References IF_JUMP, and INSTRUCTION_JMP__1.
Referenced by lestes::md::instructions::tm_instr::instance().
07937 { 07938 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07939 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07940 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07941 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07942 ptr<set<tm_data_type_base::id_type> > allowed_types; 07943 ptr<execution_info> einfo; 07944 ptr<set<ulint> > versions; 07945 07946 //input operands 07947 07948 //output operands 07949 07950 //execution info 07951 einfo = execution_info::create(10); 07952 07953 //properties 07954 07955 //versions 07956 07957 07958 //return target pseudoinstruction 07959 return tm_instr::create(INSTRUCTION_JMP__1,in_operands,out_operands,lstring("jmp NEAR $label_1"), props,versions,IF_JUMP,einfo); 07960 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JNA__1 | ( | ) |
Definition at line 8183 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JNA__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08183 { 08184 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08185 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08186 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08187 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08188 ptr<set<tm_data_type_base::id_type> > allowed_types; 08189 ptr<execution_info> einfo; 08190 ptr<set<ulint> > versions; 08191 08192 //input operands 08193 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08194 dt_list_I_1->insert(DT_COND); 08195 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08196 reg_list_I_1->insert(R_COND); 08197 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08198 in_operands->push_back(op_I_1); 08199 08200 //output operands 08201 08202 //execution info 08203 einfo = execution_info::create(10); 08204 08205 //properties 08206 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"false")); 08207 08208 //versions 08209 08210 08211 //return target pseudoinstruction 08212 return tm_instr::create(INSTRUCTION_JNA__1,in_operands,out_operands,lstring("jna NEAR $label_1"), props,versions,IF_JUMP,einfo); 08213 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JNB__1 | ( | ) |
Definition at line 8247 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JNB__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08247 { 08248 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08249 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08250 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08251 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08252 ptr<set<tm_data_type_base::id_type> > allowed_types; 08253 ptr<execution_info> einfo; 08254 ptr<set<ulint> > versions; 08255 08256 //input operands 08257 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08258 dt_list_I_1->insert(DT_COND); 08259 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08260 reg_list_I_1->insert(R_COND); 08261 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08262 in_operands->push_back(op_I_1); 08263 08264 //output operands 08265 08266 //execution info 08267 einfo = execution_info::create(10); 08268 08269 //properties 08270 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"false")); 08271 08272 //versions 08273 08274 08275 //return target pseudoinstruction 08276 return tm_instr::create(INSTRUCTION_JNB__1,in_operands,out_operands,lstring("jnb NEAR $label_1"), props,versions,IF_JUMP,einfo); 08277 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JNE__1 | ( | ) |
Definition at line 8279 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JNE__1, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08279 { 08280 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08281 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08282 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08283 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08284 ptr<set<tm_data_type_base::id_type> > allowed_types; 08285 ptr<execution_info> einfo; 08286 ptr<set<ulint> > versions; 08287 08288 //input operands 08289 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08290 dt_list_I_1->insert(DT_COND); 08291 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08292 reg_list_I_1->insert(R_COND); 08293 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08294 in_operands->push_back(op_I_1); 08295 08296 //output operands 08297 08298 //execution info 08299 einfo = execution_info::create(10); 08300 08301 //properties 08302 08303 //versions 08304 08305 08306 //return target pseudoinstruction 08307 return tm_instr::create(INSTRUCTION_JNE__1,in_operands,out_operands,lstring("jne NEAR $label_1"), props,versions,IF_JUMP,einfo); 08308 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JNG__1 | ( | ) |
Definition at line 8151 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JNG__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08151 { 08152 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08153 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08154 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08155 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08156 ptr<set<tm_data_type_base::id_type> > allowed_types; 08157 ptr<execution_info> einfo; 08158 ptr<set<ulint> > versions; 08159 08160 //input operands 08161 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08162 dt_list_I_1->insert(DT_COND); 08163 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08164 reg_list_I_1->insert(R_COND); 08165 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08166 in_operands->push_back(op_I_1); 08167 08168 //output operands 08169 08170 //execution info 08171 einfo = execution_info::create(10); 08172 08173 //properties 08174 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08175 08176 //versions 08177 08178 08179 //return target pseudoinstruction 08180 return tm_instr::create(INSTRUCTION_JNG__1,in_operands,out_operands,lstring("jng NEAR $label_1"), props,versions,IF_JUMP,einfo); 08181 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JNL__1 | ( | ) |
Definition at line 8215 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JNL__1, PROPERTY_TEST_SIGNED, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
08215 { 08216 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08217 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08218 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08219 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08220 ptr<set<tm_data_type_base::id_type> > allowed_types; 08221 ptr<execution_info> einfo; 08222 ptr<set<ulint> > versions; 08223 08224 //input operands 08225 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08226 dt_list_I_1->insert(DT_COND); 08227 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08228 reg_list_I_1->insert(R_COND); 08229 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08230 in_operands->push_back(op_I_1); 08231 08232 //output operands 08233 08234 //execution info 08235 einfo = execution_info::create(10); 08236 08237 //properties 08238 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08239 08240 //versions 08241 08242 08243 //return target pseudoinstruction 08244 return tm_instr::create(INSTRUCTION_JNL__1,in_operands,out_operands,lstring("jnl NEAR $label_1"), props,versions,IF_JUMP,einfo); 08245 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_JZ__1 | ( | ) |
Definition at line 7993 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, IF_JUMP, INSTRUCTION_JZ__1, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
07993 { 07994 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07995 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07996 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07997 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07998 ptr<set<tm_data_type_base::id_type> > allowed_types; 07999 ptr<execution_info> einfo; 08000 ptr<set<ulint> > versions; 08001 08002 //input operands 08003 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08004 dt_list_I_1->insert(DT_COND); 08005 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08006 reg_list_I_1->insert(R_COND); 08007 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08008 in_operands->push_back(op_I_1); 08009 08010 //output operands 08011 08012 //execution info 08013 einfo = execution_info::create(10); 08014 08015 //properties 08016 08017 //versions 08018 08019 08020 //return target pseudoinstruction 08021 return tm_instr::create(INSTRUCTION_JZ__1,in_operands,out_operands,lstring("jz NEAR $label_1"), props,versions,IF_JUMP,einfo); 08022 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_LAHF__1 | ( | ) |
Definition at line 927 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, INSTRUCTION_LAHF__1, O_1, lestes::md::registers::R_AH, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
00927 { 00928 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00929 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00930 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00931 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00932 ptr<set<tm_data_type_base::id_type> > allowed_types; 00933 ptr<execution_info> einfo; 00934 ptr<set<ulint> > versions; 00935 00936 //input operands 00937 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00938 dt_list_I_1->insert(DT_COND); 00939 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00940 reg_list_I_1->insert(R_COND); 00941 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00942 in_operands->push_back(op_I_1); 00943 00944 //output operands 00945 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00946 dt_list_O_1->insert(DT_COND); 00947 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00948 reg_list_O_1->insert(R_AH); 00949 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00950 out_operands->push_back(op_O_1); 00951 00952 //execution info 00953 einfo = execution_info::create(10); 00954 00955 //properties 00956 00957 //versions 00958 00959 00960 //return target pseudoinstruction 00961 return tm_instr::create(INSTRUCTION_LAHF__1,in_operands,out_operands,lstring("lahf"), props,versions,0,einfo); 00962 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_LEA__1 | ( | ) |
Definition at line 7418 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_LEA__1, INSTRUCTION_LEAVE__1, O_1, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
07418 { 07419 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07420 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07421 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07422 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07423 ptr<set<tm_data_type_base::id_type> > allowed_types; 07424 ptr<execution_info> einfo; 07425 ptr<set<ulint> > versions; 07426 07427 //input operands 07428 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07429 dt_list_I_1->insert(DT_INT_8P); 07430 dt_list_I_1->insert(DT_INT_8U); 07431 dt_list_I_1->insert(DT_INT_8S); 07432 dt_list_I_1->insert(DT_INT_16U); 07433 dt_list_I_1->insert(DT_INT_16S); 07434 dt_list_I_1->insert(DT_INT_32U); 07435 dt_list_I_1->insert(DT_INT_32S); 07436 dt_list_I_1->insert(DT_COND); 07437 dt_list_I_1->insert(DT_BOOL); 07438 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07439 in_operands->push_back(op_I_1); 07440 07441 //output operands 07442 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07443 dt_list_O_1->insert(DT_INT_32U); 07444 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07445 reg_list_O_1->insert(R_EAX); 07446 reg_list_O_1->insert(R_EBX); 07447 reg_list_O_1->insert(R_ECX); 07448 reg_list_O_1->insert(R_EDX); 07449 reg_list_O_1->insert(R_EDI); 07450 reg_list_O_1->insert(R_ESI); 07451 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07452 out_operands->push_back(op_O_1); 07453 07454 //execution info 07455 einfo = execution_info::create(10); 07456 07457 //properties 07458 07459 //versions 07460 versions = set<ulint>::create(); 07461 versions->insert(INSTRUCTION_LEAVE__1); 07462 07463 07464 //return target pseudoinstruction 07465 return tm_instr::create(INSTRUCTION_LEA__1,in_operands,out_operands,lstring("lea $O_1, $I_1"), props,versions,0,einfo); 07466 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_LEAVE__1 | ( | ) |
Definition at line 9341 of file tm_instr.mdg.cc.
References IF_SYS, and INSTRUCTION_LEAVE__1.
Referenced by lestes::md::instructions::tm_instr::instance().
09341 { 09342 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09343 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09344 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09345 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09346 ptr<set<tm_data_type_base::id_type> > allowed_types; 09347 ptr<execution_info> einfo; 09348 ptr<set<ulint> > versions; 09349 09350 //input operands 09351 09352 //output operands 09353 09354 //execution info 09355 einfo = execution_info::create(10); 09356 09357 //properties 09358 09359 //versions 09360 09361 09362 //return target pseudoinstruction 09363 return tm_instr::create(INSTRUCTION_LEAVE__1,in_operands,out_operands,lstring("leave"), props,versions,IF_SYS,einfo); 09364 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__1 | ( | ) |
Definition at line 22 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_COPY, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00022 { 00023 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00024 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00025 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00026 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00027 ptr<set<tm_data_type_base::id_type> > allowed_types; 00028 ptr<execution_info> einfo; 00029 ptr<set<ulint> > versions; 00030 00031 //input operands 00032 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00033 dt_list_I_1->insert(DT_INT_8P); 00034 dt_list_I_1->insert(DT_INT_8U); 00035 dt_list_I_1->insert(DT_INT_8S); 00036 dt_list_I_1->insert(DT_INT_16U); 00037 dt_list_I_1->insert(DT_INT_16S); 00038 dt_list_I_1->insert(DT_INT_32U); 00039 dt_list_I_1->insert(DT_INT_32S); 00040 dt_list_I_1->insert(DT_COND); 00041 dt_list_I_1->insert(DT_BOOL); 00042 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00043 reg_list_I_1->insert(R_EAX); 00044 reg_list_I_1->insert(R_EBX); 00045 reg_list_I_1->insert(R_ECX); 00046 reg_list_I_1->insert(R_EDX); 00047 reg_list_I_1->insert(R_EDI); 00048 reg_list_I_1->insert(R_ESI); 00049 reg_list_I_1->insert(R_AX); 00050 reg_list_I_1->insert(R_BX); 00051 reg_list_I_1->insert(R_CX); 00052 reg_list_I_1->insert(R_DX); 00053 reg_list_I_1->insert(R_DI); 00054 reg_list_I_1->insert(R_SI); 00055 reg_list_I_1->insert(R_AL); 00056 reg_list_I_1->insert(R_AH); 00057 reg_list_I_1->insert(R_BL); 00058 reg_list_I_1->insert(R_BH); 00059 reg_list_I_1->insert(R_CL); 00060 reg_list_I_1->insert(R_CH); 00061 reg_list_I_1->insert(R_DL); 00062 reg_list_I_1->insert(R_DH); 00063 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00064 in_operands->push_back(op_I_1); 00065 00066 //output operands 00067 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00068 dt_list_O_1->insert(DT_INT_8P); 00069 dt_list_O_1->insert(DT_INT_8U); 00070 dt_list_O_1->insert(DT_INT_8S); 00071 dt_list_O_1->insert(DT_INT_16U); 00072 dt_list_O_1->insert(DT_INT_16S); 00073 dt_list_O_1->insert(DT_INT_32U); 00074 dt_list_O_1->insert(DT_INT_32S); 00075 dt_list_O_1->insert(DT_COND); 00076 dt_list_O_1->insert(DT_BOOL); 00077 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00078 reg_list_O_1->insert(R_EAX); 00079 reg_list_O_1->insert(R_EBX); 00080 reg_list_O_1->insert(R_ECX); 00081 reg_list_O_1->insert(R_EDX); 00082 reg_list_O_1->insert(R_EDI); 00083 reg_list_O_1->insert(R_ESI); 00084 reg_list_O_1->insert(R_AX); 00085 reg_list_O_1->insert(R_BX); 00086 reg_list_O_1->insert(R_CX); 00087 reg_list_O_1->insert(R_DX); 00088 reg_list_O_1->insert(R_DI); 00089 reg_list_O_1->insert(R_SI); 00090 reg_list_O_1->insert(R_AL); 00091 reg_list_O_1->insert(R_AH); 00092 reg_list_O_1->insert(R_BL); 00093 reg_list_O_1->insert(R_BH); 00094 reg_list_O_1->insert(R_CL); 00095 reg_list_O_1->insert(R_CH); 00096 reg_list_O_1->insert(R_DL); 00097 reg_list_O_1->insert(R_DH); 00098 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00099 out_operands->push_back(op_O_1); 00100 00101 //execution info 00102 einfo = execution_info::create(10); 00103 00104 //properties 00105 00106 //versions 00107 versions = set<ulint>::create(); 00108 versions->insert(INSTRUCTION_MOV__2); 00109 versions->insert(INSTRUCTION_MOV__3); 00110 versions->insert(INSTRUCTION_MOV__4); 00111 versions->insert(INSTRUCTION_MOV__5); 00112 versions->insert(INSTRUCTION_MOV__7); 00113 versions->insert(INSTRUCTION_MOV__71); 00114 versions->insert(INSTRUCTION_MOV__8); 00115 versions->insert(INSTRUCTION_MOVZX__1); 00116 versions->insert(INSTRUCTION_MOVZX__2); 00117 versions->insert(INSTRUCTION_MOVZX__3); 00118 versions->insert(INSTRUCTION_MOVZX__4); 00119 versions->insert(INSTRUCTION_MOVZX__5); 00120 versions->insert(INSTRUCTION_MOVZX__6); 00121 versions->insert(INSTRUCTION_MOVSX__1); 00122 versions->insert(INSTRUCTION_MOVSX__11); 00123 versions->insert(INSTRUCTION_MOVSX__2); 00124 versions->insert(INSTRUCTION_MOVSX__21); 00125 00126 00127 //return target pseudoinstruction 00128 return tm_instr::create(INSTRUCTION_MOV__1,in_operands,out_operands,lstring("mov $O_1, $I_1"), props,versions,IF_COPY,einfo); 00129 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__2 | ( | ) |
Definition at line 131 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_STORE, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00131 { 00132 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00133 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00134 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00135 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00136 ptr<set<tm_data_type_base::id_type> > allowed_types; 00137 ptr<execution_info> einfo; 00138 ptr<set<ulint> > versions; 00139 00140 //input operands 00141 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00142 dt_list_I_1->insert(DT_INT_8P); 00143 dt_list_I_1->insert(DT_INT_8U); 00144 dt_list_I_1->insert(DT_INT_8S); 00145 dt_list_I_1->insert(DT_INT_16U); 00146 dt_list_I_1->insert(DT_INT_16S); 00147 dt_list_I_1->insert(DT_INT_32U); 00148 dt_list_I_1->insert(DT_INT_32S); 00149 dt_list_I_1->insert(DT_COND); 00150 dt_list_I_1->insert(DT_BOOL); 00151 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00152 reg_list_I_1->insert(R_EAX); 00153 reg_list_I_1->insert(R_EBX); 00154 reg_list_I_1->insert(R_ECX); 00155 reg_list_I_1->insert(R_EDX); 00156 reg_list_I_1->insert(R_EDI); 00157 reg_list_I_1->insert(R_ESI); 00158 reg_list_I_1->insert(R_AX); 00159 reg_list_I_1->insert(R_BX); 00160 reg_list_I_1->insert(R_CX); 00161 reg_list_I_1->insert(R_DX); 00162 reg_list_I_1->insert(R_DI); 00163 reg_list_I_1->insert(R_SI); 00164 reg_list_I_1->insert(R_AL); 00165 reg_list_I_1->insert(R_AH); 00166 reg_list_I_1->insert(R_BL); 00167 reg_list_I_1->insert(R_BH); 00168 reg_list_I_1->insert(R_CL); 00169 reg_list_I_1->insert(R_CH); 00170 reg_list_I_1->insert(R_DL); 00171 reg_list_I_1->insert(R_DH); 00172 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00173 in_operands->push_back(op_I_1); 00174 00175 //output operands 00176 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00177 dt_list_O_1->insert(DT_INT_8P); 00178 dt_list_O_1->insert(DT_INT_8U); 00179 dt_list_O_1->insert(DT_INT_8S); 00180 dt_list_O_1->insert(DT_INT_16U); 00181 dt_list_O_1->insert(DT_INT_16S); 00182 dt_list_O_1->insert(DT_INT_32U); 00183 dt_list_O_1->insert(DT_INT_32S); 00184 dt_list_O_1->insert(DT_COND); 00185 dt_list_O_1->insert(DT_BOOL); 00186 ptr<tm_instr_op_mem> op_O_1 = tm_instr_op_mem::create(O_1, dt_list_O_1); 00187 out_operands->push_back(op_O_1); 00188 00189 //execution info 00190 einfo = execution_info::create(30); 00191 00192 //properties 00193 00194 //versions 00195 versions = set<ulint>::create(); 00196 versions->insert(INSTRUCTION_MOV__1); 00197 versions->insert(INSTRUCTION_MOV__3); 00198 versions->insert(INSTRUCTION_MOV__4); 00199 versions->insert(INSTRUCTION_MOV__5); 00200 versions->insert(INSTRUCTION_MOV__7); 00201 versions->insert(INSTRUCTION_MOV__71); 00202 versions->insert(INSTRUCTION_MOV__8); 00203 versions->insert(INSTRUCTION_MOVZX__1); 00204 versions->insert(INSTRUCTION_MOVZX__2); 00205 versions->insert(INSTRUCTION_MOVZX__3); 00206 versions->insert(INSTRUCTION_MOVZX__4); 00207 versions->insert(INSTRUCTION_MOVZX__5); 00208 versions->insert(INSTRUCTION_MOVZX__6); 00209 versions->insert(INSTRUCTION_MOVSX__1); 00210 versions->insert(INSTRUCTION_MOVSX__11); 00211 versions->insert(INSTRUCTION_MOVSX__2); 00212 versions->insert(INSTRUCTION_MOVSX__21); 00213 00214 00215 //return target pseudoinstruction 00216 return tm_instr::create(INSTRUCTION_MOV__2,in_operands,out_operands,lstring("mov $TYPE_O_1 $O_1, $I_1"), props,versions,IF_STORE,einfo); 00217 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__3 | ( | ) |
Definition at line 219 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_LOAD, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00219 { 00220 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00221 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00222 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00223 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00224 ptr<set<tm_data_type_base::id_type> > allowed_types; 00225 ptr<execution_info> einfo; 00226 ptr<set<ulint> > versions; 00227 00228 //input operands 00229 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00230 dt_list_I_1->insert(DT_INT_8P); 00231 dt_list_I_1->insert(DT_INT_8U); 00232 dt_list_I_1->insert(DT_INT_8S); 00233 dt_list_I_1->insert(DT_INT_16U); 00234 dt_list_I_1->insert(DT_INT_16S); 00235 dt_list_I_1->insert(DT_INT_32U); 00236 dt_list_I_1->insert(DT_INT_32S); 00237 dt_list_I_1->insert(DT_COND); 00238 dt_list_I_1->insert(DT_BOOL); 00239 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 00240 in_operands->push_back(op_I_1); 00241 00242 //output operands 00243 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00244 dt_list_O_1->insert(DT_INT_8P); 00245 dt_list_O_1->insert(DT_INT_8U); 00246 dt_list_O_1->insert(DT_INT_8S); 00247 dt_list_O_1->insert(DT_INT_16U); 00248 dt_list_O_1->insert(DT_INT_16S); 00249 dt_list_O_1->insert(DT_INT_32U); 00250 dt_list_O_1->insert(DT_INT_32S); 00251 dt_list_O_1->insert(DT_COND); 00252 dt_list_O_1->insert(DT_BOOL); 00253 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00254 reg_list_O_1->insert(R_EAX); 00255 reg_list_O_1->insert(R_EBX); 00256 reg_list_O_1->insert(R_ECX); 00257 reg_list_O_1->insert(R_EDX); 00258 reg_list_O_1->insert(R_EDI); 00259 reg_list_O_1->insert(R_ESI); 00260 reg_list_O_1->insert(R_AX); 00261 reg_list_O_1->insert(R_BX); 00262 reg_list_O_1->insert(R_CX); 00263 reg_list_O_1->insert(R_DX); 00264 reg_list_O_1->insert(R_DI); 00265 reg_list_O_1->insert(R_SI); 00266 reg_list_O_1->insert(R_AL); 00267 reg_list_O_1->insert(R_AH); 00268 reg_list_O_1->insert(R_BL); 00269 reg_list_O_1->insert(R_BH); 00270 reg_list_O_1->insert(R_CL); 00271 reg_list_O_1->insert(R_CH); 00272 reg_list_O_1->insert(R_DL); 00273 reg_list_O_1->insert(R_DH); 00274 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00275 out_operands->push_back(op_O_1); 00276 00277 //execution info 00278 einfo = execution_info::create(30); 00279 00280 //properties 00281 00282 //versions 00283 versions = set<ulint>::create(); 00284 versions->insert(INSTRUCTION_MOV__1); 00285 versions->insert(INSTRUCTION_MOV__2); 00286 versions->insert(INSTRUCTION_MOV__4); 00287 versions->insert(INSTRUCTION_MOV__5); 00288 versions->insert(INSTRUCTION_MOV__7); 00289 versions->insert(INSTRUCTION_MOV__71); 00290 versions->insert(INSTRUCTION_MOV__8); 00291 versions->insert(INSTRUCTION_MOVZX__1); 00292 versions->insert(INSTRUCTION_MOVZX__2); 00293 versions->insert(INSTRUCTION_MOVZX__3); 00294 versions->insert(INSTRUCTION_MOVZX__4); 00295 versions->insert(INSTRUCTION_MOVZX__5); 00296 versions->insert(INSTRUCTION_MOVZX__6); 00297 versions->insert(INSTRUCTION_MOVSX__1); 00298 versions->insert(INSTRUCTION_MOVSX__11); 00299 versions->insert(INSTRUCTION_MOVSX__2); 00300 versions->insert(INSTRUCTION_MOVSX__21); 00301 00302 00303 //return target pseudoinstruction 00304 return tm_instr::create(INSTRUCTION_MOV__3,in_operands,out_operands,lstring("mov $O_1, $TYPE_I_1 $I_1"), props,versions,IF_LOAD,einfo); 00305 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__4 | ( | ) |
Definition at line 307 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_LOAD, IF_STORE, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, and O_1.
Referenced by lestes::md::instructions::tm_instr::instance().
00307 { 00308 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00309 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00310 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00311 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00312 ptr<set<tm_data_type_base::id_type> > allowed_types; 00313 ptr<execution_info> einfo; 00314 ptr<set<ulint> > versions; 00315 00316 //input operands 00317 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00318 dt_list_I_1->insert(DT_INT_8P); 00319 dt_list_I_1->insert(DT_INT_8U); 00320 dt_list_I_1->insert(DT_INT_8S); 00321 dt_list_I_1->insert(DT_INT_16U); 00322 dt_list_I_1->insert(DT_INT_16S); 00323 dt_list_I_1->insert(DT_INT_32U); 00324 dt_list_I_1->insert(DT_INT_32S); 00325 dt_list_I_1->insert(DT_BOOL); 00326 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 00327 in_operands->push_back(op_I_1); 00328 00329 //output operands 00330 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00331 dt_list_O_1->insert(DT_INT_8P); 00332 dt_list_O_1->insert(DT_INT_8U); 00333 dt_list_O_1->insert(DT_INT_8S); 00334 dt_list_O_1->insert(DT_INT_16U); 00335 dt_list_O_1->insert(DT_INT_16S); 00336 dt_list_O_1->insert(DT_INT_32U); 00337 dt_list_O_1->insert(DT_INT_32S); 00338 dt_list_O_1->insert(DT_BOOL); 00339 ptr<tm_instr_op_mem> op_O_1 = tm_instr_op_mem::create(O_1, dt_list_O_1); 00340 out_operands->push_back(op_O_1); 00341 00342 //execution info 00343 einfo = execution_info::create(30); 00344 00345 //properties 00346 00347 //versions 00348 versions = set<ulint>::create(); 00349 versions->insert(INSTRUCTION_MOV__1); 00350 versions->insert(INSTRUCTION_MOV__2); 00351 versions->insert(INSTRUCTION_MOV__3); 00352 versions->insert(INSTRUCTION_MOV__5); 00353 versions->insert(INSTRUCTION_MOV__7); 00354 versions->insert(INSTRUCTION_MOV__71); 00355 versions->insert(INSTRUCTION_MOV__8); 00356 versions->insert(INSTRUCTION_MOVZX__1); 00357 versions->insert(INSTRUCTION_MOVZX__2); 00358 versions->insert(INSTRUCTION_MOVZX__3); 00359 versions->insert(INSTRUCTION_MOVZX__4); 00360 versions->insert(INSTRUCTION_MOVZX__5); 00361 versions->insert(INSTRUCTION_MOVZX__6); 00362 versions->insert(INSTRUCTION_MOVSX__1); 00363 versions->insert(INSTRUCTION_MOVSX__11); 00364 versions->insert(INSTRUCTION_MOVSX__2); 00365 versions->insert(INSTRUCTION_MOVSX__21); 00366 00367 00368 //return target pseudoinstruction 00369 return tm_instr::create(INSTRUCTION_MOV__4,in_operands,out_operands,lstring("mov $TYPE_O_1 $O_1, $TYPE_I_1 $I_1"), props,versions,IF_LOAD | IF_STORE,einfo); 00370 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__5 | ( | ) |
Definition at line 372 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_LOAD, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00372 { 00373 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00374 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00375 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00376 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00377 ptr<set<tm_data_type_base::id_type> > allowed_types; 00378 ptr<execution_info> einfo; 00379 ptr<set<ulint> > versions; 00380 00381 //input operands 00382 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00383 dt_list_I_1->insert(DT_INT_8P); 00384 dt_list_I_1->insert(DT_INT_8U); 00385 dt_list_I_1->insert(DT_INT_8S); 00386 dt_list_I_1->insert(DT_INT_16U); 00387 dt_list_I_1->insert(DT_INT_16S); 00388 dt_list_I_1->insert(DT_INT_32U); 00389 dt_list_I_1->insert(DT_INT_32S); 00390 dt_list_I_1->insert(DT_BOOL); 00391 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 00392 in_operands->push_back(op_I_1); 00393 00394 //output operands 00395 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00396 dt_list_O_1->insert(DT_INT_8P); 00397 dt_list_O_1->insert(DT_INT_8U); 00398 dt_list_O_1->insert(DT_INT_8S); 00399 dt_list_O_1->insert(DT_INT_16U); 00400 dt_list_O_1->insert(DT_INT_16S); 00401 dt_list_O_1->insert(DT_INT_32U); 00402 dt_list_O_1->insert(DT_INT_32S); 00403 dt_list_O_1->insert(DT_BOOL); 00404 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00405 reg_list_O_1->insert(R_EAX); 00406 reg_list_O_1->insert(R_EBX); 00407 reg_list_O_1->insert(R_ECX); 00408 reg_list_O_1->insert(R_EDX); 00409 reg_list_O_1->insert(R_EDI); 00410 reg_list_O_1->insert(R_ESI); 00411 reg_list_O_1->insert(R_AX); 00412 reg_list_O_1->insert(R_BX); 00413 reg_list_O_1->insert(R_CX); 00414 reg_list_O_1->insert(R_DX); 00415 reg_list_O_1->insert(R_DI); 00416 reg_list_O_1->insert(R_SI); 00417 reg_list_O_1->insert(R_AL); 00418 reg_list_O_1->insert(R_AH); 00419 reg_list_O_1->insert(R_BL); 00420 reg_list_O_1->insert(R_BH); 00421 reg_list_O_1->insert(R_CL); 00422 reg_list_O_1->insert(R_CH); 00423 reg_list_O_1->insert(R_DL); 00424 reg_list_O_1->insert(R_DH); 00425 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00426 out_operands->push_back(op_O_1); 00427 00428 //execution info 00429 einfo = execution_info::create(10); 00430 00431 //properties 00432 00433 //versions 00434 versions = set<ulint>::create(); 00435 versions->insert(INSTRUCTION_MOV__1); 00436 versions->insert(INSTRUCTION_MOV__2); 00437 versions->insert(INSTRUCTION_MOV__3); 00438 versions->insert(INSTRUCTION_MOV__4); 00439 versions->insert(INSTRUCTION_MOV__7); 00440 versions->insert(INSTRUCTION_MOV__71); 00441 versions->insert(INSTRUCTION_MOV__8); 00442 versions->insert(INSTRUCTION_MOVZX__1); 00443 versions->insert(INSTRUCTION_MOVZX__2); 00444 versions->insert(INSTRUCTION_MOVZX__3); 00445 versions->insert(INSTRUCTION_MOVZX__4); 00446 versions->insert(INSTRUCTION_MOVZX__5); 00447 versions->insert(INSTRUCTION_MOVZX__6); 00448 versions->insert(INSTRUCTION_MOVSX__1); 00449 versions->insert(INSTRUCTION_MOVSX__11); 00450 versions->insert(INSTRUCTION_MOVSX__2); 00451 versions->insert(INSTRUCTION_MOVSX__21); 00452 00453 00454 //return target pseudoinstruction 00455 return tm_instr::create(INSTRUCTION_MOV__5,in_operands,out_operands,lstring("mov $O_1, $TYPE_I_1 $I_1"), props,versions,IF_LOAD,einfo); 00456 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__7 | ( | ) |
Definition at line 458 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, IF_STORE, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00458 { 00459 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00460 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00461 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00462 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00463 ptr<set<tm_data_type_base::id_type> > allowed_types; 00464 ptr<execution_info> einfo; 00465 ptr<set<ulint> > versions; 00466 00467 //input operands 00468 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00469 dt_list_I_1->insert(DT_INT_8P); 00470 dt_list_I_1->insert(DT_INT_8U); 00471 dt_list_I_1->insert(DT_INT_8S); 00472 dt_list_I_1->insert(DT_INT_16U); 00473 dt_list_I_1->insert(DT_INT_16S); 00474 dt_list_I_1->insert(DT_INT_32U); 00475 dt_list_I_1->insert(DT_INT_32S); 00476 dt_list_I_1->insert(DT_COND); 00477 dt_list_I_1->insert(DT_BOOL); 00478 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00479 reg_list_I_1->insert(R_EAX); 00480 reg_list_I_1->insert(R_EBX); 00481 reg_list_I_1->insert(R_ECX); 00482 reg_list_I_1->insert(R_EDX); 00483 reg_list_I_1->insert(R_EDI); 00484 reg_list_I_1->insert(R_ESI); 00485 reg_list_I_1->insert(R_AX); 00486 reg_list_I_1->insert(R_BX); 00487 reg_list_I_1->insert(R_CX); 00488 reg_list_I_1->insert(R_DX); 00489 reg_list_I_1->insert(R_DI); 00490 reg_list_I_1->insert(R_SI); 00491 reg_list_I_1->insert(R_AL); 00492 reg_list_I_1->insert(R_AH); 00493 reg_list_I_1->insert(R_BL); 00494 reg_list_I_1->insert(R_BH); 00495 reg_list_I_1->insert(R_CL); 00496 reg_list_I_1->insert(R_CH); 00497 reg_list_I_1->insert(R_DL); 00498 reg_list_I_1->insert(R_DH); 00499 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00500 in_operands->push_back(op_I_1); 00501 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 00502 dt_list_I_2->insert(DT_INT_32U); 00503 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 00504 reg_list_I_2->insert(R_EAX); 00505 reg_list_I_2->insert(R_EBX); 00506 reg_list_I_2->insert(R_ECX); 00507 reg_list_I_2->insert(R_EDX); 00508 reg_list_I_2->insert(R_EDI); 00509 reg_list_I_2->insert(R_ESI); 00510 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 00511 in_operands->push_back(op_I_2); 00512 00513 //output operands 00514 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00515 dt_list_O_1->insert(DT_INT_8P); 00516 dt_list_O_1->insert(DT_INT_8U); 00517 dt_list_O_1->insert(DT_INT_8S); 00518 dt_list_O_1->insert(DT_INT_16U); 00519 dt_list_O_1->insert(DT_INT_16S); 00520 dt_list_O_1->insert(DT_INT_32U); 00521 dt_list_O_1->insert(DT_INT_32S); 00522 dt_list_O_1->insert(DT_COND); 00523 dt_list_O_1->insert(DT_BOOL); 00524 ptr<tm_instr_op_mem> op_O_1 = tm_instr_op_mem::create(O_1, dt_list_O_1); 00525 out_operands->push_back(op_O_1); 00526 00527 //execution info 00528 einfo = execution_info::create(30); 00529 00530 //properties 00531 00532 //versions 00533 versions = set<ulint>::create(); 00534 versions->insert(INSTRUCTION_MOV__1); 00535 versions->insert(INSTRUCTION_MOV__2); 00536 versions->insert(INSTRUCTION_MOV__3); 00537 versions->insert(INSTRUCTION_MOV__4); 00538 versions->insert(INSTRUCTION_MOV__5); 00539 versions->insert(INSTRUCTION_MOV__71); 00540 versions->insert(INSTRUCTION_MOV__8); 00541 versions->insert(INSTRUCTION_MOVZX__1); 00542 versions->insert(INSTRUCTION_MOVZX__2); 00543 versions->insert(INSTRUCTION_MOVZX__3); 00544 versions->insert(INSTRUCTION_MOVZX__4); 00545 versions->insert(INSTRUCTION_MOVZX__5); 00546 versions->insert(INSTRUCTION_MOVZX__6); 00547 versions->insert(INSTRUCTION_MOVSX__1); 00548 versions->insert(INSTRUCTION_MOVSX__11); 00549 versions->insert(INSTRUCTION_MOVSX__2); 00550 versions->insert(INSTRUCTION_MOVSX__21); 00551 00552 00553 //return target pseudoinstruction 00554 return tm_instr::create(INSTRUCTION_MOV__7,in_operands,out_operands,lstring("mov $TYPE_O_1 $O_1, $I_1"), props,versions,IF_STORE,einfo); 00555 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__71 | ( | ) |
Definition at line 557 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, IF_STORE, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
00557 { 00558 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00559 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00560 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00561 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00562 ptr<set<tm_data_type_base::id_type> > allowed_types; 00563 ptr<execution_info> einfo; 00564 ptr<set<ulint> > versions; 00565 00566 //input operands 00567 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00568 dt_list_I_1->insert(DT_INT_8P); 00569 dt_list_I_1->insert(DT_INT_8U); 00570 dt_list_I_1->insert(DT_INT_8S); 00571 dt_list_I_1->insert(DT_INT_16U); 00572 dt_list_I_1->insert(DT_INT_16S); 00573 dt_list_I_1->insert(DT_INT_32U); 00574 dt_list_I_1->insert(DT_INT_32S); 00575 dt_list_I_1->insert(DT_COND); 00576 dt_list_I_1->insert(DT_BOOL); 00577 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 00578 in_operands->push_back(op_I_1); 00579 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 00580 dt_list_I_2->insert(DT_INT_32U); 00581 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 00582 reg_list_I_2->insert(R_EAX); 00583 reg_list_I_2->insert(R_EBX); 00584 reg_list_I_2->insert(R_ECX); 00585 reg_list_I_2->insert(R_EDX); 00586 reg_list_I_2->insert(R_EDI); 00587 reg_list_I_2->insert(R_ESI); 00588 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 00589 in_operands->push_back(op_I_2); 00590 00591 //output operands 00592 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00593 dt_list_O_1->insert(DT_INT_8P); 00594 dt_list_O_1->insert(DT_INT_8U); 00595 dt_list_O_1->insert(DT_INT_8S); 00596 dt_list_O_1->insert(DT_INT_16U); 00597 dt_list_O_1->insert(DT_INT_16S); 00598 dt_list_O_1->insert(DT_INT_32U); 00599 dt_list_O_1->insert(DT_INT_32S); 00600 dt_list_O_1->insert(DT_COND); 00601 dt_list_O_1->insert(DT_BOOL); 00602 ptr<tm_instr_op_mem> op_O_1 = tm_instr_op_mem::create(O_1, dt_list_O_1); 00603 out_operands->push_back(op_O_1); 00604 00605 //execution info 00606 einfo = execution_info::create(30); 00607 00608 //properties 00609 00610 //versions 00611 versions = set<ulint>::create(); 00612 versions->insert(INSTRUCTION_MOV__1); 00613 versions->insert(INSTRUCTION_MOV__2); 00614 versions->insert(INSTRUCTION_MOV__3); 00615 versions->insert(INSTRUCTION_MOV__4); 00616 versions->insert(INSTRUCTION_MOV__5); 00617 versions->insert(INSTRUCTION_MOV__7); 00618 versions->insert(INSTRUCTION_MOV__8); 00619 versions->insert(INSTRUCTION_MOVZX__1); 00620 versions->insert(INSTRUCTION_MOVZX__2); 00621 versions->insert(INSTRUCTION_MOVZX__3); 00622 versions->insert(INSTRUCTION_MOVZX__4); 00623 versions->insert(INSTRUCTION_MOVZX__5); 00624 versions->insert(INSTRUCTION_MOVZX__6); 00625 versions->insert(INSTRUCTION_MOVSX__1); 00626 versions->insert(INSTRUCTION_MOVSX__11); 00627 versions->insert(INSTRUCTION_MOVSX__2); 00628 versions->insert(INSTRUCTION_MOVSX__21); 00629 00630 00631 //return target pseudoinstruction 00632 return tm_instr::create(INSTRUCTION_MOV__71,in_operands,out_operands,lstring("mov $TYPE_O_1 $O_1, $TYPE_I_1 $I_1"), props,versions,IF_STORE,einfo); 00633 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOV__8 | ( | ) |
Definition at line 635 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, IF_LOAD, INSTRUCTION_MOV__1, INSTRUCTION_MOV__2, INSTRUCTION_MOV__3, INSTRUCTION_MOV__4, INSTRUCTION_MOV__5, INSTRUCTION_MOV__7, INSTRUCTION_MOV__71, INSTRUCTION_MOV__8, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
00635 { 00636 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00637 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00638 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00639 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00640 ptr<set<tm_data_type_base::id_type> > allowed_types; 00641 ptr<execution_info> einfo; 00642 ptr<set<ulint> > versions; 00643 00644 //input operands 00645 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00646 dt_list_I_1->insert(DT_INT_8P); 00647 dt_list_I_1->insert(DT_INT_8U); 00648 dt_list_I_1->insert(DT_INT_8S); 00649 dt_list_I_1->insert(DT_INT_16U); 00650 dt_list_I_1->insert(DT_INT_16S); 00651 dt_list_I_1->insert(DT_INT_32U); 00652 dt_list_I_1->insert(DT_INT_32S); 00653 dt_list_I_1->insert(DT_COND); 00654 dt_list_I_1->insert(DT_BOOL); 00655 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 00656 in_operands->push_back(op_I_1); 00657 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 00658 dt_list_I_2->insert(DT_INT_32U); 00659 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 00660 reg_list_I_2->insert(R_EAX); 00661 reg_list_I_2->insert(R_EBX); 00662 reg_list_I_2->insert(R_ECX); 00663 reg_list_I_2->insert(R_EDX); 00664 reg_list_I_2->insert(R_EDI); 00665 reg_list_I_2->insert(R_ESI); 00666 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 00667 in_operands->push_back(op_I_2); 00668 00669 //output operands 00670 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00671 dt_list_O_1->insert(DT_INT_8P); 00672 dt_list_O_1->insert(DT_INT_8U); 00673 dt_list_O_1->insert(DT_INT_8S); 00674 dt_list_O_1->insert(DT_INT_16U); 00675 dt_list_O_1->insert(DT_INT_16S); 00676 dt_list_O_1->insert(DT_INT_32U); 00677 dt_list_O_1->insert(DT_INT_32S); 00678 dt_list_O_1->insert(DT_COND); 00679 dt_list_O_1->insert(DT_BOOL); 00680 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00681 reg_list_O_1->insert(R_EAX); 00682 reg_list_O_1->insert(R_EBX); 00683 reg_list_O_1->insert(R_ECX); 00684 reg_list_O_1->insert(R_EDX); 00685 reg_list_O_1->insert(R_EDI); 00686 reg_list_O_1->insert(R_ESI); 00687 reg_list_O_1->insert(R_AX); 00688 reg_list_O_1->insert(R_BX); 00689 reg_list_O_1->insert(R_CX); 00690 reg_list_O_1->insert(R_DX); 00691 reg_list_O_1->insert(R_DI); 00692 reg_list_O_1->insert(R_SI); 00693 reg_list_O_1->insert(R_AL); 00694 reg_list_O_1->insert(R_AH); 00695 reg_list_O_1->insert(R_BL); 00696 reg_list_O_1->insert(R_BH); 00697 reg_list_O_1->insert(R_CL); 00698 reg_list_O_1->insert(R_CH); 00699 reg_list_O_1->insert(R_DL); 00700 reg_list_O_1->insert(R_DH); 00701 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00702 out_operands->push_back(op_O_1); 00703 00704 //execution info 00705 einfo = execution_info::create(30); 00706 00707 //properties 00708 00709 //versions 00710 versions = set<ulint>::create(); 00711 versions->insert(INSTRUCTION_MOV__1); 00712 versions->insert(INSTRUCTION_MOV__2); 00713 versions->insert(INSTRUCTION_MOV__3); 00714 versions->insert(INSTRUCTION_MOV__4); 00715 versions->insert(INSTRUCTION_MOV__5); 00716 versions->insert(INSTRUCTION_MOV__7); 00717 versions->insert(INSTRUCTION_MOV__71); 00718 versions->insert(INSTRUCTION_MOVZX__1); 00719 versions->insert(INSTRUCTION_MOVZX__2); 00720 versions->insert(INSTRUCTION_MOVZX__3); 00721 versions->insert(INSTRUCTION_MOVZX__4); 00722 versions->insert(INSTRUCTION_MOVZX__5); 00723 versions->insert(INSTRUCTION_MOVZX__6); 00724 versions->insert(INSTRUCTION_MOVSX__1); 00725 versions->insert(INSTRUCTION_MOVSX__11); 00726 versions->insert(INSTRUCTION_MOVSX__2); 00727 versions->insert(INSTRUCTION_MOVSX__21); 00728 00729 00730 //return target pseudoinstruction 00731 return tm_instr::create(INSTRUCTION_MOV__8,in_operands,out_operands,lstring("mov $O_1, $TYPE_I_1 $I_1"), props,versions,IF_LOAD,einfo); 00732 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVSX__1 | ( | ) |
Definition at line 7212 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07212 { 07213 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07214 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07215 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07216 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07217 ptr<set<tm_data_type_base::id_type> > allowed_types; 07218 ptr<execution_info> einfo; 07219 ptr<set<ulint> > versions; 07220 07221 //input operands 07222 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07223 dt_list_I_1->insert(DT_INT_8P); 07224 dt_list_I_1->insert(DT_INT_8U); 07225 dt_list_I_1->insert(DT_INT_8S); 07226 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07227 reg_list_I_1->insert(R_AL); 07228 reg_list_I_1->insert(R_AH); 07229 reg_list_I_1->insert(R_BL); 07230 reg_list_I_1->insert(R_BH); 07231 reg_list_I_1->insert(R_CL); 07232 reg_list_I_1->insert(R_CH); 07233 reg_list_I_1->insert(R_DL); 07234 reg_list_I_1->insert(R_DH); 07235 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07236 in_operands->push_back(op_I_1); 07237 07238 //output operands 07239 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07240 dt_list_O_1->insert(DT_INT_32S); 07241 dt_list_O_1->insert(DT_INT_16S); 07242 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07243 reg_list_O_1->insert(R_EAX); 07244 reg_list_O_1->insert(R_EBX); 07245 reg_list_O_1->insert(R_ECX); 07246 reg_list_O_1->insert(R_EDX); 07247 reg_list_O_1->insert(R_EDI); 07248 reg_list_O_1->insert(R_ESI); 07249 reg_list_O_1->insert(R_AX); 07250 reg_list_O_1->insert(R_BX); 07251 reg_list_O_1->insert(R_CX); 07252 reg_list_O_1->insert(R_DX); 07253 reg_list_O_1->insert(R_DI); 07254 reg_list_O_1->insert(R_SI); 07255 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07256 out_operands->push_back(op_O_1); 07257 07258 //execution info 07259 einfo = execution_info::create(10); 07260 07261 //properties 07262 07263 //versions 07264 versions = set<ulint>::create(); 07265 versions->insert(INSTRUCTION_MOVSX__11); 07266 versions->insert(INSTRUCTION_MOVSX__2); 07267 versions->insert(INSTRUCTION_MOVSX__21); 07268 07269 07270 //return target pseudoinstruction 07271 return tm_instr::create(INSTRUCTION_MOVSX__1,in_operands,out_operands,lstring("movsx $O_1, $I_1"), props,versions,0,einfo); 07272 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVSX__11 | ( | ) |
Definition at line 7274 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, O_1, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07274 { 07275 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07276 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07277 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07278 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07279 ptr<set<tm_data_type_base::id_type> > allowed_types; 07280 ptr<execution_info> einfo; 07281 ptr<set<ulint> > versions; 07282 07283 //input operands 07284 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07285 dt_list_I_1->insert(DT_INT_8P); 07286 dt_list_I_1->insert(DT_INT_8U); 07287 dt_list_I_1->insert(DT_INT_8S); 07288 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07289 in_operands->push_back(op_I_1); 07290 07291 //output operands 07292 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07293 dt_list_O_1->insert(DT_INT_32S); 07294 dt_list_O_1->insert(DT_INT_16S); 07295 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07296 reg_list_O_1->insert(R_EAX); 07297 reg_list_O_1->insert(R_EBX); 07298 reg_list_O_1->insert(R_ECX); 07299 reg_list_O_1->insert(R_EDX); 07300 reg_list_O_1->insert(R_EDI); 07301 reg_list_O_1->insert(R_ESI); 07302 reg_list_O_1->insert(R_AX); 07303 reg_list_O_1->insert(R_BX); 07304 reg_list_O_1->insert(R_CX); 07305 reg_list_O_1->insert(R_DX); 07306 reg_list_O_1->insert(R_DI); 07307 reg_list_O_1->insert(R_SI); 07308 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07309 out_operands->push_back(op_O_1); 07310 07311 //execution info 07312 einfo = execution_info::create(30); 07313 07314 //properties 07315 07316 //versions 07317 versions = set<ulint>::create(); 07318 versions->insert(INSTRUCTION_MOVSX__1); 07319 versions->insert(INSTRUCTION_MOVSX__2); 07320 versions->insert(INSTRUCTION_MOVSX__21); 07321 07322 07323 //return target pseudoinstruction 07324 return tm_instr::create(INSTRUCTION_MOVSX__11,in_operands,out_operands,lstring("movsx $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 07325 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVSX__2 | ( | ) |
Definition at line 7327 of file tm_instr.mdg.cc.
References I_1, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, O_1, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07327 { 07328 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07329 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07330 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07331 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07332 ptr<set<tm_data_type_base::id_type> > allowed_types; 07333 ptr<execution_info> einfo; 07334 ptr<set<ulint> > versions; 07335 07336 //input operands 07337 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07338 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07339 reg_list_I_1->insert(R_AX); 07340 reg_list_I_1->insert(R_BX); 07341 reg_list_I_1->insert(R_CX); 07342 reg_list_I_1->insert(R_DX); 07343 reg_list_I_1->insert(R_DI); 07344 reg_list_I_1->insert(R_SI); 07345 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07346 in_operands->push_back(op_I_1); 07347 07348 //output operands 07349 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07350 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07351 reg_list_O_1->insert(R_EAX); 07352 reg_list_O_1->insert(R_EBX); 07353 reg_list_O_1->insert(R_ECX); 07354 reg_list_O_1->insert(R_EDX); 07355 reg_list_O_1->insert(R_EDI); 07356 reg_list_O_1->insert(R_ESI); 07357 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07358 out_operands->push_back(op_O_1); 07359 07360 //execution info 07361 einfo = execution_info::create(10); 07362 07363 //properties 07364 07365 //versions 07366 versions = set<ulint>::create(); 07367 versions->insert(INSTRUCTION_MOVSX__1); 07368 versions->insert(INSTRUCTION_MOVSX__11); 07369 versions->insert(INSTRUCTION_MOVSX__21); 07370 07371 07372 //return target pseudoinstruction 07373 return tm_instr::create(INSTRUCTION_MOVSX__2,in_operands,out_operands,lstring("movsx $O_1, $I_1"), props,versions,0,einfo); 07374 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVSX__21 | ( | ) |
Definition at line 7376 of file tm_instr.mdg.cc.
References I_1, INSTRUCTION_MOVSX__1, INSTRUCTION_MOVSX__11, INSTRUCTION_MOVSX__2, INSTRUCTION_MOVSX__21, O_1, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
07376 { 07377 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07378 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07379 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07380 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07381 ptr<set<tm_data_type_base::id_type> > allowed_types; 07382 ptr<execution_info> einfo; 07383 ptr<set<ulint> > versions; 07384 07385 //input operands 07386 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07387 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07388 in_operands->push_back(op_I_1); 07389 07390 //output operands 07391 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07392 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07393 reg_list_O_1->insert(R_EAX); 07394 reg_list_O_1->insert(R_EBX); 07395 reg_list_O_1->insert(R_ECX); 07396 reg_list_O_1->insert(R_EDX); 07397 reg_list_O_1->insert(R_EDI); 07398 reg_list_O_1->insert(R_ESI); 07399 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07400 out_operands->push_back(op_O_1); 07401 07402 //execution info 07403 einfo = execution_info::create(30); 07404 07405 //properties 07406 07407 //versions 07408 versions = set<ulint>::create(); 07409 versions->insert(INSTRUCTION_MOVSX__1); 07410 versions->insert(INSTRUCTION_MOVSX__11); 07411 versions->insert(INSTRUCTION_MOVSX__2); 07412 07413 07414 //return target pseudoinstruction 07415 return tm_instr::create(INSTRUCTION_MOVSX__21,in_operands,out_operands,lstring("movsx $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 07416 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVZX__1 | ( | ) |
Definition at line 6853 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06853 { 06854 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06855 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06856 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06857 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06858 ptr<set<tm_data_type_base::id_type> > allowed_types; 06859 ptr<execution_info> einfo; 06860 ptr<set<ulint> > versions; 06861 06862 //input operands 06863 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06864 dt_list_I_1->insert(DT_INT_8P); 06865 dt_list_I_1->insert(DT_INT_8U); 06866 dt_list_I_1->insert(DT_INT_8S); 06867 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06868 reg_list_I_1->insert(R_AL); 06869 reg_list_I_1->insert(R_AH); 06870 reg_list_I_1->insert(R_BL); 06871 reg_list_I_1->insert(R_BH); 06872 reg_list_I_1->insert(R_CL); 06873 reg_list_I_1->insert(R_CH); 06874 reg_list_I_1->insert(R_DL); 06875 reg_list_I_1->insert(R_DH); 06876 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06877 in_operands->push_back(op_I_1); 06878 06879 //output operands 06880 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06881 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06882 reg_list_O_1->insert(R_EAX); 06883 reg_list_O_1->insert(R_EBX); 06884 reg_list_O_1->insert(R_ECX); 06885 reg_list_O_1->insert(R_EDX); 06886 reg_list_O_1->insert(R_EDI); 06887 reg_list_O_1->insert(R_ESI); 06888 reg_list_O_1->insert(R_AX); 06889 reg_list_O_1->insert(R_BX); 06890 reg_list_O_1->insert(R_CX); 06891 reg_list_O_1->insert(R_DX); 06892 reg_list_O_1->insert(R_DI); 06893 reg_list_O_1->insert(R_SI); 06894 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06895 out_operands->push_back(op_O_1); 06896 06897 //execution info 06898 einfo = execution_info::create(10); 06899 06900 //properties 06901 06902 //versions 06903 versions = set<ulint>::create(); 06904 versions->insert(INSTRUCTION_MOVZX__2); 06905 versions->insert(INSTRUCTION_MOVZX__3); 06906 versions->insert(INSTRUCTION_MOVZX__4); 06907 versions->insert(INSTRUCTION_MOVZX__5); 06908 versions->insert(INSTRUCTION_MOVZX__6); 06909 06910 06911 //return target pseudoinstruction 06912 return tm_instr::create(INSTRUCTION_MOVZX__1,in_operands,out_operands,lstring("movzx $O_1, $I_1"), props,versions,0,einfo); 06913 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVZX__2 | ( | ) |
Definition at line 6915 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, I_1, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06915 { 06916 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06917 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06918 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06919 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06920 ptr<set<tm_data_type_base::id_type> > allowed_types; 06921 ptr<execution_info> einfo; 06922 ptr<set<ulint> > versions; 06923 06924 //input operands 06925 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06926 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06927 reg_list_I_1->insert(R_AX); 06928 reg_list_I_1->insert(R_BX); 06929 reg_list_I_1->insert(R_CX); 06930 reg_list_I_1->insert(R_DX); 06931 reg_list_I_1->insert(R_DI); 06932 reg_list_I_1->insert(R_SI); 06933 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06934 in_operands->push_back(op_I_1); 06935 06936 //output operands 06937 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06938 dt_list_O_1->insert(DT_INT_32U); 06939 dt_list_O_1->insert(DT_INT_32S); 06940 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06941 reg_list_O_1->insert(R_EAX); 06942 reg_list_O_1->insert(R_EBX); 06943 reg_list_O_1->insert(R_ECX); 06944 reg_list_O_1->insert(R_EDX); 06945 reg_list_O_1->insert(R_EDI); 06946 reg_list_O_1->insert(R_ESI); 06947 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06948 out_operands->push_back(op_O_1); 06949 06950 //execution info 06951 einfo = execution_info::create(10); 06952 06953 //properties 06954 06955 //versions 06956 versions = set<ulint>::create(); 06957 versions->insert(INSTRUCTION_MOVZX__1); 06958 versions->insert(INSTRUCTION_MOVZX__3); 06959 versions->insert(INSTRUCTION_MOVZX__4); 06960 versions->insert(INSTRUCTION_MOVZX__5); 06961 versions->insert(INSTRUCTION_MOVZX__6); 06962 06963 06964 //return target pseudoinstruction 06965 return tm_instr::create(INSTRUCTION_MOVZX__2,in_operands,out_operands,lstring("movzx $O_1, $I_1"), props,versions,0,einfo); 06966 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVZX__3 | ( | ) |
Definition at line 6968 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06968 { 06969 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06970 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06971 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06972 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06973 ptr<set<tm_data_type_base::id_type> > allowed_types; 06974 ptr<execution_info> einfo; 06975 ptr<set<ulint> > versions; 06976 06977 //input operands 06978 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06979 dt_list_I_1->insert(DT_BOOL); 06980 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06981 reg_list_I_1->insert(R_AL); 06982 reg_list_I_1->insert(R_AH); 06983 reg_list_I_1->insert(R_BL); 06984 reg_list_I_1->insert(R_BH); 06985 reg_list_I_1->insert(R_CL); 06986 reg_list_I_1->insert(R_CH); 06987 reg_list_I_1->insert(R_DL); 06988 reg_list_I_1->insert(R_DH); 06989 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06990 in_operands->push_back(op_I_1); 06991 06992 //output operands 06993 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06994 dt_list_O_1->insert(DT_INT_8P); 06995 dt_list_O_1->insert(DT_INT_8U); 06996 dt_list_O_1->insert(DT_INT_8S); 06997 dt_list_O_1->insert(DT_INT_16U); 06998 dt_list_O_1->insert(DT_INT_16S); 06999 dt_list_O_1->insert(DT_INT_32U); 07000 dt_list_O_1->insert(DT_INT_32S); 07001 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07002 reg_list_O_1->insert(R_EAX); 07003 reg_list_O_1->insert(R_EBX); 07004 reg_list_O_1->insert(R_ECX); 07005 reg_list_O_1->insert(R_EDX); 07006 reg_list_O_1->insert(R_EDI); 07007 reg_list_O_1->insert(R_ESI); 07008 reg_list_O_1->insert(R_AX); 07009 reg_list_O_1->insert(R_BX); 07010 reg_list_O_1->insert(R_CX); 07011 reg_list_O_1->insert(R_DX); 07012 reg_list_O_1->insert(R_DI); 07013 reg_list_O_1->insert(R_SI); 07014 reg_list_O_1->insert(R_AL); 07015 reg_list_O_1->insert(R_AH); 07016 reg_list_O_1->insert(R_BL); 07017 reg_list_O_1->insert(R_BH); 07018 reg_list_O_1->insert(R_CL); 07019 reg_list_O_1->insert(R_CH); 07020 reg_list_O_1->insert(R_DL); 07021 reg_list_O_1->insert(R_DH); 07022 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07023 out_operands->push_back(op_O_1); 07024 07025 //execution info 07026 einfo = execution_info::create(10); 07027 07028 //properties 07029 07030 //versions 07031 versions = set<ulint>::create(); 07032 versions->insert(INSTRUCTION_MOVZX__1); 07033 versions->insert(INSTRUCTION_MOVZX__2); 07034 versions->insert(INSTRUCTION_MOVZX__4); 07035 versions->insert(INSTRUCTION_MOVZX__5); 07036 versions->insert(INSTRUCTION_MOVZX__6); 07037 07038 07039 //return target pseudoinstruction 07040 return tm_instr::create(INSTRUCTION_MOVZX__3,in_operands,out_operands,lstring("movzx $O_1, $I_1"), props,versions,0,einfo); 07041 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVZX__4 | ( | ) |
Definition at line 7043 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07043 { 07044 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07045 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07046 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07047 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07048 ptr<set<tm_data_type_base::id_type> > allowed_types; 07049 ptr<execution_info> einfo; 07050 ptr<set<ulint> > versions; 07051 07052 //input operands 07053 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07054 dt_list_I_1->insert(DT_BOOL); 07055 dt_list_I_1->insert(DT_INT_8P); 07056 dt_list_I_1->insert(DT_INT_8U); 07057 dt_list_I_1->insert(DT_INT_8S); 07058 dt_list_I_1->insert(DT_INT_16U); 07059 dt_list_I_1->insert(DT_INT_16S); 07060 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 07061 reg_list_I_1->insert(R_AL); 07062 reg_list_I_1->insert(R_AH); 07063 reg_list_I_1->insert(R_BL); 07064 reg_list_I_1->insert(R_BH); 07065 reg_list_I_1->insert(R_CL); 07066 reg_list_I_1->insert(R_CH); 07067 reg_list_I_1->insert(R_DL); 07068 reg_list_I_1->insert(R_DH); 07069 reg_list_I_1->insert(R_AX); 07070 reg_list_I_1->insert(R_BX); 07071 reg_list_I_1->insert(R_CX); 07072 reg_list_I_1->insert(R_DX); 07073 reg_list_I_1->insert(R_DI); 07074 reg_list_I_1->insert(R_SI); 07075 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 07076 in_operands->push_back(op_I_1); 07077 07078 //output operands 07079 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07080 dt_list_O_1->insert(DT_INT_32U); 07081 dt_list_O_1->insert(DT_INT_32S); 07082 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07083 reg_list_O_1->insert(R_EAX); 07084 reg_list_O_1->insert(R_EBX); 07085 reg_list_O_1->insert(R_ECX); 07086 reg_list_O_1->insert(R_EDX); 07087 reg_list_O_1->insert(R_EDI); 07088 reg_list_O_1->insert(R_ESI); 07089 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07090 out_operands->push_back(op_O_1); 07091 07092 //execution info 07093 einfo = execution_info::create(10); 07094 07095 //properties 07096 07097 //versions 07098 versions = set<ulint>::create(); 07099 versions->insert(INSTRUCTION_MOVZX__1); 07100 versions->insert(INSTRUCTION_MOVZX__2); 07101 versions->insert(INSTRUCTION_MOVZX__3); 07102 versions->insert(INSTRUCTION_MOVZX__5); 07103 versions->insert(INSTRUCTION_MOVZX__6); 07104 07105 07106 //return target pseudoinstruction 07107 return tm_instr::create(INSTRUCTION_MOVZX__4,in_operands,out_operands,lstring("movzx $O_1, $I_1"), props,versions,0,einfo); 07108 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVZX__5 | ( | ) |
Definition at line 7110 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
07110 { 07111 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07112 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07113 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07114 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07115 ptr<set<tm_data_type_base::id_type> > allowed_types; 07116 ptr<execution_info> einfo; 07117 ptr<set<ulint> > versions; 07118 07119 //input operands 07120 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07121 dt_list_I_1->insert(DT_BOOL); 07122 dt_list_I_1->insert(DT_INT_8P); 07123 dt_list_I_1->insert(DT_INT_8U); 07124 dt_list_I_1->insert(DT_INT_8S); 07125 dt_list_I_1->insert(DT_INT_16U); 07126 dt_list_I_1->insert(DT_INT_16S); 07127 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07128 in_operands->push_back(op_I_1); 07129 07130 //output operands 07131 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07132 dt_list_O_1->insert(DT_INT_32U); 07133 dt_list_O_1->insert(DT_INT_32S); 07134 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07135 reg_list_O_1->insert(R_EAX); 07136 reg_list_O_1->insert(R_EBX); 07137 reg_list_O_1->insert(R_ECX); 07138 reg_list_O_1->insert(R_EDX); 07139 reg_list_O_1->insert(R_EDI); 07140 reg_list_O_1->insert(R_ESI); 07141 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07142 out_operands->push_back(op_O_1); 07143 07144 //execution info 07145 einfo = execution_info::create(30); 07146 07147 //properties 07148 07149 //versions 07150 versions = set<ulint>::create(); 07151 versions->insert(INSTRUCTION_MOVZX__1); 07152 versions->insert(INSTRUCTION_MOVZX__2); 07153 versions->insert(INSTRUCTION_MOVZX__3); 07154 versions->insert(INSTRUCTION_MOVZX__4); 07155 versions->insert(INSTRUCTION_MOVZX__6); 07156 07157 07158 //return target pseudoinstruction 07159 return tm_instr::create(INSTRUCTION_MOVZX__5,in_operands,out_operands,lstring("movzx $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 07160 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MOVZX__6 | ( | ) |
Definition at line 7162 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_MOVZX__1, INSTRUCTION_MOVZX__2, INSTRUCTION_MOVZX__3, INSTRUCTION_MOVZX__4, INSTRUCTION_MOVZX__5, INSTRUCTION_MOVZX__6, O_1, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
07162 { 07163 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 07164 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 07165 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 07166 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 07167 ptr<set<tm_data_type_base::id_type> > allowed_types; 07168 ptr<execution_info> einfo; 07169 ptr<set<ulint> > versions; 07170 07171 //input operands 07172 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 07173 dt_list_I_1->insert(DT_BOOL); 07174 dt_list_I_1->insert(DT_INT_8P); 07175 dt_list_I_1->insert(DT_INT_8U); 07176 dt_list_I_1->insert(DT_INT_8S); 07177 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 07178 in_operands->push_back(op_I_1); 07179 07180 //output operands 07181 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 07182 dt_list_O_1->insert(DT_INT_16U); 07183 dt_list_O_1->insert(DT_INT_16S); 07184 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 07185 reg_list_O_1->insert(R_AX); 07186 reg_list_O_1->insert(R_BX); 07187 reg_list_O_1->insert(R_CX); 07188 reg_list_O_1->insert(R_DX); 07189 reg_list_O_1->insert(R_DI); 07190 reg_list_O_1->insert(R_SI); 07191 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 07192 out_operands->push_back(op_O_1); 07193 07194 //execution info 07195 einfo = execution_info::create(30); 07196 07197 //properties 07198 07199 //versions 07200 versions = set<ulint>::create(); 07201 versions->insert(INSTRUCTION_MOVZX__1); 07202 versions->insert(INSTRUCTION_MOVZX__2); 07203 versions->insert(INSTRUCTION_MOVZX__3); 07204 versions->insert(INSTRUCTION_MOVZX__4); 07205 versions->insert(INSTRUCTION_MOVZX__5); 07206 07207 07208 //return target pseudoinstruction 07209 return tm_instr::create(INSTRUCTION_MOVZX__6,in_operands,out_operands,lstring("movzx $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 07210 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__1 | ( | ) |
Definition at line 2358 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
02358 { 02359 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02360 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02361 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02362 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02363 ptr<set<tm_data_type_base::id_type> > allowed_types; 02364 ptr<execution_info> einfo; 02365 ptr<set<ulint> > versions; 02366 02367 //input operands 02368 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02369 dt_list_I_1->insert(DT_INT_8U); 02370 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02371 reg_list_I_1->insert(R_AL); 02372 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02373 op_I_1->destroyed_by_get()->push_back(O_1); 02374 in_operands->push_back(op_I_1); 02375 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02376 dt_list_I_2->insert(DT_INT_8U); 02377 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02378 reg_list_I_2->insert(R_AL); 02379 reg_list_I_2->insert(R_AH); 02380 reg_list_I_2->insert(R_BL); 02381 reg_list_I_2->insert(R_BH); 02382 reg_list_I_2->insert(R_CL); 02383 reg_list_I_2->insert(R_CH); 02384 reg_list_I_2->insert(R_DL); 02385 reg_list_I_2->insert(R_DH); 02386 reg_list_I_2->erase(R_AL); 02387 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02388 in_operands->push_back(op_I_2); 02389 02390 //output operands 02391 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02392 dt_list_O_1->insert(DT_INT_8U); 02393 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02394 reg_list_O_1->insert(R_AL); 02395 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02396 op_O_1->destroys_set(I_1); 02397 out_operands->push_back(op_O_1); 02398 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02399 dt_list_O_2->insert(DT_COND); 02400 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02401 reg_list_O_2->insert(R_COND); 02402 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02403 out_operands->push_back(op_O_2); 02404 02405 //execution info 02406 einfo = execution_info::create(100); 02407 02408 //properties 02409 02410 //versions 02411 versions = set<ulint>::create(); 02412 versions->insert(INSTRUCTION_MUL__11); 02413 versions->insert(INSTRUCTION_MUL__12); 02414 versions->insert(INSTRUCTION_MUL__2); 02415 versions->insert(INSTRUCTION_MUL__21); 02416 versions->insert(INSTRUCTION_MUL__22); 02417 versions->insert(INSTRUCTION_MUL__3); 02418 versions->insert(INSTRUCTION_MUL__31); 02419 versions->insert(INSTRUCTION_MUL__32); 02420 02421 02422 //return target pseudoinstruction 02423 return tm_instr::create(INSTRUCTION_MUL__1,in_operands,out_operands,lstring("mul $I_2"), props,versions,0,einfo); 02424 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__11 | ( | ) |
Definition at line 2426 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, lestes::md::registers::R_AL, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
02426 { 02427 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02428 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02429 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02430 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02431 ptr<set<tm_data_type_base::id_type> > allowed_types; 02432 ptr<execution_info> einfo; 02433 ptr<set<ulint> > versions; 02434 02435 //input operands 02436 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02437 dt_list_I_1->insert(DT_INT_8U); 02438 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02439 reg_list_I_1->insert(R_AL); 02440 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02441 op_I_1->destroyed_by_get()->push_back(O_1); 02442 in_operands->push_back(op_I_1); 02443 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02444 dt_list_I_2->insert(DT_INT_8U); 02445 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 02446 in_operands->push_back(op_I_2); 02447 02448 //output operands 02449 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02450 dt_list_O_1->insert(DT_INT_8U); 02451 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02452 reg_list_O_1->insert(R_AL); 02453 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02454 op_O_1->destroys_set(I_1); 02455 out_operands->push_back(op_O_1); 02456 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02457 dt_list_O_2->insert(DT_COND); 02458 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02459 reg_list_O_2->insert(R_COND); 02460 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02461 out_operands->push_back(op_O_2); 02462 02463 //execution info 02464 einfo = execution_info::create(120); 02465 02466 //properties 02467 02468 //versions 02469 versions = set<ulint>::create(); 02470 versions->insert(INSTRUCTION_MUL__1); 02471 versions->insert(INSTRUCTION_MUL__12); 02472 versions->insert(INSTRUCTION_MUL__2); 02473 versions->insert(INSTRUCTION_MUL__21); 02474 versions->insert(INSTRUCTION_MUL__22); 02475 versions->insert(INSTRUCTION_MUL__3); 02476 versions->insert(INSTRUCTION_MUL__31); 02477 versions->insert(INSTRUCTION_MUL__32); 02478 02479 02480 //return target pseudoinstruction 02481 return tm_instr::create(INSTRUCTION_MUL__11,in_operands,out_operands,lstring("mul $TYPE_I_2 $I_2"), props,versions,0,einfo); 02482 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__12 | ( | ) |
Definition at line 2484 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, lestes::md::registers::R_AL, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
02484 { 02485 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02486 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02487 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02488 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02489 ptr<set<tm_data_type_base::id_type> > allowed_types; 02490 ptr<execution_info> einfo; 02491 ptr<set<ulint> > versions; 02492 02493 //input operands 02494 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02495 dt_list_I_1->insert(DT_INT_8U); 02496 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 02497 in_operands->push_back(op_I_1); 02498 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02499 dt_list_I_2->insert(DT_INT_8U); 02500 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02501 reg_list_I_2->insert(R_AL); 02502 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02503 op_I_2->destroyed_by_get()->push_back(O_1); 02504 in_operands->push_back(op_I_2); 02505 02506 //output operands 02507 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02508 dt_list_O_1->insert(DT_INT_8U); 02509 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02510 reg_list_O_1->insert(R_AL); 02511 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02512 op_O_1->destroys_set(I_2); 02513 out_operands->push_back(op_O_1); 02514 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02515 dt_list_O_2->insert(DT_COND); 02516 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02517 reg_list_O_2->insert(R_COND); 02518 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02519 out_operands->push_back(op_O_2); 02520 02521 //execution info 02522 einfo = execution_info::create(120); 02523 02524 //properties 02525 02526 //versions 02527 versions = set<ulint>::create(); 02528 versions->insert(INSTRUCTION_MUL__1); 02529 versions->insert(INSTRUCTION_MUL__11); 02530 versions->insert(INSTRUCTION_MUL__2); 02531 versions->insert(INSTRUCTION_MUL__21); 02532 versions->insert(INSTRUCTION_MUL__22); 02533 versions->insert(INSTRUCTION_MUL__3); 02534 versions->insert(INSTRUCTION_MUL__31); 02535 versions->insert(INSTRUCTION_MUL__32); 02536 02537 02538 //return target pseudoinstruction 02539 return tm_instr::create(INSTRUCTION_MUL__12,in_operands,out_operands,lstring("mul $TYPE_I_1 $I_1"), props,versions,0,einfo); 02540 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__2 | ( | ) |
Definition at line 2542 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_BX, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DI, lestes::md::registers::R_DX, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
02542 { 02543 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02544 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02545 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02546 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02547 ptr<set<tm_data_type_base::id_type> > allowed_types; 02548 ptr<execution_info> einfo; 02549 ptr<set<ulint> > versions; 02550 02551 //input operands 02552 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02553 dt_list_I_1->insert(DT_INT_16U); 02554 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02555 reg_list_I_1->insert(R_AX); 02556 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02557 op_I_1->destroyed_by_get()->push_back(O_1); 02558 in_operands->push_back(op_I_1); 02559 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02560 dt_list_I_2->insert(DT_INT_16U); 02561 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02562 reg_list_I_2->insert(R_AX); 02563 reg_list_I_2->insert(R_BX); 02564 reg_list_I_2->insert(R_CX); 02565 reg_list_I_2->insert(R_DX); 02566 reg_list_I_2->insert(R_DI); 02567 reg_list_I_2->insert(R_SI); 02568 reg_list_I_2->erase(R_DX); 02569 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02570 in_operands->push_back(op_I_2); 02571 02572 //output operands 02573 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02574 dt_list_O_1->insert(DT_INT_16U); 02575 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02576 reg_list_O_1->insert(R_AX); 02577 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02578 op_O_1->destroys_set(I_1); 02579 out_operands->push_back(op_O_1); 02580 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02581 dt_list_O_2->insert(DT_INT_16U); 02582 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02583 reg_list_O_2->insert(R_DX); 02584 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02585 out_operands->push_back(op_O_2); 02586 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 02587 dt_list_O_3->insert(DT_COND); 02588 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 02589 reg_list_O_3->insert(R_COND); 02590 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 02591 out_operands->push_back(op_O_3); 02592 02593 //execution info 02594 einfo = execution_info::create(100); 02595 02596 //properties 02597 02598 //versions 02599 versions = set<ulint>::create(); 02600 versions->insert(INSTRUCTION_MUL__1); 02601 versions->insert(INSTRUCTION_MUL__11); 02602 versions->insert(INSTRUCTION_MUL__12); 02603 versions->insert(INSTRUCTION_MUL__21); 02604 versions->insert(INSTRUCTION_MUL__22); 02605 versions->insert(INSTRUCTION_MUL__3); 02606 versions->insert(INSTRUCTION_MUL__31); 02607 versions->insert(INSTRUCTION_MUL__32); 02608 02609 02610 //return target pseudoinstruction 02611 return tm_instr::create(INSTRUCTION_MUL__2,in_operands,out_operands,lstring("mul $I_2"), props,versions,0,einfo); 02612 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__21 | ( | ) |
Definition at line 2614 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_COND, and lestes::md::registers::R_DX.
Referenced by lestes::md::instructions::tm_instr::instance().
02614 { 02615 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02616 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02617 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02618 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02619 ptr<set<tm_data_type_base::id_type> > allowed_types; 02620 ptr<execution_info> einfo; 02621 ptr<set<ulint> > versions; 02622 02623 //input operands 02624 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02625 dt_list_I_1->insert(DT_INT_16U); 02626 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02627 reg_list_I_1->insert(R_AX); 02628 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02629 op_I_1->destroyed_by_get()->push_back(O_1); 02630 in_operands->push_back(op_I_1); 02631 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02632 dt_list_I_2->insert(DT_INT_16U); 02633 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 02634 in_operands->push_back(op_I_2); 02635 02636 //output operands 02637 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02638 dt_list_O_1->insert(DT_INT_16U); 02639 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02640 reg_list_O_1->insert(R_AX); 02641 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02642 op_O_1->destroys_set(I_1); 02643 out_operands->push_back(op_O_1); 02644 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02645 dt_list_O_2->insert(DT_INT_16U); 02646 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02647 reg_list_O_2->insert(R_DX); 02648 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02649 out_operands->push_back(op_O_2); 02650 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 02651 dt_list_O_3->insert(DT_COND); 02652 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 02653 reg_list_O_3->insert(R_COND); 02654 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 02655 out_operands->push_back(op_O_3); 02656 02657 //execution info 02658 einfo = execution_info::create(120); 02659 02660 //properties 02661 02662 //versions 02663 versions = set<ulint>::create(); 02664 versions->insert(INSTRUCTION_MUL__1); 02665 versions->insert(INSTRUCTION_MUL__11); 02666 versions->insert(INSTRUCTION_MUL__12); 02667 versions->insert(INSTRUCTION_MUL__2); 02668 versions->insert(INSTRUCTION_MUL__22); 02669 versions->insert(INSTRUCTION_MUL__3); 02670 versions->insert(INSTRUCTION_MUL__31); 02671 versions->insert(INSTRUCTION_MUL__32); 02672 02673 02674 //return target pseudoinstruction 02675 return tm_instr::create(INSTRUCTION_MUL__21,in_operands,out_operands,lstring("mul $TYPE_I_2 $I_2"), props,versions,0,einfo); 02676 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__22 | ( | ) |
Definition at line 2678 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, O_3, lestes::md::registers::R_AX, lestes::md::registers::R_COND, and lestes::md::registers::R_DX.
Referenced by lestes::md::instructions::tm_instr::instance().
02678 { 02679 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02680 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02681 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02682 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02683 ptr<set<tm_data_type_base::id_type> > allowed_types; 02684 ptr<execution_info> einfo; 02685 ptr<set<ulint> > versions; 02686 02687 //input operands 02688 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02689 dt_list_I_1->insert(DT_INT_16U); 02690 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 02691 in_operands->push_back(op_I_1); 02692 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02693 dt_list_I_2->insert(DT_INT_16U); 02694 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02695 reg_list_I_2->insert(R_AX); 02696 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02697 op_I_2->destroyed_by_get()->push_back(O_1); 02698 in_operands->push_back(op_I_2); 02699 02700 //output operands 02701 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02702 dt_list_O_1->insert(DT_INT_16U); 02703 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02704 reg_list_O_1->insert(R_AX); 02705 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02706 op_O_1->destroys_set(I_2); 02707 out_operands->push_back(op_O_1); 02708 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02709 dt_list_O_2->insert(DT_INT_16U); 02710 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02711 reg_list_O_2->insert(R_DX); 02712 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02713 out_operands->push_back(op_O_2); 02714 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 02715 dt_list_O_3->insert(DT_COND); 02716 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 02717 reg_list_O_3->insert(R_COND); 02718 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 02719 out_operands->push_back(op_O_3); 02720 02721 //execution info 02722 einfo = execution_info::create(120); 02723 02724 //properties 02725 02726 //versions 02727 versions = set<ulint>::create(); 02728 versions->insert(INSTRUCTION_MUL__1); 02729 versions->insert(INSTRUCTION_MUL__11); 02730 versions->insert(INSTRUCTION_MUL__12); 02731 versions->insert(INSTRUCTION_MUL__2); 02732 versions->insert(INSTRUCTION_MUL__21); 02733 versions->insert(INSTRUCTION_MUL__3); 02734 versions->insert(INSTRUCTION_MUL__31); 02735 versions->insert(INSTRUCTION_MUL__32); 02736 02737 02738 //return target pseudoinstruction 02739 return tm_instr::create(INSTRUCTION_MUL__22,in_operands,out_operands,lstring("mul $TYPE_I_1 $I_1"), props,versions,0,einfo); 02740 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__3 | ( | ) |
Definition at line 2742 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
02742 { 02743 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02744 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02745 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02746 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02747 ptr<set<tm_data_type_base::id_type> > allowed_types; 02748 ptr<execution_info> einfo; 02749 ptr<set<ulint> > versions; 02750 02751 //input operands 02752 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02753 dt_list_I_1->insert(DT_INT_32U); 02754 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02755 reg_list_I_1->insert(R_EAX); 02756 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02757 op_I_1->destroyed_by_get()->push_back(O_1); 02758 in_operands->push_back(op_I_1); 02759 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02760 dt_list_I_2->insert(DT_INT_32U); 02761 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02762 reg_list_I_2->insert(R_EAX); 02763 reg_list_I_2->insert(R_EBX); 02764 reg_list_I_2->insert(R_ECX); 02765 reg_list_I_2->insert(R_EDX); 02766 reg_list_I_2->insert(R_EDI); 02767 reg_list_I_2->insert(R_ESI); 02768 reg_list_I_2->erase(R_EDX); 02769 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02770 in_operands->push_back(op_I_2); 02771 02772 //output operands 02773 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02774 dt_list_O_1->insert(DT_INT_32U); 02775 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02776 reg_list_O_1->insert(R_EAX); 02777 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02778 op_O_1->destroys_set(I_1); 02779 out_operands->push_back(op_O_1); 02780 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02781 dt_list_O_2->insert(DT_INT_32U); 02782 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02783 reg_list_O_2->insert(R_EDX); 02784 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02785 out_operands->push_back(op_O_2); 02786 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 02787 dt_list_O_3->insert(DT_COND); 02788 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 02789 reg_list_O_3->insert(R_COND); 02790 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 02791 out_operands->push_back(op_O_3); 02792 02793 //execution info 02794 einfo = execution_info::create(100); 02795 02796 //properties 02797 02798 //versions 02799 versions = set<ulint>::create(); 02800 versions->insert(INSTRUCTION_MUL__1); 02801 versions->insert(INSTRUCTION_MUL__11); 02802 versions->insert(INSTRUCTION_MUL__12); 02803 versions->insert(INSTRUCTION_MUL__2); 02804 versions->insert(INSTRUCTION_MUL__21); 02805 versions->insert(INSTRUCTION_MUL__22); 02806 versions->insert(INSTRUCTION_MUL__31); 02807 versions->insert(INSTRUCTION_MUL__32); 02808 02809 02810 //return target pseudoinstruction 02811 return tm_instr::create(INSTRUCTION_MUL__3,in_operands,out_operands,lstring("mul $I_2"), props,versions,0,einfo); 02812 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__31 | ( | ) |
Definition at line 2814 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
02814 { 02815 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02816 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02817 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02818 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02819 ptr<set<tm_data_type_base::id_type> > allowed_types; 02820 ptr<execution_info> einfo; 02821 ptr<set<ulint> > versions; 02822 02823 //input operands 02824 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02825 dt_list_I_1->insert(DT_INT_32U); 02826 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 02827 reg_list_I_1->insert(R_EAX); 02828 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 02829 op_I_1->destroyed_by_get()->push_back(O_1); 02830 in_operands->push_back(op_I_1); 02831 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02832 dt_list_I_2->insert(DT_INT_32U); 02833 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 02834 in_operands->push_back(op_I_2); 02835 02836 //output operands 02837 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02838 dt_list_O_1->insert(DT_INT_32U); 02839 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02840 reg_list_O_1->insert(R_EAX); 02841 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02842 op_O_1->destroys_set(I_1); 02843 out_operands->push_back(op_O_1); 02844 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02845 dt_list_O_2->insert(DT_INT_32U); 02846 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02847 reg_list_O_2->insert(R_EDX); 02848 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02849 out_operands->push_back(op_O_2); 02850 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 02851 dt_list_O_3->insert(DT_COND); 02852 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 02853 reg_list_O_3->insert(R_COND); 02854 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 02855 out_operands->push_back(op_O_3); 02856 02857 //execution info 02858 einfo = execution_info::create(120); 02859 02860 //properties 02861 02862 //versions 02863 versions = set<ulint>::create(); 02864 versions->insert(INSTRUCTION_MUL__1); 02865 versions->insert(INSTRUCTION_MUL__11); 02866 versions->insert(INSTRUCTION_MUL__12); 02867 versions->insert(INSTRUCTION_MUL__2); 02868 versions->insert(INSTRUCTION_MUL__21); 02869 versions->insert(INSTRUCTION_MUL__22); 02870 versions->insert(INSTRUCTION_MUL__3); 02871 versions->insert(INSTRUCTION_MUL__32); 02872 02873 02874 //return target pseudoinstruction 02875 return tm_instr::create(INSTRUCTION_MUL__31,in_operands,out_operands,lstring("mul $TYPE_I_2 $I_2"), props,versions,0,einfo); 02876 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_MUL__32 | ( | ) |
Definition at line 2878 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_32U, I_1, I_2, INSTRUCTION_MUL__1, INSTRUCTION_MUL__11, INSTRUCTION_MUL__12, INSTRUCTION_MUL__2, INSTRUCTION_MUL__21, INSTRUCTION_MUL__22, INSTRUCTION_MUL__3, INSTRUCTION_MUL__31, INSTRUCTION_MUL__32, O_1, O_2, O_3, lestes::md::registers::R_COND, lestes::md::registers::R_EAX, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
02878 { 02879 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 02880 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 02881 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 02882 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 02883 ptr<set<tm_data_type_base::id_type> > allowed_types; 02884 ptr<execution_info> einfo; 02885 ptr<set<ulint> > versions; 02886 02887 //input operands 02888 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 02889 dt_list_I_1->insert(DT_INT_32U); 02890 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 02891 in_operands->push_back(op_I_1); 02892 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 02893 dt_list_I_2->insert(DT_INT_32U); 02894 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 02895 reg_list_I_2->insert(R_EAX); 02896 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 02897 op_I_2->destroyed_by_get()->push_back(O_1); 02898 in_operands->push_back(op_I_2); 02899 02900 //output operands 02901 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 02902 dt_list_O_1->insert(DT_INT_32U); 02903 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 02904 reg_list_O_1->insert(R_EAX); 02905 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 02906 op_O_1->destroys_set(I_2); 02907 out_operands->push_back(op_O_1); 02908 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 02909 dt_list_O_2->insert(DT_INT_32U); 02910 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 02911 reg_list_O_2->insert(R_EDX); 02912 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 02913 out_operands->push_back(op_O_2); 02914 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 02915 dt_list_O_3->insert(DT_COND); 02916 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 02917 reg_list_O_3->insert(R_COND); 02918 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 02919 out_operands->push_back(op_O_3); 02920 02921 //execution info 02922 einfo = execution_info::create(120); 02923 02924 //properties 02925 02926 //versions 02927 versions = set<ulint>::create(); 02928 versions->insert(INSTRUCTION_MUL__1); 02929 versions->insert(INSTRUCTION_MUL__11); 02930 versions->insert(INSTRUCTION_MUL__12); 02931 versions->insert(INSTRUCTION_MUL__2); 02932 versions->insert(INSTRUCTION_MUL__21); 02933 versions->insert(INSTRUCTION_MUL__22); 02934 versions->insert(INSTRUCTION_MUL__3); 02935 versions->insert(INSTRUCTION_MUL__31); 02936 02937 02938 //return target pseudoinstruction 02939 return tm_instr::create(INSTRUCTION_MUL__32,in_operands,out_operands,lstring("mul $TYPE_I_1 $I_1"), props,versions,0,einfo); 02940 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_NEG__1 | ( | ) |
Definition at line 4032 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_NEG__1, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04032 { 04033 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04034 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04035 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04036 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04037 ptr<set<tm_data_type_base::id_type> > allowed_types; 04038 ptr<execution_info> einfo; 04039 ptr<set<ulint> > versions; 04040 04041 //input operands 04042 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04043 dt_list_I_1->insert(DT_INT_8P); 04044 dt_list_I_1->insert(DT_INT_8U); 04045 dt_list_I_1->insert(DT_INT_8S); 04046 dt_list_I_1->insert(DT_INT_16U); 04047 dt_list_I_1->insert(DT_INT_16S); 04048 dt_list_I_1->insert(DT_INT_32U); 04049 dt_list_I_1->insert(DT_INT_32S); 04050 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04051 reg_list_I_1->insert(R_EAX); 04052 reg_list_I_1->insert(R_EBX); 04053 reg_list_I_1->insert(R_ECX); 04054 reg_list_I_1->insert(R_EDX); 04055 reg_list_I_1->insert(R_EDI); 04056 reg_list_I_1->insert(R_ESI); 04057 reg_list_I_1->insert(R_AX); 04058 reg_list_I_1->insert(R_BX); 04059 reg_list_I_1->insert(R_CX); 04060 reg_list_I_1->insert(R_DX); 04061 reg_list_I_1->insert(R_DI); 04062 reg_list_I_1->insert(R_SI); 04063 reg_list_I_1->insert(R_AL); 04064 reg_list_I_1->insert(R_AH); 04065 reg_list_I_1->insert(R_BL); 04066 reg_list_I_1->insert(R_BH); 04067 reg_list_I_1->insert(R_CL); 04068 reg_list_I_1->insert(R_CH); 04069 reg_list_I_1->insert(R_DL); 04070 reg_list_I_1->insert(R_DH); 04071 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04072 op_I_1->destroyed_by_get()->push_back(O_1); 04073 in_operands->push_back(op_I_1); 04074 04075 //output operands 04076 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04077 dt_list_O_1->insert(DT_INT_8P); 04078 dt_list_O_1->insert(DT_INT_8U); 04079 dt_list_O_1->insert(DT_INT_8S); 04080 dt_list_O_1->insert(DT_INT_16U); 04081 dt_list_O_1->insert(DT_INT_16S); 04082 dt_list_O_1->insert(DT_INT_32U); 04083 dt_list_O_1->insert(DT_INT_32S); 04084 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04085 reg_list_O_1->insert(R_EAX); 04086 reg_list_O_1->insert(R_EBX); 04087 reg_list_O_1->insert(R_ECX); 04088 reg_list_O_1->insert(R_EDX); 04089 reg_list_O_1->insert(R_EDI); 04090 reg_list_O_1->insert(R_ESI); 04091 reg_list_O_1->insert(R_AX); 04092 reg_list_O_1->insert(R_BX); 04093 reg_list_O_1->insert(R_CX); 04094 reg_list_O_1->insert(R_DX); 04095 reg_list_O_1->insert(R_DI); 04096 reg_list_O_1->insert(R_SI); 04097 reg_list_O_1->insert(R_AL); 04098 reg_list_O_1->insert(R_AH); 04099 reg_list_O_1->insert(R_BL); 04100 reg_list_O_1->insert(R_BH); 04101 reg_list_O_1->insert(R_CL); 04102 reg_list_O_1->insert(R_CH); 04103 reg_list_O_1->insert(R_DL); 04104 reg_list_O_1->insert(R_DH); 04105 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04106 op_O_1->destroys_set(I_1); 04107 out_operands->push_back(op_O_1); 04108 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04109 dt_list_O_2->insert(DT_COND); 04110 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04111 reg_list_O_2->insert(R_COND); 04112 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04113 out_operands->push_back(op_O_2); 04114 04115 //execution info 04116 einfo = execution_info::create(10); 04117 04118 //properties 04119 04120 //versions 04121 04122 04123 //return target pseudoinstruction 04124 return tm_instr::create(INSTRUCTION_NEG__1,in_operands,out_operands,lstring("neg $I_1"), props,versions,0,einfo); 04125 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_NOP__1 | ( | ) |
Definition at line 9041 of file tm_instr.mdg.cc.
References IF_SYS, and INSTRUCTION_NOP__1.
Referenced by lestes::md::instructions::tm_instr::instance().
09041 { 09042 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09043 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09044 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09045 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09046 ptr<set<tm_data_type_base::id_type> > allowed_types; 09047 ptr<execution_info> einfo; 09048 ptr<set<ulint> > versions; 09049 09050 //input operands 09051 09052 //output operands 09053 09054 //execution info 09055 einfo = execution_info::create(10); 09056 09057 //properties 09058 09059 //versions 09060 09061 09062 //return target pseudoinstruction 09063 return tm_instr::create(INSTRUCTION_NOP__1,in_operands,out_operands,lstring("nop"), props,versions,IF_SYS,einfo); 09064 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_NOT__1 | ( | ) |
Definition at line 6494 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_NOT__1, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06494 { 06495 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06496 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06497 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06498 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06499 ptr<set<tm_data_type_base::id_type> > allowed_types; 06500 ptr<execution_info> einfo; 06501 ptr<set<ulint> > versions; 06502 06503 //input operands 06504 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06505 dt_list_I_1->insert(DT_INT_8P); 06506 dt_list_I_1->insert(DT_INT_8U); 06507 dt_list_I_1->insert(DT_INT_8S); 06508 dt_list_I_1->insert(DT_INT_16U); 06509 dt_list_I_1->insert(DT_INT_16S); 06510 dt_list_I_1->insert(DT_INT_32U); 06511 dt_list_I_1->insert(DT_INT_32S); 06512 dt_list_I_1->insert(DT_BOOL); 06513 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06514 reg_list_I_1->insert(R_EAX); 06515 reg_list_I_1->insert(R_EBX); 06516 reg_list_I_1->insert(R_ECX); 06517 reg_list_I_1->insert(R_EDX); 06518 reg_list_I_1->insert(R_EDI); 06519 reg_list_I_1->insert(R_ESI); 06520 reg_list_I_1->insert(R_AX); 06521 reg_list_I_1->insert(R_BX); 06522 reg_list_I_1->insert(R_CX); 06523 reg_list_I_1->insert(R_DX); 06524 reg_list_I_1->insert(R_DI); 06525 reg_list_I_1->insert(R_SI); 06526 reg_list_I_1->insert(R_AL); 06527 reg_list_I_1->insert(R_AH); 06528 reg_list_I_1->insert(R_BL); 06529 reg_list_I_1->insert(R_BH); 06530 reg_list_I_1->insert(R_CL); 06531 reg_list_I_1->insert(R_CH); 06532 reg_list_I_1->insert(R_DL); 06533 reg_list_I_1->insert(R_DH); 06534 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06535 op_I_1->destroyed_by_get()->push_back(O_1); 06536 in_operands->push_back(op_I_1); 06537 06538 //output operands 06539 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06540 dt_list_O_1->insert(DT_INT_8P); 06541 dt_list_O_1->insert(DT_INT_8U); 06542 dt_list_O_1->insert(DT_INT_8S); 06543 dt_list_O_1->insert(DT_INT_16U); 06544 dt_list_O_1->insert(DT_INT_16S); 06545 dt_list_O_1->insert(DT_INT_32U); 06546 dt_list_O_1->insert(DT_INT_32S); 06547 dt_list_O_1->insert(DT_BOOL); 06548 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06549 reg_list_O_1->insert(R_EAX); 06550 reg_list_O_1->insert(R_EBX); 06551 reg_list_O_1->insert(R_ECX); 06552 reg_list_O_1->insert(R_EDX); 06553 reg_list_O_1->insert(R_EDI); 06554 reg_list_O_1->insert(R_ESI); 06555 reg_list_O_1->insert(R_AX); 06556 reg_list_O_1->insert(R_BX); 06557 reg_list_O_1->insert(R_CX); 06558 reg_list_O_1->insert(R_DX); 06559 reg_list_O_1->insert(R_DI); 06560 reg_list_O_1->insert(R_SI); 06561 reg_list_O_1->insert(R_AL); 06562 reg_list_O_1->insert(R_AH); 06563 reg_list_O_1->insert(R_BL); 06564 reg_list_O_1->insert(R_BH); 06565 reg_list_O_1->insert(R_CL); 06566 reg_list_O_1->insert(R_CH); 06567 reg_list_O_1->insert(R_DL); 06568 reg_list_O_1->insert(R_DH); 06569 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06570 op_O_1->destroys_set(I_1); 06571 out_operands->push_back(op_O_1); 06572 06573 //execution info 06574 einfo = execution_info::create(10); 06575 06576 //properties 06577 06578 //versions 06579 06580 06581 //return target pseudoinstruction 06582 return tm_instr::create(INSTRUCTION_NOT__1,in_operands,out_operands,lstring("not $O_1"), props,versions,0,einfo); 06583 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_NULLAH__1 | ( | ) |
Definition at line 3511 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_8U, INSTRUCTION_NULLAH__1, O_1, and lestes::md::registers::R_AH.
Referenced by lestes::md::instructions::tm_instr::instance().
03511 { 03512 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03513 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03514 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03515 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03516 ptr<set<tm_data_type_base::id_type> > allowed_types; 03517 ptr<execution_info> einfo; 03518 ptr<set<ulint> > versions; 03519 03520 //input operands 03521 03522 //output operands 03523 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03524 dt_list_O_1->insert(DT_INT_8U); 03525 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03526 reg_list_O_1->insert(R_AH); 03527 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03528 out_operands->push_back(op_O_1); 03529 03530 //execution info 03531 einfo = execution_info::create(10); 03532 03533 //properties 03534 03535 //versions 03536 03537 03538 //return target pseudoinstruction 03539 return tm_instr::create(INSTRUCTION_NULLAH__1,in_operands,out_operands,lstring("xor $O_1, $O_1"), props,versions,0,einfo); 03540 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_NULLDX__1 | ( | ) |
Definition at line 3542 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16U, INSTRUCTION_NULLDX__1, O_1, and lestes::md::registers::R_DX.
Referenced by lestes::md::instructions::tm_instr::instance().
03542 { 03543 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03544 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03545 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03546 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03547 ptr<set<tm_data_type_base::id_type> > allowed_types; 03548 ptr<execution_info> einfo; 03549 ptr<set<ulint> > versions; 03550 03551 //input operands 03552 03553 //output operands 03554 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03555 dt_list_O_1->insert(DT_INT_16U); 03556 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03557 reg_list_O_1->insert(R_DX); 03558 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03559 out_operands->push_back(op_O_1); 03560 03561 //execution info 03562 einfo = execution_info::create(10); 03563 03564 //properties 03565 03566 //versions 03567 03568 03569 //return target pseudoinstruction 03570 return tm_instr::create(INSTRUCTION_NULLDX__1,in_operands,out_operands,lstring("xor $O_1, $O_1"), props,versions,0,einfo); 03571 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_NULLEDX__1 | ( | ) |
Definition at line 3573 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32U, INSTRUCTION_NULLEDX__1, O_1, and lestes::md::registers::R_EDX.
Referenced by lestes::md::instructions::tm_instr::instance().
03573 { 03574 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 03575 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 03576 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 03577 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 03578 ptr<set<tm_data_type_base::id_type> > allowed_types; 03579 ptr<execution_info> einfo; 03580 ptr<set<ulint> > versions; 03581 03582 //input operands 03583 03584 //output operands 03585 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 03586 dt_list_O_1->insert(DT_INT_32U); 03587 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 03588 reg_list_O_1->insert(R_EDX); 03589 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 03590 out_operands->push_back(op_O_1); 03591 03592 //execution info 03593 einfo = execution_info::create(10); 03594 03595 //properties 03596 03597 //versions 03598 03599 03600 //return target pseudoinstruction 03601 return tm_instr::create(INSTRUCTION_NULLEDX__1,in_operands,out_operands,lstring("xor $O_1, $O_1"), props,versions,0,einfo); 03602 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_OR__1 | ( | ) |
Definition at line 5214 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_OR__1, INSTRUCTION_OR__11, INSTRUCTION_OR__12, INSTRUCTION_OR__13, INSTRUCTION_OR__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05214 { 05215 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05216 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05217 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05218 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05219 ptr<set<tm_data_type_base::id_type> > allowed_types; 05220 ptr<execution_info> einfo; 05221 ptr<set<ulint> > versions; 05222 05223 //input operands 05224 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05225 dt_list_I_1->insert(DT_INT_8P); 05226 dt_list_I_1->insert(DT_INT_8U); 05227 dt_list_I_1->insert(DT_INT_8S); 05228 dt_list_I_1->insert(DT_INT_16U); 05229 dt_list_I_1->insert(DT_INT_16S); 05230 dt_list_I_1->insert(DT_INT_32U); 05231 dt_list_I_1->insert(DT_INT_32S); 05232 dt_list_I_1->insert(DT_BOOL); 05233 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 05234 reg_list_I_1->insert(R_EAX); 05235 reg_list_I_1->insert(R_EBX); 05236 reg_list_I_1->insert(R_ECX); 05237 reg_list_I_1->insert(R_EDX); 05238 reg_list_I_1->insert(R_EDI); 05239 reg_list_I_1->insert(R_ESI); 05240 reg_list_I_1->insert(R_AX); 05241 reg_list_I_1->insert(R_BX); 05242 reg_list_I_1->insert(R_CX); 05243 reg_list_I_1->insert(R_DX); 05244 reg_list_I_1->insert(R_DI); 05245 reg_list_I_1->insert(R_SI); 05246 reg_list_I_1->insert(R_AL); 05247 reg_list_I_1->insert(R_AH); 05248 reg_list_I_1->insert(R_BL); 05249 reg_list_I_1->insert(R_BH); 05250 reg_list_I_1->insert(R_CL); 05251 reg_list_I_1->insert(R_CH); 05252 reg_list_I_1->insert(R_DL); 05253 reg_list_I_1->insert(R_DH); 05254 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 05255 op_I_1->destroyed_by_get()->push_back(O_1); 05256 in_operands->push_back(op_I_1); 05257 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05258 dt_list_I_2->insert(DT_INT_8P); 05259 dt_list_I_2->insert(DT_INT_8U); 05260 dt_list_I_2->insert(DT_INT_8S); 05261 dt_list_I_2->insert(DT_INT_16U); 05262 dt_list_I_2->insert(DT_INT_16S); 05263 dt_list_I_2->insert(DT_INT_32U); 05264 dt_list_I_2->insert(DT_INT_32S); 05265 dt_list_I_2->insert(DT_BOOL); 05266 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 05267 reg_list_I_2->insert(R_EAX); 05268 reg_list_I_2->insert(R_EBX); 05269 reg_list_I_2->insert(R_ECX); 05270 reg_list_I_2->insert(R_EDX); 05271 reg_list_I_2->insert(R_EDI); 05272 reg_list_I_2->insert(R_ESI); 05273 reg_list_I_2->insert(R_AX); 05274 reg_list_I_2->insert(R_BX); 05275 reg_list_I_2->insert(R_CX); 05276 reg_list_I_2->insert(R_DX); 05277 reg_list_I_2->insert(R_DI); 05278 reg_list_I_2->insert(R_SI); 05279 reg_list_I_2->insert(R_AL); 05280 reg_list_I_2->insert(R_AH); 05281 reg_list_I_2->insert(R_BL); 05282 reg_list_I_2->insert(R_BH); 05283 reg_list_I_2->insert(R_CL); 05284 reg_list_I_2->insert(R_CH); 05285 reg_list_I_2->insert(R_DL); 05286 reg_list_I_2->insert(R_DH); 05287 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 05288 in_operands->push_back(op_I_2); 05289 05290 //output operands 05291 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05292 dt_list_O_1->insert(DT_INT_8P); 05293 dt_list_O_1->insert(DT_INT_8U); 05294 dt_list_O_1->insert(DT_INT_8S); 05295 dt_list_O_1->insert(DT_INT_16U); 05296 dt_list_O_1->insert(DT_INT_16S); 05297 dt_list_O_1->insert(DT_INT_32U); 05298 dt_list_O_1->insert(DT_INT_32S); 05299 dt_list_O_1->insert(DT_BOOL); 05300 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05301 reg_list_O_1->insert(R_EAX); 05302 reg_list_O_1->insert(R_EBX); 05303 reg_list_O_1->insert(R_ECX); 05304 reg_list_O_1->insert(R_EDX); 05305 reg_list_O_1->insert(R_EDI); 05306 reg_list_O_1->insert(R_ESI); 05307 reg_list_O_1->insert(R_AX); 05308 reg_list_O_1->insert(R_BX); 05309 reg_list_O_1->insert(R_CX); 05310 reg_list_O_1->insert(R_DX); 05311 reg_list_O_1->insert(R_DI); 05312 reg_list_O_1->insert(R_SI); 05313 reg_list_O_1->insert(R_AL); 05314 reg_list_O_1->insert(R_AH); 05315 reg_list_O_1->insert(R_BL); 05316 reg_list_O_1->insert(R_BH); 05317 reg_list_O_1->insert(R_CL); 05318 reg_list_O_1->insert(R_CH); 05319 reg_list_O_1->insert(R_DL); 05320 reg_list_O_1->insert(R_DH); 05321 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05322 op_O_1->destroys_set(I_1); 05323 out_operands->push_back(op_O_1); 05324 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05325 dt_list_O_2->insert(DT_COND); 05326 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05327 reg_list_O_2->insert(R_COND); 05328 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05329 out_operands->push_back(op_O_2); 05330 05331 //execution info 05332 einfo = execution_info::create(10); 05333 05334 //properties 05335 05336 //versions 05337 versions = set<ulint>::create(); 05338 versions->insert(INSTRUCTION_OR__11); 05339 versions->insert(INSTRUCTION_OR__12); 05340 versions->insert(INSTRUCTION_OR__13); 05341 versions->insert(INSTRUCTION_OR__14); 05342 05343 05344 //return target pseudoinstruction 05345 return tm_instr::create(INSTRUCTION_OR__1,in_operands,out_operands,lstring("or $O_1, $I_2"), props,versions,0,einfo); 05346 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_OR__11 | ( | ) |
Definition at line 5348 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_OR__1, INSTRUCTION_OR__11, INSTRUCTION_OR__12, INSTRUCTION_OR__13, INSTRUCTION_OR__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05348 { 05349 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05350 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05351 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05352 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05353 ptr<set<tm_data_type_base::id_type> > allowed_types; 05354 ptr<execution_info> einfo; 05355 ptr<set<ulint> > versions; 05356 05357 //input operands 05358 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05359 dt_list_I_1->insert(DT_INT_8P); 05360 dt_list_I_1->insert(DT_INT_8U); 05361 dt_list_I_1->insert(DT_INT_8S); 05362 dt_list_I_1->insert(DT_INT_16U); 05363 dt_list_I_1->insert(DT_INT_16S); 05364 dt_list_I_1->insert(DT_INT_32U); 05365 dt_list_I_1->insert(DT_INT_32S); 05366 dt_list_I_1->insert(DT_BOOL); 05367 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 05368 reg_list_I_1->insert(R_EAX); 05369 reg_list_I_1->insert(R_EBX); 05370 reg_list_I_1->insert(R_ECX); 05371 reg_list_I_1->insert(R_EDX); 05372 reg_list_I_1->insert(R_EDI); 05373 reg_list_I_1->insert(R_ESI); 05374 reg_list_I_1->insert(R_AX); 05375 reg_list_I_1->insert(R_BX); 05376 reg_list_I_1->insert(R_CX); 05377 reg_list_I_1->insert(R_DX); 05378 reg_list_I_1->insert(R_DI); 05379 reg_list_I_1->insert(R_SI); 05380 reg_list_I_1->insert(R_AL); 05381 reg_list_I_1->insert(R_AH); 05382 reg_list_I_1->insert(R_BL); 05383 reg_list_I_1->insert(R_BH); 05384 reg_list_I_1->insert(R_CL); 05385 reg_list_I_1->insert(R_CH); 05386 reg_list_I_1->insert(R_DL); 05387 reg_list_I_1->insert(R_DH); 05388 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 05389 op_I_1->destroyed_by_get()->push_back(O_1); 05390 in_operands->push_back(op_I_1); 05391 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05392 dt_list_I_2->insert(DT_INT_8P); 05393 dt_list_I_2->insert(DT_INT_8U); 05394 dt_list_I_2->insert(DT_INT_8S); 05395 dt_list_I_2->insert(DT_INT_16U); 05396 dt_list_I_2->insert(DT_INT_16S); 05397 dt_list_I_2->insert(DT_INT_32U); 05398 dt_list_I_2->insert(DT_INT_32S); 05399 dt_list_I_2->insert(DT_BOOL); 05400 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 05401 in_operands->push_back(op_I_2); 05402 05403 //output operands 05404 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05405 dt_list_O_1->insert(DT_INT_8P); 05406 dt_list_O_1->insert(DT_INT_8U); 05407 dt_list_O_1->insert(DT_INT_8S); 05408 dt_list_O_1->insert(DT_INT_16U); 05409 dt_list_O_1->insert(DT_INT_16S); 05410 dt_list_O_1->insert(DT_INT_32U); 05411 dt_list_O_1->insert(DT_INT_32S); 05412 dt_list_O_1->insert(DT_BOOL); 05413 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05414 reg_list_O_1->insert(R_EAX); 05415 reg_list_O_1->insert(R_EBX); 05416 reg_list_O_1->insert(R_ECX); 05417 reg_list_O_1->insert(R_EDX); 05418 reg_list_O_1->insert(R_EDI); 05419 reg_list_O_1->insert(R_ESI); 05420 reg_list_O_1->insert(R_AX); 05421 reg_list_O_1->insert(R_BX); 05422 reg_list_O_1->insert(R_CX); 05423 reg_list_O_1->insert(R_DX); 05424 reg_list_O_1->insert(R_DI); 05425 reg_list_O_1->insert(R_SI); 05426 reg_list_O_1->insert(R_AL); 05427 reg_list_O_1->insert(R_AH); 05428 reg_list_O_1->insert(R_BL); 05429 reg_list_O_1->insert(R_BH); 05430 reg_list_O_1->insert(R_CL); 05431 reg_list_O_1->insert(R_CH); 05432 reg_list_O_1->insert(R_DL); 05433 reg_list_O_1->insert(R_DH); 05434 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05435 op_O_1->destroys_set(I_1); 05436 out_operands->push_back(op_O_1); 05437 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05438 dt_list_O_2->insert(DT_COND); 05439 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05440 reg_list_O_2->insert(R_COND); 05441 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05442 out_operands->push_back(op_O_2); 05443 05444 //execution info 05445 einfo = execution_info::create(10); 05446 05447 //properties 05448 05449 //versions 05450 versions = set<ulint>::create(); 05451 versions->insert(INSTRUCTION_OR__1); 05452 versions->insert(INSTRUCTION_OR__12); 05453 versions->insert(INSTRUCTION_OR__13); 05454 versions->insert(INSTRUCTION_OR__14); 05455 05456 05457 //return target pseudoinstruction 05458 return tm_instr::create(INSTRUCTION_OR__11,in_operands,out_operands,lstring("or $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 05459 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_OR__12 | ( | ) |
Definition at line 5461 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_OR__1, INSTRUCTION_OR__11, INSTRUCTION_OR__12, INSTRUCTION_OR__13, INSTRUCTION_OR__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05461 { 05462 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05463 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05464 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05465 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05466 ptr<set<tm_data_type_base::id_type> > allowed_types; 05467 ptr<execution_info> einfo; 05468 ptr<set<ulint> > versions; 05469 05470 //input operands 05471 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05472 dt_list_I_1->insert(DT_INT_8P); 05473 dt_list_I_1->insert(DT_INT_8U); 05474 dt_list_I_1->insert(DT_INT_8S); 05475 dt_list_I_1->insert(DT_INT_16U); 05476 dt_list_I_1->insert(DT_INT_16S); 05477 dt_list_I_1->insert(DT_INT_32U); 05478 dt_list_I_1->insert(DT_INT_32S); 05479 dt_list_I_1->insert(DT_BOOL); 05480 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 05481 in_operands->push_back(op_I_1); 05482 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05483 dt_list_I_2->insert(DT_INT_8P); 05484 dt_list_I_2->insert(DT_INT_8U); 05485 dt_list_I_2->insert(DT_INT_8S); 05486 dt_list_I_2->insert(DT_INT_16U); 05487 dt_list_I_2->insert(DT_INT_16S); 05488 dt_list_I_2->insert(DT_INT_32U); 05489 dt_list_I_2->insert(DT_INT_32S); 05490 dt_list_I_2->insert(DT_BOOL); 05491 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 05492 reg_list_I_2->insert(R_EAX); 05493 reg_list_I_2->insert(R_EBX); 05494 reg_list_I_2->insert(R_ECX); 05495 reg_list_I_2->insert(R_EDX); 05496 reg_list_I_2->insert(R_EDI); 05497 reg_list_I_2->insert(R_ESI); 05498 reg_list_I_2->insert(R_AX); 05499 reg_list_I_2->insert(R_BX); 05500 reg_list_I_2->insert(R_CX); 05501 reg_list_I_2->insert(R_DX); 05502 reg_list_I_2->insert(R_DI); 05503 reg_list_I_2->insert(R_SI); 05504 reg_list_I_2->insert(R_AL); 05505 reg_list_I_2->insert(R_AH); 05506 reg_list_I_2->insert(R_BL); 05507 reg_list_I_2->insert(R_BH); 05508 reg_list_I_2->insert(R_CL); 05509 reg_list_I_2->insert(R_CH); 05510 reg_list_I_2->insert(R_DL); 05511 reg_list_I_2->insert(R_DH); 05512 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 05513 op_I_2->destroyed_by_get()->push_back(O_1); 05514 in_operands->push_back(op_I_2); 05515 05516 //output operands 05517 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05518 dt_list_O_1->insert(DT_INT_8P); 05519 dt_list_O_1->insert(DT_INT_8U); 05520 dt_list_O_1->insert(DT_INT_8S); 05521 dt_list_O_1->insert(DT_INT_16U); 05522 dt_list_O_1->insert(DT_INT_16S); 05523 dt_list_O_1->insert(DT_INT_32U); 05524 dt_list_O_1->insert(DT_INT_32S); 05525 dt_list_O_1->insert(DT_BOOL); 05526 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05527 reg_list_O_1->insert(R_EAX); 05528 reg_list_O_1->insert(R_EBX); 05529 reg_list_O_1->insert(R_ECX); 05530 reg_list_O_1->insert(R_EDX); 05531 reg_list_O_1->insert(R_EDI); 05532 reg_list_O_1->insert(R_ESI); 05533 reg_list_O_1->insert(R_AX); 05534 reg_list_O_1->insert(R_BX); 05535 reg_list_O_1->insert(R_CX); 05536 reg_list_O_1->insert(R_DX); 05537 reg_list_O_1->insert(R_DI); 05538 reg_list_O_1->insert(R_SI); 05539 reg_list_O_1->insert(R_AL); 05540 reg_list_O_1->insert(R_AH); 05541 reg_list_O_1->insert(R_BL); 05542 reg_list_O_1->insert(R_BH); 05543 reg_list_O_1->insert(R_CL); 05544 reg_list_O_1->insert(R_CH); 05545 reg_list_O_1->insert(R_DL); 05546 reg_list_O_1->insert(R_DH); 05547 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05548 op_O_1->destroys_set(I_2); 05549 out_operands->push_back(op_O_1); 05550 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05551 dt_list_O_2->insert(DT_COND); 05552 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05553 reg_list_O_2->insert(R_COND); 05554 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05555 out_operands->push_back(op_O_2); 05556 05557 //execution info 05558 einfo = execution_info::create(10); 05559 05560 //properties 05561 05562 //versions 05563 versions = set<ulint>::create(); 05564 versions->insert(INSTRUCTION_OR__1); 05565 versions->insert(INSTRUCTION_OR__11); 05566 versions->insert(INSTRUCTION_OR__13); 05567 versions->insert(INSTRUCTION_OR__14); 05568 05569 05570 //return target pseudoinstruction 05571 return tm_instr::create(INSTRUCTION_OR__12,in_operands,out_operands,lstring("or $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 05572 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_OR__13 | ( | ) |
Definition at line 5574 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_OR__1, INSTRUCTION_OR__11, INSTRUCTION_OR__12, INSTRUCTION_OR__13, INSTRUCTION_OR__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05574 { 05575 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05576 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05577 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05578 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05579 ptr<set<tm_data_type_base::id_type> > allowed_types; 05580 ptr<execution_info> einfo; 05581 ptr<set<ulint> > versions; 05582 05583 //input operands 05584 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05585 dt_list_I_1->insert(DT_INT_8P); 05586 dt_list_I_1->insert(DT_INT_8U); 05587 dt_list_I_1->insert(DT_INT_8S); 05588 dt_list_I_1->insert(DT_INT_16U); 05589 dt_list_I_1->insert(DT_INT_16S); 05590 dt_list_I_1->insert(DT_INT_32U); 05591 dt_list_I_1->insert(DT_INT_32S); 05592 dt_list_I_1->insert(DT_BOOL); 05593 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 05594 reg_list_I_1->insert(R_EAX); 05595 reg_list_I_1->insert(R_EBX); 05596 reg_list_I_1->insert(R_ECX); 05597 reg_list_I_1->insert(R_EDX); 05598 reg_list_I_1->insert(R_EDI); 05599 reg_list_I_1->insert(R_ESI); 05600 reg_list_I_1->insert(R_AX); 05601 reg_list_I_1->insert(R_BX); 05602 reg_list_I_1->insert(R_CX); 05603 reg_list_I_1->insert(R_DX); 05604 reg_list_I_1->insert(R_DI); 05605 reg_list_I_1->insert(R_SI); 05606 reg_list_I_1->insert(R_AL); 05607 reg_list_I_1->insert(R_AH); 05608 reg_list_I_1->insert(R_BL); 05609 reg_list_I_1->insert(R_BH); 05610 reg_list_I_1->insert(R_CL); 05611 reg_list_I_1->insert(R_CH); 05612 reg_list_I_1->insert(R_DL); 05613 reg_list_I_1->insert(R_DH); 05614 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 05615 op_I_1->destroyed_by_get()->push_back(O_1); 05616 in_operands->push_back(op_I_1); 05617 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05618 dt_list_I_2->insert(DT_INT_8P); 05619 dt_list_I_2->insert(DT_INT_8U); 05620 dt_list_I_2->insert(DT_INT_8S); 05621 dt_list_I_2->insert(DT_INT_16U); 05622 dt_list_I_2->insert(DT_INT_16S); 05623 dt_list_I_2->insert(DT_INT_32U); 05624 dt_list_I_2->insert(DT_INT_32S); 05625 dt_list_I_2->insert(DT_BOOL); 05626 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 05627 in_operands->push_back(op_I_2); 05628 05629 //output operands 05630 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05631 dt_list_O_1->insert(DT_INT_8P); 05632 dt_list_O_1->insert(DT_INT_8U); 05633 dt_list_O_1->insert(DT_INT_8S); 05634 dt_list_O_1->insert(DT_INT_16U); 05635 dt_list_O_1->insert(DT_INT_16S); 05636 dt_list_O_1->insert(DT_INT_32U); 05637 dt_list_O_1->insert(DT_INT_32S); 05638 dt_list_O_1->insert(DT_BOOL); 05639 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05640 reg_list_O_1->insert(R_EAX); 05641 reg_list_O_1->insert(R_EBX); 05642 reg_list_O_1->insert(R_ECX); 05643 reg_list_O_1->insert(R_EDX); 05644 reg_list_O_1->insert(R_EDI); 05645 reg_list_O_1->insert(R_ESI); 05646 reg_list_O_1->insert(R_AX); 05647 reg_list_O_1->insert(R_BX); 05648 reg_list_O_1->insert(R_CX); 05649 reg_list_O_1->insert(R_DX); 05650 reg_list_O_1->insert(R_DI); 05651 reg_list_O_1->insert(R_SI); 05652 reg_list_O_1->insert(R_AL); 05653 reg_list_O_1->insert(R_AH); 05654 reg_list_O_1->insert(R_BL); 05655 reg_list_O_1->insert(R_BH); 05656 reg_list_O_1->insert(R_CL); 05657 reg_list_O_1->insert(R_CH); 05658 reg_list_O_1->insert(R_DL); 05659 reg_list_O_1->insert(R_DH); 05660 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05661 op_O_1->destroys_set(I_1); 05662 out_operands->push_back(op_O_1); 05663 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05664 dt_list_O_2->insert(DT_COND); 05665 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05666 reg_list_O_2->insert(R_COND); 05667 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05668 out_operands->push_back(op_O_2); 05669 05670 //execution info 05671 einfo = execution_info::create(30); 05672 05673 //properties 05674 05675 //versions 05676 versions = set<ulint>::create(); 05677 versions->insert(INSTRUCTION_OR__1); 05678 versions->insert(INSTRUCTION_OR__11); 05679 versions->insert(INSTRUCTION_OR__12); 05680 versions->insert(INSTRUCTION_OR__14); 05681 05682 05683 //return target pseudoinstruction 05684 return tm_instr::create(INSTRUCTION_OR__13,in_operands,out_operands,lstring("or $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 05685 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_OR__14 | ( | ) |
Definition at line 5687 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_OR__1, INSTRUCTION_OR__11, INSTRUCTION_OR__12, INSTRUCTION_OR__13, INSTRUCTION_OR__14, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05687 { 05688 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05689 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05690 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05691 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05692 ptr<set<tm_data_type_base::id_type> > allowed_types; 05693 ptr<execution_info> einfo; 05694 ptr<set<ulint> > versions; 05695 05696 //input operands 05697 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05698 dt_list_I_1->insert(DT_INT_8P); 05699 dt_list_I_1->insert(DT_INT_8U); 05700 dt_list_I_1->insert(DT_INT_8S); 05701 dt_list_I_1->insert(DT_INT_16U); 05702 dt_list_I_1->insert(DT_INT_16S); 05703 dt_list_I_1->insert(DT_INT_32U); 05704 dt_list_I_1->insert(DT_INT_32S); 05705 dt_list_I_1->insert(DT_BOOL); 05706 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 05707 in_operands->push_back(op_I_1); 05708 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05709 dt_list_I_2->insert(DT_INT_8P); 05710 dt_list_I_2->insert(DT_INT_8U); 05711 dt_list_I_2->insert(DT_INT_8S); 05712 dt_list_I_2->insert(DT_INT_16U); 05713 dt_list_I_2->insert(DT_INT_16S); 05714 dt_list_I_2->insert(DT_INT_32U); 05715 dt_list_I_2->insert(DT_INT_32S); 05716 dt_list_I_2->insert(DT_BOOL); 05717 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 05718 reg_list_I_2->insert(R_EAX); 05719 reg_list_I_2->insert(R_EBX); 05720 reg_list_I_2->insert(R_ECX); 05721 reg_list_I_2->insert(R_EDX); 05722 reg_list_I_2->insert(R_EDI); 05723 reg_list_I_2->insert(R_ESI); 05724 reg_list_I_2->insert(R_AX); 05725 reg_list_I_2->insert(R_BX); 05726 reg_list_I_2->insert(R_CX); 05727 reg_list_I_2->insert(R_DX); 05728 reg_list_I_2->insert(R_DI); 05729 reg_list_I_2->insert(R_SI); 05730 reg_list_I_2->insert(R_AL); 05731 reg_list_I_2->insert(R_AH); 05732 reg_list_I_2->insert(R_BL); 05733 reg_list_I_2->insert(R_BH); 05734 reg_list_I_2->insert(R_CL); 05735 reg_list_I_2->insert(R_CH); 05736 reg_list_I_2->insert(R_DL); 05737 reg_list_I_2->insert(R_DH); 05738 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 05739 op_I_2->destroyed_by_get()->push_back(O_1); 05740 in_operands->push_back(op_I_2); 05741 05742 //output operands 05743 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05744 dt_list_O_1->insert(DT_INT_8P); 05745 dt_list_O_1->insert(DT_INT_8U); 05746 dt_list_O_1->insert(DT_INT_8S); 05747 dt_list_O_1->insert(DT_INT_16U); 05748 dt_list_O_1->insert(DT_INT_16S); 05749 dt_list_O_1->insert(DT_INT_32U); 05750 dt_list_O_1->insert(DT_INT_32S); 05751 dt_list_O_1->insert(DT_BOOL); 05752 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05753 reg_list_O_1->insert(R_EAX); 05754 reg_list_O_1->insert(R_EBX); 05755 reg_list_O_1->insert(R_ECX); 05756 reg_list_O_1->insert(R_EDX); 05757 reg_list_O_1->insert(R_EDI); 05758 reg_list_O_1->insert(R_ESI); 05759 reg_list_O_1->insert(R_AX); 05760 reg_list_O_1->insert(R_BX); 05761 reg_list_O_1->insert(R_CX); 05762 reg_list_O_1->insert(R_DX); 05763 reg_list_O_1->insert(R_DI); 05764 reg_list_O_1->insert(R_SI); 05765 reg_list_O_1->insert(R_AL); 05766 reg_list_O_1->insert(R_AH); 05767 reg_list_O_1->insert(R_BL); 05768 reg_list_O_1->insert(R_BH); 05769 reg_list_O_1->insert(R_CL); 05770 reg_list_O_1->insert(R_CH); 05771 reg_list_O_1->insert(R_DL); 05772 reg_list_O_1->insert(R_DH); 05773 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05774 op_O_1->destroys_set(I_2); 05775 out_operands->push_back(op_O_1); 05776 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05777 dt_list_O_2->insert(DT_COND); 05778 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05779 reg_list_O_2->insert(R_COND); 05780 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05781 out_operands->push_back(op_O_2); 05782 05783 //execution info 05784 einfo = execution_info::create(30); 05785 05786 //properties 05787 05788 //versions 05789 versions = set<ulint>::create(); 05790 versions->insert(INSTRUCTION_OR__1); 05791 versions->insert(INSTRUCTION_OR__11); 05792 versions->insert(INSTRUCTION_OR__12); 05793 versions->insert(INSTRUCTION_OR__13); 05794 05795 05796 //return target pseudoinstruction 05797 return tm_instr::create(INSTRUCTION_OR__14,in_operands,out_operands,lstring("or $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 05798 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_POP__1 | ( | ) |
Definition at line 8969 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_SYS, INSTRUCTION_POP__1, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, lestes::md::registers::R_ESP, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
08969 { 08970 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08971 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08972 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08973 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08974 ptr<set<tm_data_type_base::id_type> > allowed_types; 08975 ptr<execution_info> einfo; 08976 ptr<set<ulint> > versions; 08977 08978 //input operands 08979 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08980 dt_list_I_1->insert(DT_INT_32U); 08981 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08982 reg_list_I_1->insert(R_ESP); 08983 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08984 op_I_1->destroyed_by_get()->push_back(O_1); 08985 in_operands->push_back(op_I_1); 08986 08987 //output operands 08988 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08989 dt_list_O_1->insert(DT_INT_32U); 08990 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08991 reg_list_O_1->insert(R_ESP); 08992 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08993 op_O_1->destroys_set(I_1); 08994 out_operands->push_back(op_O_1); 08995 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 08996 dt_list_O_2->insert(DT_INT_8P); 08997 dt_list_O_2->insert(DT_INT_8U); 08998 dt_list_O_2->insert(DT_INT_8S); 08999 dt_list_O_2->insert(DT_INT_16U); 09000 dt_list_O_2->insert(DT_INT_16S); 09001 dt_list_O_2->insert(DT_INT_32U); 09002 dt_list_O_2->insert(DT_INT_32S); 09003 dt_list_O_2->insert(DT_COND); 09004 dt_list_O_2->insert(DT_BOOL); 09005 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 09006 reg_list_O_2->insert(R_EAX); 09007 reg_list_O_2->insert(R_EBX); 09008 reg_list_O_2->insert(R_ECX); 09009 reg_list_O_2->insert(R_EDX); 09010 reg_list_O_2->insert(R_EDI); 09011 reg_list_O_2->insert(R_ESI); 09012 reg_list_O_2->insert(R_AX); 09013 reg_list_O_2->insert(R_BX); 09014 reg_list_O_2->insert(R_CX); 09015 reg_list_O_2->insert(R_DX); 09016 reg_list_O_2->insert(R_DI); 09017 reg_list_O_2->insert(R_SI); 09018 reg_list_O_2->insert(R_AL); 09019 reg_list_O_2->insert(R_AH); 09020 reg_list_O_2->insert(R_BL); 09021 reg_list_O_2->insert(R_BH); 09022 reg_list_O_2->insert(R_CL); 09023 reg_list_O_2->insert(R_CH); 09024 reg_list_O_2->insert(R_DL); 09025 reg_list_O_2->insert(R_DH); 09026 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 09027 out_operands->push_back(op_O_2); 09028 09029 //execution info 09030 einfo = execution_info::create(15); 09031 09032 //properties 09033 09034 //versions 09035 09036 09037 //return target pseudoinstruction 09038 return tm_instr::create(INSTRUCTION_POP__1,in_operands,out_operands,lstring("pop $O_2"), props,versions,IF_SYS,einfo); 09039 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_PROLOGUE__1 | ( | ) |
Definition at line 9219 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, IF_SYS, INSTRUCTION_PROLOGUE__1, O_1, O_2, O_3, lestes::md::registers::R_EBX, lestes::md::registers::R_EDI, and lestes::md::registers::R_ESI.
Referenced by lestes::md::instructions::tm_instr::instance().
09219 { 09220 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09221 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09222 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09223 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09224 ptr<set<tm_data_type_base::id_type> > allowed_types; 09225 ptr<execution_info> einfo; 09226 ptr<set<ulint> > versions; 09227 09228 //input operands 09229 09230 //output operands 09231 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 09232 dt_list_O_1->insert(DT_INT_8P); 09233 dt_list_O_1->insert(DT_INT_8U); 09234 dt_list_O_1->insert(DT_INT_8S); 09235 dt_list_O_1->insert(DT_INT_16U); 09236 dt_list_O_1->insert(DT_INT_16S); 09237 dt_list_O_1->insert(DT_INT_32U); 09238 dt_list_O_1->insert(DT_INT_32S); 09239 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 09240 reg_list_O_1->insert(R_EDI); 09241 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 09242 out_operands->push_back(op_O_1); 09243 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 09244 dt_list_O_2->insert(DT_INT_8P); 09245 dt_list_O_2->insert(DT_INT_8U); 09246 dt_list_O_2->insert(DT_INT_8S); 09247 dt_list_O_2->insert(DT_INT_16U); 09248 dt_list_O_2->insert(DT_INT_16S); 09249 dt_list_O_2->insert(DT_INT_32U); 09250 dt_list_O_2->insert(DT_INT_32S); 09251 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 09252 reg_list_O_2->insert(R_ESI); 09253 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 09254 out_operands->push_back(op_O_2); 09255 ptr<set<tm_data_type_base::id_type> > dt_list_O_3 = set<tm_data_type_base::id_type>::create(); 09256 dt_list_O_3->insert(DT_INT_8P); 09257 dt_list_O_3->insert(DT_INT_8U); 09258 dt_list_O_3->insert(DT_INT_8S); 09259 dt_list_O_3->insert(DT_INT_16U); 09260 dt_list_O_3->insert(DT_INT_16S); 09261 dt_list_O_3->insert(DT_INT_32U); 09262 dt_list_O_3->insert(DT_INT_32S); 09263 ptr<set<tm_register_base::id_type> > reg_list_O_3 = set<tm_register_base::id_type>::create(); 09264 reg_list_O_3->insert(R_EBX); 09265 ptr<tm_instr_op_reg> op_O_3 = tm_instr_op_reg::create(O_3, dt_list_O_3, reg_list_O_3); 09266 out_operands->push_back(op_O_3); 09267 09268 //execution info 09269 einfo = execution_info::create(0); 09270 09271 //properties 09272 09273 //versions 09274 09275 09276 //return target pseudoinstruction 09277 return tm_instr::create(INSTRUCTION_PROLOGUE__1,in_operands,out_operands,lstring(""), props,versions,IF_SYS,einfo); 09278 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_PUSH__1 | ( | ) |
Definition at line 8801 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, I_1, I_2, IF_STORE, IF_SYS, INSTRUCTION_PUSH__1, INSTRUCTION_PUSH__2, INSTRUCTION_PUSH__3, O_1, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
08801 { 08802 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08803 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08804 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08805 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08806 ptr<set<tm_data_type_base::id_type> > allowed_types; 08807 ptr<execution_info> einfo; 08808 ptr<set<ulint> > versions; 08809 08810 //input operands 08811 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08812 dt_list_I_1->insert(DT_INT_32U); 08813 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08814 reg_list_I_1->insert(R_ESP); 08815 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08816 op_I_1->destroyed_by_get()->push_back(O_1); 08817 in_operands->push_back(op_I_1); 08818 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 08819 dt_list_I_2->insert(DT_INT_32U); 08820 dt_list_I_2->insert(DT_INT_32S); 08821 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 08822 in_operands->push_back(op_I_2); 08823 08824 //output operands 08825 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08826 dt_list_O_1->insert(DT_INT_32U); 08827 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08828 reg_list_O_1->insert(R_ESP); 08829 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08830 op_O_1->destroys_set(I_1); 08831 out_operands->push_back(op_O_1); 08832 08833 //execution info 08834 einfo = execution_info::create(15); 08835 08836 //properties 08837 08838 //versions 08839 versions = set<ulint>::create(); 08840 versions->insert(INSTRUCTION_PUSH__2); 08841 versions->insert(INSTRUCTION_PUSH__3); 08842 08843 08844 //return target pseudoinstruction 08845 return tm_instr::create(INSTRUCTION_PUSH__1,in_operands,out_operands,lstring("push $TYPE_I_2 $I_2"), props,versions,IF_STORE | IF_SYS,einfo); 08846 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_PUSH__2 | ( | ) |
Definition at line 8848 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, I_1, I_2, IF_STORE, IF_SYS, INSTRUCTION_PUSH__1, INSTRUCTION_PUSH__2, INSTRUCTION_PUSH__3, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, lestes::md::registers::R_ESP, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
08848 { 08849 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08850 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08851 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08852 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08853 ptr<set<tm_data_type_base::id_type> > allowed_types; 08854 ptr<execution_info> einfo; 08855 ptr<set<ulint> > versions; 08856 08857 //input operands 08858 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08859 dt_list_I_1->insert(DT_INT_32U); 08860 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08861 reg_list_I_1->insert(R_ESP); 08862 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08863 op_I_1->destroyed_by_get()->push_back(O_1); 08864 in_operands->push_back(op_I_1); 08865 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 08866 dt_list_I_2->insert(DT_INT_32U); 08867 dt_list_I_2->insert(DT_INT_32S); 08868 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 08869 reg_list_I_2->insert(R_EAX); 08870 reg_list_I_2->insert(R_EBX); 08871 reg_list_I_2->insert(R_ECX); 08872 reg_list_I_2->insert(R_EDX); 08873 reg_list_I_2->insert(R_EDI); 08874 reg_list_I_2->insert(R_ESI); 08875 reg_list_I_2->insert(R_AX); 08876 reg_list_I_2->insert(R_BX); 08877 reg_list_I_2->insert(R_CX); 08878 reg_list_I_2->insert(R_DX); 08879 reg_list_I_2->insert(R_DI); 08880 reg_list_I_2->insert(R_SI); 08881 reg_list_I_2->insert(R_AL); 08882 reg_list_I_2->insert(R_AH); 08883 reg_list_I_2->insert(R_BL); 08884 reg_list_I_2->insert(R_BH); 08885 reg_list_I_2->insert(R_CL); 08886 reg_list_I_2->insert(R_CH); 08887 reg_list_I_2->insert(R_DL); 08888 reg_list_I_2->insert(R_DH); 08889 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 08890 in_operands->push_back(op_I_2); 08891 08892 //output operands 08893 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08894 dt_list_O_1->insert(DT_INT_32U); 08895 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08896 reg_list_O_1->insert(R_ESP); 08897 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08898 op_O_1->destroys_set(I_1); 08899 out_operands->push_back(op_O_1); 08900 08901 //execution info 08902 einfo = execution_info::create(15); 08903 08904 //properties 08905 08906 //versions 08907 versions = set<ulint>::create(); 08908 versions->insert(INSTRUCTION_PUSH__1); 08909 versions->insert(INSTRUCTION_PUSH__3); 08910 08911 08912 //return target pseudoinstruction 08913 return tm_instr::create(INSTRUCTION_PUSH__2,in_operands,out_operands,lstring("push $I_2"), props,versions,IF_STORE | IF_SYS,einfo); 08914 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_PUSH__3 | ( | ) |
Definition at line 8916 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, IF_STORE, IF_SYS, INSTRUCTION_PUSH__1, INSTRUCTION_PUSH__2, INSTRUCTION_PUSH__3, O_1, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
08916 { 08917 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08918 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08919 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08920 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08921 ptr<set<tm_data_type_base::id_type> > allowed_types; 08922 ptr<execution_info> einfo; 08923 ptr<set<ulint> > versions; 08924 08925 //input operands 08926 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08927 dt_list_I_1->insert(DT_INT_32U); 08928 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08929 reg_list_I_1->insert(R_ESP); 08930 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08931 op_I_1->destroyed_by_get()->push_back(O_1); 08932 in_operands->push_back(op_I_1); 08933 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 08934 dt_list_I_2->insert(DT_INT_8P); 08935 dt_list_I_2->insert(DT_INT_8U); 08936 dt_list_I_2->insert(DT_INT_8S); 08937 dt_list_I_2->insert(DT_INT_16U); 08938 dt_list_I_2->insert(DT_INT_16S); 08939 dt_list_I_2->insert(DT_INT_32U); 08940 dt_list_I_2->insert(DT_INT_32S); 08941 dt_list_I_2->insert(DT_BOOL); 08942 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 08943 in_operands->push_back(op_I_2); 08944 08945 //output operands 08946 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08947 dt_list_O_1->insert(DT_INT_32U); 08948 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08949 reg_list_O_1->insert(R_ESP); 08950 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08951 op_O_1->destroys_set(I_1); 08952 out_operands->push_back(op_O_1); 08953 08954 //execution info 08955 einfo = execution_info::create(15); 08956 08957 //properties 08958 08959 //versions 08960 versions = set<ulint>::create(); 08961 versions->insert(INSTRUCTION_PUSH__1); 08962 versions->insert(INSTRUCTION_PUSH__2); 08963 08964 08965 //return target pseudoinstruction 08966 return tm_instr::create(INSTRUCTION_PUSH__3,in_operands,out_operands,lstring("push DWORD $I_2"), props,versions,IF_STORE | IF_SYS,einfo); 08967 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_RET__1 | ( | ) |
Definition at line 9366 of file tm_instr.mdg.cc.
References IF_SYS, and INSTRUCTION_RET__1.
Referenced by lestes::md::instructions::tm_instr::instance().
09366 { 09367 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 09368 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 09369 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 09370 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 09371 ptr<set<tm_data_type_base::id_type> > allowed_types; 09372 ptr<execution_info> einfo; 09373 ptr<set<ulint> > versions; 09374 09375 //input operands 09376 09377 //output operands 09378 09379 //execution info 09380 einfo = execution_info::create(80); 09381 09382 //properties 09383 09384 //versions 09385 09386 09387 //return target pseudoinstruction 09388 return tm_instr::create(INSTRUCTION_RET__1,in_operands,out_operands,lstring("ret"), props,versions,IF_SYS,einfo); 09389 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SAHF__1 | ( | ) |
Definition at line 890 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, I_1, INSTRUCTION_SAHF__1, O_1, lestes::md::registers::R_AH, and lestes::md::registers::R_COND.
Referenced by lestes::md::instructions::tm_instr::instance().
00890 { 00891 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00892 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00893 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00894 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00895 ptr<set<tm_data_type_base::id_type> > allowed_types; 00896 ptr<execution_info> einfo; 00897 ptr<set<ulint> > versions; 00898 00899 //input operands 00900 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00901 dt_list_I_1->insert(DT_COND); 00902 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00903 reg_list_I_1->insert(R_AH); 00904 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00905 in_operands->push_back(op_I_1); 00906 00907 //output operands 00908 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00909 dt_list_O_1->insert(DT_COND); 00910 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00911 reg_list_O_1->insert(R_COND); 00912 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00913 out_operands->push_back(op_O_1); 00914 00915 //execution info 00916 einfo = execution_info::create(10); 00917 00918 //properties 00919 00920 //versions 00921 00922 00923 //return target pseudoinstruction 00924 return tm_instr::create(INSTRUCTION_SAHF__1,in_operands,out_operands,lstring("sahf"), props,versions,0,einfo); 00925 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SAL__1 | ( | ) |
Definition at line 4337 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SAL__1, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04337 { 04338 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04339 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04340 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04341 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04342 ptr<set<tm_data_type_base::id_type> > allowed_types; 04343 ptr<execution_info> einfo; 04344 ptr<set<ulint> > versions; 04345 04346 //input operands 04347 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04348 dt_list_I_1->insert(DT_INT_8P); 04349 dt_list_I_1->insert(DT_INT_8U); 04350 dt_list_I_1->insert(DT_INT_8S); 04351 dt_list_I_1->insert(DT_INT_16U); 04352 dt_list_I_1->insert(DT_INT_16S); 04353 dt_list_I_1->insert(DT_INT_32U); 04354 dt_list_I_1->insert(DT_INT_32S); 04355 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04356 reg_list_I_1->insert(R_EAX); 04357 reg_list_I_1->insert(R_EBX); 04358 reg_list_I_1->insert(R_ECX); 04359 reg_list_I_1->insert(R_EDX); 04360 reg_list_I_1->insert(R_EDI); 04361 reg_list_I_1->insert(R_ESI); 04362 reg_list_I_1->insert(R_AX); 04363 reg_list_I_1->insert(R_BX); 04364 reg_list_I_1->insert(R_CX); 04365 reg_list_I_1->insert(R_DX); 04366 reg_list_I_1->insert(R_DI); 04367 reg_list_I_1->insert(R_SI); 04368 reg_list_I_1->insert(R_AL); 04369 reg_list_I_1->insert(R_AH); 04370 reg_list_I_1->insert(R_BL); 04371 reg_list_I_1->insert(R_BH); 04372 reg_list_I_1->insert(R_CL); 04373 reg_list_I_1->insert(R_CH); 04374 reg_list_I_1->insert(R_DL); 04375 reg_list_I_1->insert(R_DH); 04376 reg_list_I_1->erase(R_CL); 04377 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04378 op_I_1->destroyed_by_get()->push_back(O_1); 04379 in_operands->push_back(op_I_1); 04380 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04381 dt_list_I_2->insert(DT_INT_8P); 04382 dt_list_I_2->insert(DT_INT_8U); 04383 dt_list_I_2->insert(DT_INT_8S); 04384 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 04385 reg_list_I_2->insert(R_CL); 04386 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 04387 in_operands->push_back(op_I_2); 04388 04389 //output operands 04390 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04391 dt_list_O_1->insert(DT_INT_8P); 04392 dt_list_O_1->insert(DT_INT_8U); 04393 dt_list_O_1->insert(DT_INT_8S); 04394 dt_list_O_1->insert(DT_INT_16U); 04395 dt_list_O_1->insert(DT_INT_16S); 04396 dt_list_O_1->insert(DT_INT_32U); 04397 dt_list_O_1->insert(DT_INT_32S); 04398 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04399 reg_list_O_1->insert(R_EAX); 04400 reg_list_O_1->insert(R_EBX); 04401 reg_list_O_1->insert(R_ECX); 04402 reg_list_O_1->insert(R_EDX); 04403 reg_list_O_1->insert(R_EDI); 04404 reg_list_O_1->insert(R_ESI); 04405 reg_list_O_1->insert(R_AX); 04406 reg_list_O_1->insert(R_BX); 04407 reg_list_O_1->insert(R_CX); 04408 reg_list_O_1->insert(R_DX); 04409 reg_list_O_1->insert(R_DI); 04410 reg_list_O_1->insert(R_SI); 04411 reg_list_O_1->insert(R_AL); 04412 reg_list_O_1->insert(R_AH); 04413 reg_list_O_1->insert(R_BL); 04414 reg_list_O_1->insert(R_BH); 04415 reg_list_O_1->insert(R_CL); 04416 reg_list_O_1->insert(R_CH); 04417 reg_list_O_1->insert(R_DL); 04418 reg_list_O_1->insert(R_DH); 04419 reg_list_O_1->erase(R_CL); 04420 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04421 op_O_1->destroys_set(I_1); 04422 out_operands->push_back(op_O_1); 04423 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04424 dt_list_O_2->insert(DT_COND); 04425 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04426 reg_list_O_2->insert(R_COND); 04427 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04428 out_operands->push_back(op_O_2); 04429 04430 //execution info 04431 einfo = execution_info::create(10); 04432 04433 //properties 04434 04435 //versions 04436 04437 04438 //return target pseudoinstruction 04439 return tm_instr::create(INSTRUCTION_SAL__1,in_operands,out_operands,lstring("sal $I_1, $I_2"), props,versions,0,einfo); 04440 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SAR__1 | ( | ) |
Definition at line 4442 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SAR__1, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04442 { 04443 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04444 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04445 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04446 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04447 ptr<set<tm_data_type_base::id_type> > allowed_types; 04448 ptr<execution_info> einfo; 04449 ptr<set<ulint> > versions; 04450 04451 //input operands 04452 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04453 dt_list_I_1->insert(DT_INT_8P); 04454 dt_list_I_1->insert(DT_INT_8U); 04455 dt_list_I_1->insert(DT_INT_8S); 04456 dt_list_I_1->insert(DT_INT_16U); 04457 dt_list_I_1->insert(DT_INT_16S); 04458 dt_list_I_1->insert(DT_INT_32U); 04459 dt_list_I_1->insert(DT_INT_32S); 04460 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04461 reg_list_I_1->insert(R_EAX); 04462 reg_list_I_1->insert(R_EBX); 04463 reg_list_I_1->insert(R_ECX); 04464 reg_list_I_1->insert(R_EDX); 04465 reg_list_I_1->insert(R_EDI); 04466 reg_list_I_1->insert(R_ESI); 04467 reg_list_I_1->insert(R_AX); 04468 reg_list_I_1->insert(R_BX); 04469 reg_list_I_1->insert(R_CX); 04470 reg_list_I_1->insert(R_DX); 04471 reg_list_I_1->insert(R_DI); 04472 reg_list_I_1->insert(R_SI); 04473 reg_list_I_1->insert(R_AL); 04474 reg_list_I_1->insert(R_AH); 04475 reg_list_I_1->insert(R_BL); 04476 reg_list_I_1->insert(R_BH); 04477 reg_list_I_1->insert(R_CL); 04478 reg_list_I_1->insert(R_CH); 04479 reg_list_I_1->insert(R_DL); 04480 reg_list_I_1->insert(R_DH); 04481 reg_list_I_1->erase(R_CL); 04482 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04483 op_I_1->destroyed_by_get()->push_back(O_1); 04484 in_operands->push_back(op_I_1); 04485 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04486 dt_list_I_2->insert(DT_INT_8P); 04487 dt_list_I_2->insert(DT_INT_8U); 04488 dt_list_I_2->insert(DT_INT_8S); 04489 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 04490 reg_list_I_2->insert(R_CL); 04491 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 04492 in_operands->push_back(op_I_2); 04493 04494 //output operands 04495 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04496 dt_list_O_1->insert(DT_INT_8P); 04497 dt_list_O_1->insert(DT_INT_8U); 04498 dt_list_O_1->insert(DT_INT_8S); 04499 dt_list_O_1->insert(DT_INT_16U); 04500 dt_list_O_1->insert(DT_INT_16S); 04501 dt_list_O_1->insert(DT_INT_32U); 04502 dt_list_O_1->insert(DT_INT_32S); 04503 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04504 reg_list_O_1->insert(R_EAX); 04505 reg_list_O_1->insert(R_EBX); 04506 reg_list_O_1->insert(R_ECX); 04507 reg_list_O_1->insert(R_EDX); 04508 reg_list_O_1->insert(R_EDI); 04509 reg_list_O_1->insert(R_ESI); 04510 reg_list_O_1->insert(R_AX); 04511 reg_list_O_1->insert(R_BX); 04512 reg_list_O_1->insert(R_CX); 04513 reg_list_O_1->insert(R_DX); 04514 reg_list_O_1->insert(R_DI); 04515 reg_list_O_1->insert(R_SI); 04516 reg_list_O_1->insert(R_AL); 04517 reg_list_O_1->insert(R_AH); 04518 reg_list_O_1->insert(R_BL); 04519 reg_list_O_1->insert(R_BH); 04520 reg_list_O_1->insert(R_CL); 04521 reg_list_O_1->insert(R_CH); 04522 reg_list_O_1->insert(R_DL); 04523 reg_list_O_1->insert(R_DH); 04524 reg_list_O_1->erase(R_CL); 04525 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04526 op_O_1->destroys_set(I_1); 04527 out_operands->push_back(op_O_1); 04528 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04529 dt_list_O_2->insert(DT_COND); 04530 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04531 reg_list_O_2->insert(R_COND); 04532 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04533 out_operands->push_back(op_O_2); 04534 04535 //execution info 04536 einfo = execution_info::create(10); 04537 04538 //properties 04539 04540 //versions 04541 04542 04543 //return target pseudoinstruction 04544 return tm_instr::create(INSTRUCTION_SAR__1,in_operands,out_operands,lstring("sar $I_1, $I_2"), props,versions,0,einfo); 04545 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETA__1 | ( | ) |
Definition at line 8355 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETA__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08355 { 08356 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08357 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08358 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08359 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08360 ptr<set<tm_data_type_base::id_type> > allowed_types; 08361 ptr<execution_info> einfo; 08362 ptr<set<ulint> > versions; 08363 08364 //input operands 08365 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08366 dt_list_I_1->insert(DT_COND); 08367 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08368 reg_list_I_1->insert(R_COND); 08369 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08370 in_operands->push_back(op_I_1); 08371 08372 //output operands 08373 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08374 dt_list_O_1->insert(DT_BOOL); 08375 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08376 reg_list_O_1->insert(R_AL); 08377 reg_list_O_1->insert(R_AH); 08378 reg_list_O_1->insert(R_BL); 08379 reg_list_O_1->insert(R_BH); 08380 reg_list_O_1->insert(R_CL); 08381 reg_list_O_1->insert(R_CH); 08382 reg_list_O_1->insert(R_DL); 08383 reg_list_O_1->insert(R_DH); 08384 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08385 out_operands->push_back(op_O_1); 08386 08387 //execution info 08388 einfo = execution_info::create(50); 08389 08390 //properties 08391 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"false")); 08392 08393 //versions 08394 08395 08396 //return target pseudoinstruction 08397 return tm_instr::create(INSTRUCTION_SETA__1,in_operands,out_operands,lstring("seta $O_1"), props,versions,0,einfo); 08398 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETB__1 | ( | ) |
Definition at line 8445 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETB__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08445 { 08446 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08447 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08448 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08449 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08450 ptr<set<tm_data_type_base::id_type> > allowed_types; 08451 ptr<execution_info> einfo; 08452 ptr<set<ulint> > versions; 08453 08454 //input operands 08455 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08456 dt_list_I_1->insert(DT_COND); 08457 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08458 reg_list_I_1->insert(R_COND); 08459 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08460 in_operands->push_back(op_I_1); 08461 08462 //output operands 08463 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08464 dt_list_O_1->insert(DT_BOOL); 08465 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08466 reg_list_O_1->insert(R_AL); 08467 reg_list_O_1->insert(R_AH); 08468 reg_list_O_1->insert(R_BL); 08469 reg_list_O_1->insert(R_BH); 08470 reg_list_O_1->insert(R_CL); 08471 reg_list_O_1->insert(R_CH); 08472 reg_list_O_1->insert(R_DL); 08473 reg_list_O_1->insert(R_DH); 08474 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08475 out_operands->push_back(op_O_1); 08476 08477 //execution info 08478 einfo = execution_info::create(50); 08479 08480 //properties 08481 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"false")); 08482 08483 //versions 08484 08485 08486 //return target pseudoinstruction 08487 return tm_instr::create(INSTRUCTION_SETB__1,in_operands,out_operands,lstring("setb $O_1"), props,versions,0,einfo); 08488 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETE__1 | ( | ) |
Definition at line 8490 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETE__1, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08490 { 08491 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08492 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08493 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08494 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08495 ptr<set<tm_data_type_base::id_type> > allowed_types; 08496 ptr<execution_info> einfo; 08497 ptr<set<ulint> > versions; 08498 08499 //input operands 08500 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08501 dt_list_I_1->insert(DT_COND); 08502 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08503 reg_list_I_1->insert(R_COND); 08504 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08505 in_operands->push_back(op_I_1); 08506 08507 //output operands 08508 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08509 dt_list_O_1->insert(DT_BOOL); 08510 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08511 reg_list_O_1->insert(R_AL); 08512 reg_list_O_1->insert(R_AH); 08513 reg_list_O_1->insert(R_BL); 08514 reg_list_O_1->insert(R_BH); 08515 reg_list_O_1->insert(R_CL); 08516 reg_list_O_1->insert(R_CH); 08517 reg_list_O_1->insert(R_DL); 08518 reg_list_O_1->insert(R_DH); 08519 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08520 out_operands->push_back(op_O_1); 08521 08522 //execution info 08523 einfo = execution_info::create(50); 08524 08525 //properties 08526 08527 //versions 08528 08529 08530 //return target pseudoinstruction 08531 return tm_instr::create(INSTRUCTION_SETE__1,in_operands,out_operands,lstring("sete $O_1"), props,versions,0,einfo); 08532 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETG__1 | ( | ) |
Definition at line 8310 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETG__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08310 { 08311 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08312 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08313 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08314 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08315 ptr<set<tm_data_type_base::id_type> > allowed_types; 08316 ptr<execution_info> einfo; 08317 ptr<set<ulint> > versions; 08318 08319 //input operands 08320 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08321 dt_list_I_1->insert(DT_COND); 08322 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08323 reg_list_I_1->insert(R_COND); 08324 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08325 in_operands->push_back(op_I_1); 08326 08327 //output operands 08328 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08329 dt_list_O_1->insert(DT_BOOL); 08330 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08331 reg_list_O_1->insert(R_AL); 08332 reg_list_O_1->insert(R_AH); 08333 reg_list_O_1->insert(R_BL); 08334 reg_list_O_1->insert(R_BH); 08335 reg_list_O_1->insert(R_CL); 08336 reg_list_O_1->insert(R_CH); 08337 reg_list_O_1->insert(R_DL); 08338 reg_list_O_1->insert(R_DH); 08339 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08340 out_operands->push_back(op_O_1); 08341 08342 //execution info 08343 einfo = execution_info::create(50); 08344 08345 //properties 08346 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08347 08348 //versions 08349 08350 08351 //return target pseudoinstruction 08352 return tm_instr::create(INSTRUCTION_SETG__1,in_operands,out_operands,lstring("setg $O_1"), props,versions,0,einfo); 08353 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETL__1 | ( | ) |
Definition at line 8400 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETL__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08400 { 08401 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08402 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08403 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08404 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08405 ptr<set<tm_data_type_base::id_type> > allowed_types; 08406 ptr<execution_info> einfo; 08407 ptr<set<ulint> > versions; 08408 08409 //input operands 08410 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08411 dt_list_I_1->insert(DT_COND); 08412 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08413 reg_list_I_1->insert(R_COND); 08414 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08415 in_operands->push_back(op_I_1); 08416 08417 //output operands 08418 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08419 dt_list_O_1->insert(DT_BOOL); 08420 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08421 reg_list_O_1->insert(R_AL); 08422 reg_list_O_1->insert(R_AH); 08423 reg_list_O_1->insert(R_BL); 08424 reg_list_O_1->insert(R_BH); 08425 reg_list_O_1->insert(R_CL); 08426 reg_list_O_1->insert(R_CH); 08427 reg_list_O_1->insert(R_DL); 08428 reg_list_O_1->insert(R_DH); 08429 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08430 out_operands->push_back(op_O_1); 08431 08432 //execution info 08433 einfo = execution_info::create(50); 08434 08435 //properties 08436 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08437 08438 //versions 08439 08440 08441 //return target pseudoinstruction 08442 return tm_instr::create(INSTRUCTION_SETL__1,in_operands,out_operands,lstring("setl $O_1"), props,versions,0,einfo); 08443 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETNA__1 | ( | ) |
Definition at line 8579 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETNA__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08579 { 08580 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08581 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08582 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08583 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08584 ptr<set<tm_data_type_base::id_type> > allowed_types; 08585 ptr<execution_info> einfo; 08586 ptr<set<ulint> > versions; 08587 08588 //input operands 08589 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08590 dt_list_I_1->insert(DT_COND); 08591 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08592 reg_list_I_1->insert(R_COND); 08593 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08594 in_operands->push_back(op_I_1); 08595 08596 //output operands 08597 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08598 dt_list_O_1->insert(DT_BOOL); 08599 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08600 reg_list_O_1->insert(R_AL); 08601 reg_list_O_1->insert(R_AH); 08602 reg_list_O_1->insert(R_BL); 08603 reg_list_O_1->insert(R_BH); 08604 reg_list_O_1->insert(R_CL); 08605 reg_list_O_1->insert(R_CH); 08606 reg_list_O_1->insert(R_DL); 08607 reg_list_O_1->insert(R_DH); 08608 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08609 out_operands->push_back(op_O_1); 08610 08611 //execution info 08612 einfo = execution_info::create(50); 08613 08614 //properties 08615 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"false")); 08616 08617 //versions 08618 08619 08620 //return target pseudoinstruction 08621 return tm_instr::create(INSTRUCTION_SETNA__1,in_operands,out_operands,lstring("setna $O_1"), props,versions,0,einfo); 08622 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETNB__1 | ( | ) |
Definition at line 8669 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETNB__1, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08669 { 08670 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08671 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08672 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08673 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08674 ptr<set<tm_data_type_base::id_type> > allowed_types; 08675 ptr<execution_info> einfo; 08676 ptr<set<ulint> > versions; 08677 08678 //input operands 08679 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08680 dt_list_I_1->insert(DT_COND); 08681 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08682 reg_list_I_1->insert(R_COND); 08683 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08684 in_operands->push_back(op_I_1); 08685 08686 //output operands 08687 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08688 dt_list_O_1->insert(DT_BOOL); 08689 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08690 reg_list_O_1->insert(R_AL); 08691 reg_list_O_1->insert(R_AH); 08692 reg_list_O_1->insert(R_BL); 08693 reg_list_O_1->insert(R_BH); 08694 reg_list_O_1->insert(R_CL); 08695 reg_list_O_1->insert(R_CH); 08696 reg_list_O_1->insert(R_DL); 08697 reg_list_O_1->insert(R_DH); 08698 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08699 out_operands->push_back(op_O_1); 08700 08701 //execution info 08702 einfo = execution_info::create(50); 08703 08704 //properties 08705 08706 //versions 08707 08708 08709 //return target pseudoinstruction 08710 return tm_instr::create(INSTRUCTION_SETNB__1,in_operands,out_operands,lstring("setnb $O_1"), props,versions,0,einfo); 08711 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETNE__1 | ( | ) |
Definition at line 8713 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETNE__1, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08713 { 08714 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08715 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08716 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08717 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08718 ptr<set<tm_data_type_base::id_type> > allowed_types; 08719 ptr<execution_info> einfo; 08720 ptr<set<ulint> > versions; 08721 08722 //input operands 08723 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08724 dt_list_I_1->insert(DT_COND); 08725 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08726 reg_list_I_1->insert(R_COND); 08727 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08728 in_operands->push_back(op_I_1); 08729 08730 //output operands 08731 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08732 dt_list_O_1->insert(DT_BOOL); 08733 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08734 reg_list_O_1->insert(R_AL); 08735 reg_list_O_1->insert(R_AH); 08736 reg_list_O_1->insert(R_BL); 08737 reg_list_O_1->insert(R_BH); 08738 reg_list_O_1->insert(R_CL); 08739 reg_list_O_1->insert(R_CH); 08740 reg_list_O_1->insert(R_DL); 08741 reg_list_O_1->insert(R_DH); 08742 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08743 out_operands->push_back(op_O_1); 08744 08745 //execution info 08746 einfo = execution_info::create(50); 08747 08748 //properties 08749 08750 //versions 08751 08752 08753 //return target pseudoinstruction 08754 return tm_instr::create(INSTRUCTION_SETNE__1,in_operands,out_operands,lstring("setne $O_1"), props,versions,0,einfo); 08755 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETNG__1 | ( | ) |
Definition at line 8534 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETNG__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08534 { 08535 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08536 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08537 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08538 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08539 ptr<set<tm_data_type_base::id_type> > allowed_types; 08540 ptr<execution_info> einfo; 08541 ptr<set<ulint> > versions; 08542 08543 //input operands 08544 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08545 dt_list_I_1->insert(DT_COND); 08546 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08547 reg_list_I_1->insert(R_COND); 08548 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08549 in_operands->push_back(op_I_1); 08550 08551 //output operands 08552 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08553 dt_list_O_1->insert(DT_BOOL); 08554 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08555 reg_list_O_1->insert(R_AL); 08556 reg_list_O_1->insert(R_AH); 08557 reg_list_O_1->insert(R_BL); 08558 reg_list_O_1->insert(R_BH); 08559 reg_list_O_1->insert(R_CL); 08560 reg_list_O_1->insert(R_CH); 08561 reg_list_O_1->insert(R_DL); 08562 reg_list_O_1->insert(R_DH); 08563 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08564 out_operands->push_back(op_O_1); 08565 08566 //execution info 08567 einfo = execution_info::create(50); 08568 08569 //properties 08570 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08571 08572 //versions 08573 08574 08575 //return target pseudoinstruction 08576 return tm_instr::create(INSTRUCTION_SETNG__1,in_operands,out_operands,lstring("setng $O_1"), props,versions,0,einfo); 08577 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETNL__1 | ( | ) |
Definition at line 8624 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETNL__1, O_1, PROPERTY_TEST_SIGNED, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08624 { 08625 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08626 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08627 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08628 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08629 ptr<set<tm_data_type_base::id_type> > allowed_types; 08630 ptr<execution_info> einfo; 08631 ptr<set<ulint> > versions; 08632 08633 //input operands 08634 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08635 dt_list_I_1->insert(DT_COND); 08636 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08637 reg_list_I_1->insert(R_COND); 08638 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08639 in_operands->push_back(op_I_1); 08640 08641 //output operands 08642 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08643 dt_list_O_1->insert(DT_BOOL); 08644 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08645 reg_list_O_1->insert(R_AL); 08646 reg_list_O_1->insert(R_AH); 08647 reg_list_O_1->insert(R_BL); 08648 reg_list_O_1->insert(R_BH); 08649 reg_list_O_1->insert(R_CL); 08650 reg_list_O_1->insert(R_CH); 08651 reg_list_O_1->insert(R_DL); 08652 reg_list_O_1->insert(R_DH); 08653 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08654 out_operands->push_back(op_O_1); 08655 08656 //execution info 08657 einfo = execution_info::create(50); 08658 08659 //properties 08660 props->insert(::std::pair<ulint, lstring>(PROPERTY_TEST_SIGNED,"true")); 08661 08662 //versions 08663 08664 08665 //return target pseudoinstruction 08666 return tm_instr::create(INSTRUCTION_SETNL__1,in_operands,out_operands,lstring("setnl $O_1"), props,versions,0,einfo); 08667 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SETNZ__1 | ( | ) |
Definition at line 8757 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, I_1, INSTRUCTION_SETNZ__1, O_1, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_DH, and lestes::md::registers::R_DL.
Referenced by lestes::md::instructions::tm_instr::instance().
08757 { 08758 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 08759 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 08760 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 08761 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 08762 ptr<set<tm_data_type_base::id_type> > allowed_types; 08763 ptr<execution_info> einfo; 08764 ptr<set<ulint> > versions; 08765 08766 //input operands 08767 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 08768 dt_list_I_1->insert(DT_COND); 08769 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 08770 reg_list_I_1->insert(R_COND); 08771 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 08772 in_operands->push_back(op_I_1); 08773 08774 //output operands 08775 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 08776 dt_list_O_1->insert(DT_BOOL); 08777 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 08778 reg_list_O_1->insert(R_AL); 08779 reg_list_O_1->insert(R_AH); 08780 reg_list_O_1->insert(R_BL); 08781 reg_list_O_1->insert(R_BH); 08782 reg_list_O_1->insert(R_CL); 08783 reg_list_O_1->insert(R_CH); 08784 reg_list_O_1->insert(R_DL); 08785 reg_list_O_1->insert(R_DH); 08786 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 08787 out_operands->push_back(op_O_1); 08788 08789 //execution info 08790 einfo = execution_info::create(50); 08791 08792 //properties 08793 08794 //versions 08795 08796 08797 //return target pseudoinstruction 08798 return tm_instr::create(INSTRUCTION_SETNZ__1,in_operands,out_operands,lstring("setnz $O_1"), props,versions,0,einfo); 08799 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SHL__1 | ( | ) |
Definition at line 4127 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SHL__1, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04127 { 04128 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04129 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04130 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04131 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04132 ptr<set<tm_data_type_base::id_type> > allowed_types; 04133 ptr<execution_info> einfo; 04134 ptr<set<ulint> > versions; 04135 04136 //input operands 04137 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04138 dt_list_I_1->insert(DT_INT_8P); 04139 dt_list_I_1->insert(DT_INT_8U); 04140 dt_list_I_1->insert(DT_INT_8S); 04141 dt_list_I_1->insert(DT_INT_16U); 04142 dt_list_I_1->insert(DT_INT_16S); 04143 dt_list_I_1->insert(DT_INT_32U); 04144 dt_list_I_1->insert(DT_INT_32S); 04145 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04146 reg_list_I_1->insert(R_EAX); 04147 reg_list_I_1->insert(R_EBX); 04148 reg_list_I_1->insert(R_ECX); 04149 reg_list_I_1->insert(R_EDX); 04150 reg_list_I_1->insert(R_EDI); 04151 reg_list_I_1->insert(R_ESI); 04152 reg_list_I_1->insert(R_AX); 04153 reg_list_I_1->insert(R_BX); 04154 reg_list_I_1->insert(R_CX); 04155 reg_list_I_1->insert(R_DX); 04156 reg_list_I_1->insert(R_DI); 04157 reg_list_I_1->insert(R_SI); 04158 reg_list_I_1->insert(R_AL); 04159 reg_list_I_1->insert(R_AH); 04160 reg_list_I_1->insert(R_BL); 04161 reg_list_I_1->insert(R_BH); 04162 reg_list_I_1->insert(R_CL); 04163 reg_list_I_1->insert(R_CH); 04164 reg_list_I_1->insert(R_DL); 04165 reg_list_I_1->insert(R_DH); 04166 reg_list_I_1->erase(R_CL); 04167 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04168 op_I_1->destroyed_by_get()->push_back(O_1); 04169 in_operands->push_back(op_I_1); 04170 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04171 dt_list_I_2->insert(DT_INT_8P); 04172 dt_list_I_2->insert(DT_INT_8U); 04173 dt_list_I_2->insert(DT_INT_8S); 04174 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 04175 reg_list_I_2->insert(R_CL); 04176 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 04177 in_operands->push_back(op_I_2); 04178 04179 //output operands 04180 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04181 dt_list_O_1->insert(DT_INT_8P); 04182 dt_list_O_1->insert(DT_INT_8U); 04183 dt_list_O_1->insert(DT_INT_8S); 04184 dt_list_O_1->insert(DT_INT_16U); 04185 dt_list_O_1->insert(DT_INT_16S); 04186 dt_list_O_1->insert(DT_INT_32U); 04187 dt_list_O_1->insert(DT_INT_32S); 04188 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04189 reg_list_O_1->insert(R_EAX); 04190 reg_list_O_1->insert(R_EBX); 04191 reg_list_O_1->insert(R_ECX); 04192 reg_list_O_1->insert(R_EDX); 04193 reg_list_O_1->insert(R_EDI); 04194 reg_list_O_1->insert(R_ESI); 04195 reg_list_O_1->insert(R_AX); 04196 reg_list_O_1->insert(R_BX); 04197 reg_list_O_1->insert(R_CX); 04198 reg_list_O_1->insert(R_DX); 04199 reg_list_O_1->insert(R_DI); 04200 reg_list_O_1->insert(R_SI); 04201 reg_list_O_1->insert(R_AL); 04202 reg_list_O_1->insert(R_AH); 04203 reg_list_O_1->insert(R_BL); 04204 reg_list_O_1->insert(R_BH); 04205 reg_list_O_1->insert(R_CL); 04206 reg_list_O_1->insert(R_CH); 04207 reg_list_O_1->insert(R_DL); 04208 reg_list_O_1->insert(R_DH); 04209 reg_list_O_1->erase(R_CL); 04210 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04211 op_O_1->destroys_set(I_1); 04212 out_operands->push_back(op_O_1); 04213 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04214 dt_list_O_2->insert(DT_COND); 04215 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04216 reg_list_O_2->insert(R_COND); 04217 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04218 out_operands->push_back(op_O_2); 04219 04220 //execution info 04221 einfo = execution_info::create(10); 04222 04223 //properties 04224 04225 //versions 04226 04227 04228 //return target pseudoinstruction 04229 return tm_instr::create(INSTRUCTION_SHL__1,in_operands,out_operands,lstring("shl $I_1, $I_2"), props,versions,0,einfo); 04230 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SHR__1 | ( | ) |
Definition at line 4232 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SHR__1, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
04232 { 04233 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 04234 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 04235 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 04236 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 04237 ptr<set<tm_data_type_base::id_type> > allowed_types; 04238 ptr<execution_info> einfo; 04239 ptr<set<ulint> > versions; 04240 04241 //input operands 04242 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 04243 dt_list_I_1->insert(DT_INT_8P); 04244 dt_list_I_1->insert(DT_INT_8U); 04245 dt_list_I_1->insert(DT_INT_8S); 04246 dt_list_I_1->insert(DT_INT_16U); 04247 dt_list_I_1->insert(DT_INT_16S); 04248 dt_list_I_1->insert(DT_INT_32U); 04249 dt_list_I_1->insert(DT_INT_32S); 04250 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 04251 reg_list_I_1->insert(R_EAX); 04252 reg_list_I_1->insert(R_EBX); 04253 reg_list_I_1->insert(R_ECX); 04254 reg_list_I_1->insert(R_EDX); 04255 reg_list_I_1->insert(R_EDI); 04256 reg_list_I_1->insert(R_ESI); 04257 reg_list_I_1->insert(R_AX); 04258 reg_list_I_1->insert(R_BX); 04259 reg_list_I_1->insert(R_CX); 04260 reg_list_I_1->insert(R_DX); 04261 reg_list_I_1->insert(R_DI); 04262 reg_list_I_1->insert(R_SI); 04263 reg_list_I_1->insert(R_AL); 04264 reg_list_I_1->insert(R_AH); 04265 reg_list_I_1->insert(R_BL); 04266 reg_list_I_1->insert(R_BH); 04267 reg_list_I_1->insert(R_CL); 04268 reg_list_I_1->insert(R_CH); 04269 reg_list_I_1->insert(R_DL); 04270 reg_list_I_1->insert(R_DH); 04271 reg_list_I_1->erase(R_CL); 04272 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 04273 op_I_1->destroyed_by_get()->push_back(O_1); 04274 in_operands->push_back(op_I_1); 04275 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 04276 dt_list_I_2->insert(DT_INT_8P); 04277 dt_list_I_2->insert(DT_INT_8U); 04278 dt_list_I_2->insert(DT_INT_8S); 04279 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 04280 reg_list_I_2->insert(R_CL); 04281 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 04282 in_operands->push_back(op_I_2); 04283 04284 //output operands 04285 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 04286 dt_list_O_1->insert(DT_INT_8P); 04287 dt_list_O_1->insert(DT_INT_8U); 04288 dt_list_O_1->insert(DT_INT_8S); 04289 dt_list_O_1->insert(DT_INT_16U); 04290 dt_list_O_1->insert(DT_INT_16S); 04291 dt_list_O_1->insert(DT_INT_32U); 04292 dt_list_O_1->insert(DT_INT_32S); 04293 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 04294 reg_list_O_1->insert(R_EAX); 04295 reg_list_O_1->insert(R_EBX); 04296 reg_list_O_1->insert(R_ECX); 04297 reg_list_O_1->insert(R_EDX); 04298 reg_list_O_1->insert(R_EDI); 04299 reg_list_O_1->insert(R_ESI); 04300 reg_list_O_1->insert(R_AX); 04301 reg_list_O_1->insert(R_BX); 04302 reg_list_O_1->insert(R_CX); 04303 reg_list_O_1->insert(R_DX); 04304 reg_list_O_1->insert(R_DI); 04305 reg_list_O_1->insert(R_SI); 04306 reg_list_O_1->insert(R_AL); 04307 reg_list_O_1->insert(R_AH); 04308 reg_list_O_1->insert(R_BL); 04309 reg_list_O_1->insert(R_BH); 04310 reg_list_O_1->insert(R_CL); 04311 reg_list_O_1->insert(R_CH); 04312 reg_list_O_1->insert(R_DL); 04313 reg_list_O_1->insert(R_DH); 04314 reg_list_O_1->erase(R_CL); 04315 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 04316 op_O_1->destroys_set(I_1); 04317 out_operands->push_back(op_O_1); 04318 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 04319 dt_list_O_2->insert(DT_COND); 04320 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 04321 reg_list_O_2->insert(R_COND); 04322 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 04323 out_operands->push_back(op_O_2); 04324 04325 //execution info 04326 einfo = execution_info::create(10); 04327 04328 //properties 04329 04330 //versions 04331 04332 04333 //return target pseudoinstruction 04334 return tm_instr::create(INSTRUCTION_SHR__1,in_operands,out_operands,lstring("shr $I_1, $I_2"), props,versions,0,einfo); 04335 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SUB__1 | ( | ) |
Definition at line 1535 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SUB__1, INSTRUCTION_SUB__11, INSTRUCTION_SUB__12, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01535 { 01536 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01537 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01538 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01539 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01540 ptr<set<tm_data_type_base::id_type> > allowed_types; 01541 ptr<execution_info> einfo; 01542 ptr<set<ulint> > versions; 01543 01544 //input operands 01545 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01546 dt_list_I_1->insert(DT_INT_8P); 01547 dt_list_I_1->insert(DT_INT_8U); 01548 dt_list_I_1->insert(DT_INT_8S); 01549 dt_list_I_1->insert(DT_INT_16U); 01550 dt_list_I_1->insert(DT_INT_16S); 01551 dt_list_I_1->insert(DT_INT_32U); 01552 dt_list_I_1->insert(DT_INT_32S); 01553 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01554 reg_list_I_1->insert(R_EAX); 01555 reg_list_I_1->insert(R_EBX); 01556 reg_list_I_1->insert(R_ECX); 01557 reg_list_I_1->insert(R_EDX); 01558 reg_list_I_1->insert(R_EDI); 01559 reg_list_I_1->insert(R_ESI); 01560 reg_list_I_1->insert(R_AX); 01561 reg_list_I_1->insert(R_BX); 01562 reg_list_I_1->insert(R_CX); 01563 reg_list_I_1->insert(R_DX); 01564 reg_list_I_1->insert(R_DI); 01565 reg_list_I_1->insert(R_SI); 01566 reg_list_I_1->insert(R_AL); 01567 reg_list_I_1->insert(R_AH); 01568 reg_list_I_1->insert(R_BL); 01569 reg_list_I_1->insert(R_BH); 01570 reg_list_I_1->insert(R_CL); 01571 reg_list_I_1->insert(R_CH); 01572 reg_list_I_1->insert(R_DL); 01573 reg_list_I_1->insert(R_DH); 01574 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01575 op_I_1->destroyed_by_get()->push_back(O_1); 01576 in_operands->push_back(op_I_1); 01577 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01578 dt_list_I_2->insert(DT_INT_8P); 01579 dt_list_I_2->insert(DT_INT_8U); 01580 dt_list_I_2->insert(DT_INT_8S); 01581 dt_list_I_2->insert(DT_INT_16U); 01582 dt_list_I_2->insert(DT_INT_16S); 01583 dt_list_I_2->insert(DT_INT_32U); 01584 dt_list_I_2->insert(DT_INT_32S); 01585 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 01586 reg_list_I_2->insert(R_EAX); 01587 reg_list_I_2->insert(R_EBX); 01588 reg_list_I_2->insert(R_ECX); 01589 reg_list_I_2->insert(R_EDX); 01590 reg_list_I_2->insert(R_EDI); 01591 reg_list_I_2->insert(R_ESI); 01592 reg_list_I_2->insert(R_AX); 01593 reg_list_I_2->insert(R_BX); 01594 reg_list_I_2->insert(R_CX); 01595 reg_list_I_2->insert(R_DX); 01596 reg_list_I_2->insert(R_DI); 01597 reg_list_I_2->insert(R_SI); 01598 reg_list_I_2->insert(R_AL); 01599 reg_list_I_2->insert(R_AH); 01600 reg_list_I_2->insert(R_BL); 01601 reg_list_I_2->insert(R_BH); 01602 reg_list_I_2->insert(R_CL); 01603 reg_list_I_2->insert(R_CH); 01604 reg_list_I_2->insert(R_DL); 01605 reg_list_I_2->insert(R_DH); 01606 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 01607 in_operands->push_back(op_I_2); 01608 01609 //output operands 01610 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01611 dt_list_O_1->insert(DT_INT_8P); 01612 dt_list_O_1->insert(DT_INT_8U); 01613 dt_list_O_1->insert(DT_INT_8S); 01614 dt_list_O_1->insert(DT_INT_16U); 01615 dt_list_O_1->insert(DT_INT_16S); 01616 dt_list_O_1->insert(DT_INT_32U); 01617 dt_list_O_1->insert(DT_INT_32S); 01618 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01619 reg_list_O_1->insert(R_EAX); 01620 reg_list_O_1->insert(R_EBX); 01621 reg_list_O_1->insert(R_ECX); 01622 reg_list_O_1->insert(R_EDX); 01623 reg_list_O_1->insert(R_EDI); 01624 reg_list_O_1->insert(R_ESI); 01625 reg_list_O_1->insert(R_AX); 01626 reg_list_O_1->insert(R_BX); 01627 reg_list_O_1->insert(R_CX); 01628 reg_list_O_1->insert(R_DX); 01629 reg_list_O_1->insert(R_DI); 01630 reg_list_O_1->insert(R_SI); 01631 reg_list_O_1->insert(R_AL); 01632 reg_list_O_1->insert(R_AH); 01633 reg_list_O_1->insert(R_BL); 01634 reg_list_O_1->insert(R_BH); 01635 reg_list_O_1->insert(R_CL); 01636 reg_list_O_1->insert(R_CH); 01637 reg_list_O_1->insert(R_DL); 01638 reg_list_O_1->insert(R_DH); 01639 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01640 op_O_1->destroys_set(I_1); 01641 out_operands->push_back(op_O_1); 01642 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01643 dt_list_O_2->insert(DT_COND); 01644 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01645 reg_list_O_2->insert(R_COND); 01646 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01647 out_operands->push_back(op_O_2); 01648 01649 //execution info 01650 einfo = execution_info::create(10); 01651 01652 //properties 01653 01654 //versions 01655 versions = set<ulint>::create(); 01656 versions->insert(INSTRUCTION_SUB__11); 01657 versions->insert(INSTRUCTION_SUB__12); 01658 01659 01660 //return target pseudoinstruction 01661 return tm_instr::create(INSTRUCTION_SUB__1,in_operands,out_operands,lstring("sub $O_1, $I_2"), props,versions,0,einfo); 01662 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SUB__11 | ( | ) |
Definition at line 1664 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SUB__1, INSTRUCTION_SUB__11, INSTRUCTION_SUB__12, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01664 { 01665 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01666 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01667 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01668 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01669 ptr<set<tm_data_type_base::id_type> > allowed_types; 01670 ptr<execution_info> einfo; 01671 ptr<set<ulint> > versions; 01672 01673 //input operands 01674 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01675 dt_list_I_1->insert(DT_INT_8P); 01676 dt_list_I_1->insert(DT_INT_8U); 01677 dt_list_I_1->insert(DT_INT_8S); 01678 dt_list_I_1->insert(DT_INT_16U); 01679 dt_list_I_1->insert(DT_INT_16S); 01680 dt_list_I_1->insert(DT_INT_32U); 01681 dt_list_I_1->insert(DT_INT_32S); 01682 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01683 reg_list_I_1->insert(R_EAX); 01684 reg_list_I_1->insert(R_EBX); 01685 reg_list_I_1->insert(R_ECX); 01686 reg_list_I_1->insert(R_EDX); 01687 reg_list_I_1->insert(R_EDI); 01688 reg_list_I_1->insert(R_ESI); 01689 reg_list_I_1->insert(R_AX); 01690 reg_list_I_1->insert(R_BX); 01691 reg_list_I_1->insert(R_CX); 01692 reg_list_I_1->insert(R_DX); 01693 reg_list_I_1->insert(R_DI); 01694 reg_list_I_1->insert(R_SI); 01695 reg_list_I_1->insert(R_AL); 01696 reg_list_I_1->insert(R_AH); 01697 reg_list_I_1->insert(R_BL); 01698 reg_list_I_1->insert(R_BH); 01699 reg_list_I_1->insert(R_CL); 01700 reg_list_I_1->insert(R_CH); 01701 reg_list_I_1->insert(R_DL); 01702 reg_list_I_1->insert(R_DH); 01703 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01704 op_I_1->destroyed_by_get()->push_back(O_1); 01705 in_operands->push_back(op_I_1); 01706 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01707 dt_list_I_2->insert(DT_INT_8P); 01708 dt_list_I_2->insert(DT_INT_8U); 01709 dt_list_I_2->insert(DT_INT_8S); 01710 dt_list_I_2->insert(DT_INT_16U); 01711 dt_list_I_2->insert(DT_INT_16S); 01712 dt_list_I_2->insert(DT_INT_32U); 01713 dt_list_I_2->insert(DT_INT_32S); 01714 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 01715 in_operands->push_back(op_I_2); 01716 01717 //output operands 01718 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01719 dt_list_O_1->insert(DT_INT_8P); 01720 dt_list_O_1->insert(DT_INT_8U); 01721 dt_list_O_1->insert(DT_INT_8S); 01722 dt_list_O_1->insert(DT_INT_16U); 01723 dt_list_O_1->insert(DT_INT_16S); 01724 dt_list_O_1->insert(DT_INT_32U); 01725 dt_list_O_1->insert(DT_INT_32S); 01726 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01727 reg_list_O_1->insert(R_EAX); 01728 reg_list_O_1->insert(R_EBX); 01729 reg_list_O_1->insert(R_ECX); 01730 reg_list_O_1->insert(R_EDX); 01731 reg_list_O_1->insert(R_EDI); 01732 reg_list_O_1->insert(R_ESI); 01733 reg_list_O_1->insert(R_AX); 01734 reg_list_O_1->insert(R_BX); 01735 reg_list_O_1->insert(R_CX); 01736 reg_list_O_1->insert(R_DX); 01737 reg_list_O_1->insert(R_DI); 01738 reg_list_O_1->insert(R_SI); 01739 reg_list_O_1->insert(R_AL); 01740 reg_list_O_1->insert(R_AH); 01741 reg_list_O_1->insert(R_BL); 01742 reg_list_O_1->insert(R_BH); 01743 reg_list_O_1->insert(R_CL); 01744 reg_list_O_1->insert(R_CH); 01745 reg_list_O_1->insert(R_DL); 01746 reg_list_O_1->insert(R_DH); 01747 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01748 op_O_1->destroys_set(I_1); 01749 out_operands->push_back(op_O_1); 01750 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01751 dt_list_O_2->insert(DT_COND); 01752 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01753 reg_list_O_2->insert(R_COND); 01754 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01755 out_operands->push_back(op_O_2); 01756 01757 //execution info 01758 einfo = execution_info::create(30); 01759 01760 //properties 01761 01762 //versions 01763 versions = set<ulint>::create(); 01764 versions->insert(INSTRUCTION_SUB__1); 01765 versions->insert(INSTRUCTION_SUB__12); 01766 01767 01768 //return target pseudoinstruction 01769 return tm_instr::create(INSTRUCTION_SUB__11,in_operands,out_operands,lstring("sub $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 01770 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SUB__12 | ( | ) |
Definition at line 1772 of file tm_instr.mdg.cc.
References lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_SUB__1, INSTRUCTION_SUB__11, INSTRUCTION_SUB__12, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
01772 { 01773 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 01774 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 01775 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 01776 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 01777 ptr<set<tm_data_type_base::id_type> > allowed_types; 01778 ptr<execution_info> einfo; 01779 ptr<set<ulint> > versions; 01780 01781 //input operands 01782 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 01783 dt_list_I_1->insert(DT_INT_8P); 01784 dt_list_I_1->insert(DT_INT_8U); 01785 dt_list_I_1->insert(DT_INT_8S); 01786 dt_list_I_1->insert(DT_INT_16U); 01787 dt_list_I_1->insert(DT_INT_16S); 01788 dt_list_I_1->insert(DT_INT_32U); 01789 dt_list_I_1->insert(DT_INT_32S); 01790 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 01791 reg_list_I_1->insert(R_EAX); 01792 reg_list_I_1->insert(R_EBX); 01793 reg_list_I_1->insert(R_ECX); 01794 reg_list_I_1->insert(R_EDX); 01795 reg_list_I_1->insert(R_EDI); 01796 reg_list_I_1->insert(R_ESI); 01797 reg_list_I_1->insert(R_AX); 01798 reg_list_I_1->insert(R_BX); 01799 reg_list_I_1->insert(R_CX); 01800 reg_list_I_1->insert(R_DX); 01801 reg_list_I_1->insert(R_DI); 01802 reg_list_I_1->insert(R_SI); 01803 reg_list_I_1->insert(R_AL); 01804 reg_list_I_1->insert(R_AH); 01805 reg_list_I_1->insert(R_BL); 01806 reg_list_I_1->insert(R_BH); 01807 reg_list_I_1->insert(R_CL); 01808 reg_list_I_1->insert(R_CH); 01809 reg_list_I_1->insert(R_DL); 01810 reg_list_I_1->insert(R_DH); 01811 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 01812 op_I_1->destroyed_by_get()->push_back(O_1); 01813 in_operands->push_back(op_I_1); 01814 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 01815 dt_list_I_2->insert(DT_INT_8P); 01816 dt_list_I_2->insert(DT_INT_8U); 01817 dt_list_I_2->insert(DT_INT_8S); 01818 dt_list_I_2->insert(DT_INT_16U); 01819 dt_list_I_2->insert(DT_INT_16S); 01820 dt_list_I_2->insert(DT_INT_32U); 01821 dt_list_I_2->insert(DT_INT_32S); 01822 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 01823 in_operands->push_back(op_I_2); 01824 01825 //output operands 01826 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 01827 dt_list_O_1->insert(DT_INT_8P); 01828 dt_list_O_1->insert(DT_INT_8U); 01829 dt_list_O_1->insert(DT_INT_8S); 01830 dt_list_O_1->insert(DT_INT_16U); 01831 dt_list_O_1->insert(DT_INT_16S); 01832 dt_list_O_1->insert(DT_INT_32U); 01833 dt_list_O_1->insert(DT_INT_32S); 01834 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 01835 reg_list_O_1->insert(R_EAX); 01836 reg_list_O_1->insert(R_EBX); 01837 reg_list_O_1->insert(R_ECX); 01838 reg_list_O_1->insert(R_EDX); 01839 reg_list_O_1->insert(R_EDI); 01840 reg_list_O_1->insert(R_ESI); 01841 reg_list_O_1->insert(R_AX); 01842 reg_list_O_1->insert(R_BX); 01843 reg_list_O_1->insert(R_CX); 01844 reg_list_O_1->insert(R_DX); 01845 reg_list_O_1->insert(R_DI); 01846 reg_list_O_1->insert(R_SI); 01847 reg_list_O_1->insert(R_AL); 01848 reg_list_O_1->insert(R_AH); 01849 reg_list_O_1->insert(R_BL); 01850 reg_list_O_1->insert(R_BH); 01851 reg_list_O_1->insert(R_CL); 01852 reg_list_O_1->insert(R_CH); 01853 reg_list_O_1->insert(R_DL); 01854 reg_list_O_1->insert(R_DH); 01855 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 01856 op_O_1->destroys_set(I_1); 01857 out_operands->push_back(op_O_1); 01858 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 01859 dt_list_O_2->insert(DT_COND); 01860 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 01861 reg_list_O_2->insert(R_COND); 01862 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 01863 out_operands->push_back(op_O_2); 01864 01865 //execution info 01866 einfo = execution_info::create(10); 01867 01868 //properties 01869 01870 //versions 01871 versions = set<ulint>::create(); 01872 versions->insert(INSTRUCTION_SUB__1); 01873 versions->insert(INSTRUCTION_SUB__11); 01874 01875 01876 //return target pseudoinstruction 01877 return tm_instr::create(INSTRUCTION_SUB__12,in_operands,out_operands,lstring("sub $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 01878 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SYSMOV__10 | ( | ) |
Definition at line 788 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_STORE, INSTRUCTION_SYSMOV__10, INSTRUCTION_SYSMOV__11, INSTRUCTION_SYSMOV__9, O_1, lestes::md::registers::R_EBP, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
00788 { 00789 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00790 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00791 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00792 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00793 ptr<set<tm_data_type_base::id_type> > allowed_types; 00794 ptr<execution_info> einfo; 00795 ptr<set<ulint> > versions; 00796 00797 //input operands 00798 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00799 dt_list_I_1->insert(DT_INT_8P); 00800 dt_list_I_1->insert(DT_INT_8U); 00801 dt_list_I_1->insert(DT_INT_8S); 00802 dt_list_I_1->insert(DT_INT_16U); 00803 dt_list_I_1->insert(DT_INT_16S); 00804 dt_list_I_1->insert(DT_INT_32U); 00805 dt_list_I_1->insert(DT_INT_32S); 00806 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00807 reg_list_I_1->insert(R_ESP); 00808 reg_list_I_1->insert(R_EBP); 00809 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00810 in_operands->push_back(op_I_1); 00811 00812 //output operands 00813 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00814 dt_list_O_1->insert(DT_INT_8P); 00815 dt_list_O_1->insert(DT_INT_8U); 00816 dt_list_O_1->insert(DT_INT_8S); 00817 dt_list_O_1->insert(DT_INT_16U); 00818 dt_list_O_1->insert(DT_INT_16S); 00819 dt_list_O_1->insert(DT_INT_32U); 00820 dt_list_O_1->insert(DT_INT_32S); 00821 ptr<tm_instr_op_mem> op_O_1 = tm_instr_op_mem::create(O_1, dt_list_O_1); 00822 out_operands->push_back(op_O_1); 00823 00824 //execution info 00825 einfo = execution_info::create(30); 00826 00827 //properties 00828 00829 //versions 00830 versions = set<ulint>::create(); 00831 versions->insert(INSTRUCTION_SYSMOV__9); 00832 versions->insert(INSTRUCTION_SYSMOV__11); 00833 00834 00835 //return target pseudoinstruction 00836 return tm_instr::create(INSTRUCTION_SYSMOV__10,in_operands,out_operands,lstring("mov $TYPE_O_1 $O_1, $I_1"), props,versions,IF_STORE,einfo); 00837 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SYSMOV__11 | ( | ) |
Definition at line 839 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_LOAD, INSTRUCTION_SYSMOV__10, INSTRUCTION_SYSMOV__11, INSTRUCTION_SYSMOV__9, O_1, lestes::md::registers::R_EBP, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
00839 { 00840 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00841 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00842 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00843 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00844 ptr<set<tm_data_type_base::id_type> > allowed_types; 00845 ptr<execution_info> einfo; 00846 ptr<set<ulint> > versions; 00847 00848 //input operands 00849 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00850 dt_list_I_1->insert(DT_INT_8P); 00851 dt_list_I_1->insert(DT_INT_8U); 00852 dt_list_I_1->insert(DT_INT_8S); 00853 dt_list_I_1->insert(DT_INT_16U); 00854 dt_list_I_1->insert(DT_INT_16S); 00855 dt_list_I_1->insert(DT_INT_32U); 00856 dt_list_I_1->insert(DT_INT_32S); 00857 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 00858 in_operands->push_back(op_I_1); 00859 00860 //output operands 00861 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00862 dt_list_O_1->insert(DT_INT_8P); 00863 dt_list_O_1->insert(DT_INT_8U); 00864 dt_list_O_1->insert(DT_INT_8S); 00865 dt_list_O_1->insert(DT_INT_16U); 00866 dt_list_O_1->insert(DT_INT_16S); 00867 dt_list_O_1->insert(DT_INT_32U); 00868 dt_list_O_1->insert(DT_INT_32S); 00869 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00870 reg_list_O_1->insert(R_ESP); 00871 reg_list_O_1->insert(R_EBP); 00872 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00873 out_operands->push_back(op_O_1); 00874 00875 //execution info 00876 einfo = execution_info::create(30); 00877 00878 //properties 00879 00880 //versions 00881 versions = set<ulint>::create(); 00882 versions->insert(INSTRUCTION_SYSMOV__9); 00883 versions->insert(INSTRUCTION_SYSMOV__10); 00884 00885 00886 //return target pseudoinstruction 00887 return tm_instr::create(INSTRUCTION_SYSMOV__11,in_operands,out_operands,lstring("mov $O_1, $TYPE_I_1 $I_1"), props,versions,IF_LOAD,einfo); 00888 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_SYSMOV__9 | ( | ) |
Definition at line 734 of file tm_instr.mdg.cc.
References lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, IF_COPY, INSTRUCTION_SYSMOV__10, INSTRUCTION_SYSMOV__11, INSTRUCTION_SYSMOV__9, O_1, lestes::md::registers::R_EBP, and lestes::md::registers::R_ESP.
Referenced by lestes::md::instructions::tm_instr::instance().
00734 { 00735 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 00736 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 00737 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 00738 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 00739 ptr<set<tm_data_type_base::id_type> > allowed_types; 00740 ptr<execution_info> einfo; 00741 ptr<set<ulint> > versions; 00742 00743 //input operands 00744 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 00745 dt_list_I_1->insert(DT_INT_8P); 00746 dt_list_I_1->insert(DT_INT_8U); 00747 dt_list_I_1->insert(DT_INT_8S); 00748 dt_list_I_1->insert(DT_INT_16U); 00749 dt_list_I_1->insert(DT_INT_16S); 00750 dt_list_I_1->insert(DT_INT_32U); 00751 dt_list_I_1->insert(DT_INT_32S); 00752 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 00753 reg_list_I_1->insert(R_ESP); 00754 reg_list_I_1->insert(R_EBP); 00755 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 00756 in_operands->push_back(op_I_1); 00757 00758 //output operands 00759 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 00760 dt_list_O_1->insert(DT_INT_8P); 00761 dt_list_O_1->insert(DT_INT_8U); 00762 dt_list_O_1->insert(DT_INT_8S); 00763 dt_list_O_1->insert(DT_INT_16U); 00764 dt_list_O_1->insert(DT_INT_16S); 00765 dt_list_O_1->insert(DT_INT_32U); 00766 dt_list_O_1->insert(DT_INT_32S); 00767 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 00768 reg_list_O_1->insert(R_ESP); 00769 reg_list_O_1->insert(R_EBP); 00770 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 00771 out_operands->push_back(op_O_1); 00772 00773 //execution info 00774 einfo = execution_info::create(10); 00775 00776 //properties 00777 00778 //versions 00779 versions = set<ulint>::create(); 00780 versions->insert(INSTRUCTION_SYSMOV__10); 00781 versions->insert(INSTRUCTION_SYSMOV__11); 00782 00783 00784 //return target pseudoinstruction 00785 return tm_instr::create(INSTRUCTION_SYSMOV__9,in_operands,out_operands,lstring("mov $O_1, $I_1"), props,versions,IF_COPY,einfo); 00786 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_XOR__1 | ( | ) |
Definition at line 5800 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_XOR__1, INSTRUCTION_XOR__11, INSTRUCTION_XOR__12, INSTRUCTION_XOR__13, INSTRUCTION_XOR__14, INSTRUCTION_XOR__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05800 { 05801 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05802 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05803 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05804 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05805 ptr<set<tm_data_type_base::id_type> > allowed_types; 05806 ptr<execution_info> einfo; 05807 ptr<set<ulint> > versions; 05808 05809 //input operands 05810 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05811 dt_list_I_1->insert(DT_INT_8P); 05812 dt_list_I_1->insert(DT_INT_8U); 05813 dt_list_I_1->insert(DT_INT_8S); 05814 dt_list_I_1->insert(DT_INT_16U); 05815 dt_list_I_1->insert(DT_INT_16S); 05816 dt_list_I_1->insert(DT_INT_32U); 05817 dt_list_I_1->insert(DT_INT_32S); 05818 dt_list_I_1->insert(DT_BOOL); 05819 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 05820 reg_list_I_1->insert(R_EAX); 05821 reg_list_I_1->insert(R_EBX); 05822 reg_list_I_1->insert(R_ECX); 05823 reg_list_I_1->insert(R_EDX); 05824 reg_list_I_1->insert(R_EDI); 05825 reg_list_I_1->insert(R_ESI); 05826 reg_list_I_1->insert(R_AX); 05827 reg_list_I_1->insert(R_BX); 05828 reg_list_I_1->insert(R_CX); 05829 reg_list_I_1->insert(R_DX); 05830 reg_list_I_1->insert(R_DI); 05831 reg_list_I_1->insert(R_SI); 05832 reg_list_I_1->insert(R_AL); 05833 reg_list_I_1->insert(R_AH); 05834 reg_list_I_1->insert(R_BL); 05835 reg_list_I_1->insert(R_BH); 05836 reg_list_I_1->insert(R_CL); 05837 reg_list_I_1->insert(R_CH); 05838 reg_list_I_1->insert(R_DL); 05839 reg_list_I_1->insert(R_DH); 05840 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 05841 op_I_1->destroyed_by_get()->push_back(O_1); 05842 in_operands->push_back(op_I_1); 05843 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05844 dt_list_I_2->insert(DT_INT_8P); 05845 dt_list_I_2->insert(DT_INT_8U); 05846 dt_list_I_2->insert(DT_INT_8S); 05847 dt_list_I_2->insert(DT_INT_16U); 05848 dt_list_I_2->insert(DT_INT_16S); 05849 dt_list_I_2->insert(DT_INT_32U); 05850 dt_list_I_2->insert(DT_INT_32S); 05851 dt_list_I_2->insert(DT_BOOL); 05852 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 05853 reg_list_I_2->insert(R_EAX); 05854 reg_list_I_2->insert(R_EBX); 05855 reg_list_I_2->insert(R_ECX); 05856 reg_list_I_2->insert(R_EDX); 05857 reg_list_I_2->insert(R_EDI); 05858 reg_list_I_2->insert(R_ESI); 05859 reg_list_I_2->insert(R_AX); 05860 reg_list_I_2->insert(R_BX); 05861 reg_list_I_2->insert(R_CX); 05862 reg_list_I_2->insert(R_DX); 05863 reg_list_I_2->insert(R_DI); 05864 reg_list_I_2->insert(R_SI); 05865 reg_list_I_2->insert(R_AL); 05866 reg_list_I_2->insert(R_AH); 05867 reg_list_I_2->insert(R_BL); 05868 reg_list_I_2->insert(R_BH); 05869 reg_list_I_2->insert(R_CL); 05870 reg_list_I_2->insert(R_CH); 05871 reg_list_I_2->insert(R_DL); 05872 reg_list_I_2->insert(R_DH); 05873 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 05874 in_operands->push_back(op_I_2); 05875 05876 //output operands 05877 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05878 dt_list_O_1->insert(DT_INT_8P); 05879 dt_list_O_1->insert(DT_INT_8U); 05880 dt_list_O_1->insert(DT_INT_8S); 05881 dt_list_O_1->insert(DT_INT_16U); 05882 dt_list_O_1->insert(DT_INT_16S); 05883 dt_list_O_1->insert(DT_INT_32U); 05884 dt_list_O_1->insert(DT_INT_32S); 05885 dt_list_O_1->insert(DT_BOOL); 05886 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 05887 reg_list_O_1->insert(R_EAX); 05888 reg_list_O_1->insert(R_EBX); 05889 reg_list_O_1->insert(R_ECX); 05890 reg_list_O_1->insert(R_EDX); 05891 reg_list_O_1->insert(R_EDI); 05892 reg_list_O_1->insert(R_ESI); 05893 reg_list_O_1->insert(R_AX); 05894 reg_list_O_1->insert(R_BX); 05895 reg_list_O_1->insert(R_CX); 05896 reg_list_O_1->insert(R_DX); 05897 reg_list_O_1->insert(R_DI); 05898 reg_list_O_1->insert(R_SI); 05899 reg_list_O_1->insert(R_AL); 05900 reg_list_O_1->insert(R_AH); 05901 reg_list_O_1->insert(R_BL); 05902 reg_list_O_1->insert(R_BH); 05903 reg_list_O_1->insert(R_CL); 05904 reg_list_O_1->insert(R_CH); 05905 reg_list_O_1->insert(R_DL); 05906 reg_list_O_1->insert(R_DH); 05907 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 05908 op_O_1->destroys_set(I_1); 05909 out_operands->push_back(op_O_1); 05910 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 05911 dt_list_O_2->insert(DT_COND); 05912 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 05913 reg_list_O_2->insert(R_COND); 05914 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 05915 out_operands->push_back(op_O_2); 05916 05917 //execution info 05918 einfo = execution_info::create(10); 05919 05920 //properties 05921 05922 //versions 05923 versions = set<ulint>::create(); 05924 versions->insert(INSTRUCTION_XOR__11); 05925 versions->insert(INSTRUCTION_XOR__12); 05926 versions->insert(INSTRUCTION_XOR__13); 05927 versions->insert(INSTRUCTION_XOR__14); 05928 versions->insert(INSTRUCTION_XOR__2); 05929 05930 05931 //return target pseudoinstruction 05932 return tm_instr::create(INSTRUCTION_XOR__1,in_operands,out_operands,lstring("xor $O_1, $I_2"), props,versions,0,einfo); 05933 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_XOR__11 | ( | ) |
Definition at line 5935 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_XOR__1, INSTRUCTION_XOR__11, INSTRUCTION_XOR__12, INSTRUCTION_XOR__13, INSTRUCTION_XOR__14, INSTRUCTION_XOR__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
05935 { 05936 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 05937 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 05938 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 05939 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 05940 ptr<set<tm_data_type_base::id_type> > allowed_types; 05941 ptr<execution_info> einfo; 05942 ptr<set<ulint> > versions; 05943 05944 //input operands 05945 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 05946 dt_list_I_1->insert(DT_INT_8P); 05947 dt_list_I_1->insert(DT_INT_8U); 05948 dt_list_I_1->insert(DT_INT_8S); 05949 dt_list_I_1->insert(DT_INT_16U); 05950 dt_list_I_1->insert(DT_INT_16S); 05951 dt_list_I_1->insert(DT_INT_32U); 05952 dt_list_I_1->insert(DT_INT_32S); 05953 dt_list_I_1->insert(DT_BOOL); 05954 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 05955 reg_list_I_1->insert(R_EAX); 05956 reg_list_I_1->insert(R_EBX); 05957 reg_list_I_1->insert(R_ECX); 05958 reg_list_I_1->insert(R_EDX); 05959 reg_list_I_1->insert(R_EDI); 05960 reg_list_I_1->insert(R_ESI); 05961 reg_list_I_1->insert(R_AX); 05962 reg_list_I_1->insert(R_BX); 05963 reg_list_I_1->insert(R_CX); 05964 reg_list_I_1->insert(R_DX); 05965 reg_list_I_1->insert(R_DI); 05966 reg_list_I_1->insert(R_SI); 05967 reg_list_I_1->insert(R_AL); 05968 reg_list_I_1->insert(R_AH); 05969 reg_list_I_1->insert(R_BL); 05970 reg_list_I_1->insert(R_BH); 05971 reg_list_I_1->insert(R_CL); 05972 reg_list_I_1->insert(R_CH); 05973 reg_list_I_1->insert(R_DL); 05974 reg_list_I_1->insert(R_DH); 05975 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 05976 op_I_1->destroyed_by_get()->push_back(O_1); 05977 in_operands->push_back(op_I_1); 05978 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 05979 dt_list_I_2->insert(DT_INT_8P); 05980 dt_list_I_2->insert(DT_INT_8U); 05981 dt_list_I_2->insert(DT_INT_8S); 05982 dt_list_I_2->insert(DT_INT_16U); 05983 dt_list_I_2->insert(DT_INT_16S); 05984 dt_list_I_2->insert(DT_INT_32U); 05985 dt_list_I_2->insert(DT_INT_32S); 05986 dt_list_I_2->insert(DT_BOOL); 05987 ptr<tm_instr_op_imm> op_I_2 = tm_instr_op_imm::create(I_2, dt_list_I_2); 05988 in_operands->push_back(op_I_2); 05989 05990 //output operands 05991 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 05992 dt_list_O_1->insert(DT_INT_8P); 05993 dt_list_O_1->insert(DT_INT_8U); 05994 dt_list_O_1->insert(DT_INT_8S); 05995 dt_list_O_1->insert(DT_INT_16U); 05996 dt_list_O_1->insert(DT_INT_16S); 05997 dt_list_O_1->insert(DT_INT_32U); 05998 dt_list_O_1->insert(DT_INT_32S); 05999 dt_list_O_1->insert(DT_BOOL); 06000 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06001 reg_list_O_1->insert(R_EAX); 06002 reg_list_O_1->insert(R_EBX); 06003 reg_list_O_1->insert(R_ECX); 06004 reg_list_O_1->insert(R_EDX); 06005 reg_list_O_1->insert(R_EDI); 06006 reg_list_O_1->insert(R_ESI); 06007 reg_list_O_1->insert(R_AX); 06008 reg_list_O_1->insert(R_BX); 06009 reg_list_O_1->insert(R_CX); 06010 reg_list_O_1->insert(R_DX); 06011 reg_list_O_1->insert(R_DI); 06012 reg_list_O_1->insert(R_SI); 06013 reg_list_O_1->insert(R_AL); 06014 reg_list_O_1->insert(R_AH); 06015 reg_list_O_1->insert(R_BL); 06016 reg_list_O_1->insert(R_BH); 06017 reg_list_O_1->insert(R_CL); 06018 reg_list_O_1->insert(R_CH); 06019 reg_list_O_1->insert(R_DL); 06020 reg_list_O_1->insert(R_DH); 06021 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06022 op_O_1->destroys_set(I_1); 06023 out_operands->push_back(op_O_1); 06024 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 06025 dt_list_O_2->insert(DT_COND); 06026 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 06027 reg_list_O_2->insert(R_COND); 06028 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 06029 out_operands->push_back(op_O_2); 06030 06031 //execution info 06032 einfo = execution_info::create(10); 06033 06034 //properties 06035 06036 //versions 06037 versions = set<ulint>::create(); 06038 versions->insert(INSTRUCTION_XOR__1); 06039 versions->insert(INSTRUCTION_XOR__12); 06040 versions->insert(INSTRUCTION_XOR__13); 06041 versions->insert(INSTRUCTION_XOR__14); 06042 versions->insert(INSTRUCTION_XOR__2); 06043 06044 06045 //return target pseudoinstruction 06046 return tm_instr::create(INSTRUCTION_XOR__11,in_operands,out_operands,lstring("xor $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 06047 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_XOR__12 | ( | ) |
Definition at line 6049 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_XOR__1, INSTRUCTION_XOR__11, INSTRUCTION_XOR__12, INSTRUCTION_XOR__13, INSTRUCTION_XOR__14, INSTRUCTION_XOR__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06049 { 06050 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06051 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06052 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06053 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06054 ptr<set<tm_data_type_base::id_type> > allowed_types; 06055 ptr<execution_info> einfo; 06056 ptr<set<ulint> > versions; 06057 06058 //input operands 06059 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06060 dt_list_I_1->insert(DT_INT_8P); 06061 dt_list_I_1->insert(DT_INT_8U); 06062 dt_list_I_1->insert(DT_INT_8S); 06063 dt_list_I_1->insert(DT_INT_16U); 06064 dt_list_I_1->insert(DT_INT_16S); 06065 dt_list_I_1->insert(DT_INT_32U); 06066 dt_list_I_1->insert(DT_INT_32S); 06067 dt_list_I_1->insert(DT_BOOL); 06068 ptr<tm_instr_op_imm> op_I_1 = tm_instr_op_imm::create(I_1, dt_list_I_1); 06069 in_operands->push_back(op_I_1); 06070 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 06071 dt_list_I_2->insert(DT_INT_8P); 06072 dt_list_I_2->insert(DT_INT_8U); 06073 dt_list_I_2->insert(DT_INT_8S); 06074 dt_list_I_2->insert(DT_INT_16U); 06075 dt_list_I_2->insert(DT_INT_16S); 06076 dt_list_I_2->insert(DT_INT_32U); 06077 dt_list_I_2->insert(DT_INT_32S); 06078 dt_list_I_2->insert(DT_BOOL); 06079 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 06080 reg_list_I_2->insert(R_EAX); 06081 reg_list_I_2->insert(R_EBX); 06082 reg_list_I_2->insert(R_ECX); 06083 reg_list_I_2->insert(R_EDX); 06084 reg_list_I_2->insert(R_EDI); 06085 reg_list_I_2->insert(R_ESI); 06086 reg_list_I_2->insert(R_AX); 06087 reg_list_I_2->insert(R_BX); 06088 reg_list_I_2->insert(R_CX); 06089 reg_list_I_2->insert(R_DX); 06090 reg_list_I_2->insert(R_DI); 06091 reg_list_I_2->insert(R_SI); 06092 reg_list_I_2->insert(R_AL); 06093 reg_list_I_2->insert(R_AH); 06094 reg_list_I_2->insert(R_BL); 06095 reg_list_I_2->insert(R_BH); 06096 reg_list_I_2->insert(R_CL); 06097 reg_list_I_2->insert(R_CH); 06098 reg_list_I_2->insert(R_DL); 06099 reg_list_I_2->insert(R_DH); 06100 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 06101 op_I_2->destroyed_by_get()->push_back(O_1); 06102 in_operands->push_back(op_I_2); 06103 06104 //output operands 06105 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06106 dt_list_O_1->insert(DT_INT_8P); 06107 dt_list_O_1->insert(DT_INT_8U); 06108 dt_list_O_1->insert(DT_INT_8S); 06109 dt_list_O_1->insert(DT_INT_16U); 06110 dt_list_O_1->insert(DT_INT_16S); 06111 dt_list_O_1->insert(DT_INT_32U); 06112 dt_list_O_1->insert(DT_INT_32S); 06113 dt_list_O_1->insert(DT_BOOL); 06114 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06115 reg_list_O_1->insert(R_EAX); 06116 reg_list_O_1->insert(R_EBX); 06117 reg_list_O_1->insert(R_ECX); 06118 reg_list_O_1->insert(R_EDX); 06119 reg_list_O_1->insert(R_EDI); 06120 reg_list_O_1->insert(R_ESI); 06121 reg_list_O_1->insert(R_AX); 06122 reg_list_O_1->insert(R_BX); 06123 reg_list_O_1->insert(R_CX); 06124 reg_list_O_1->insert(R_DX); 06125 reg_list_O_1->insert(R_DI); 06126 reg_list_O_1->insert(R_SI); 06127 reg_list_O_1->insert(R_AL); 06128 reg_list_O_1->insert(R_AH); 06129 reg_list_O_1->insert(R_BL); 06130 reg_list_O_1->insert(R_BH); 06131 reg_list_O_1->insert(R_CL); 06132 reg_list_O_1->insert(R_CH); 06133 reg_list_O_1->insert(R_DL); 06134 reg_list_O_1->insert(R_DH); 06135 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06136 op_O_1->destroys_set(I_2); 06137 out_operands->push_back(op_O_1); 06138 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 06139 dt_list_O_2->insert(DT_COND); 06140 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 06141 reg_list_O_2->insert(R_COND); 06142 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 06143 out_operands->push_back(op_O_2); 06144 06145 //execution info 06146 einfo = execution_info::create(10); 06147 06148 //properties 06149 06150 //versions 06151 versions = set<ulint>::create(); 06152 versions->insert(INSTRUCTION_XOR__1); 06153 versions->insert(INSTRUCTION_XOR__11); 06154 versions->insert(INSTRUCTION_XOR__13); 06155 versions->insert(INSTRUCTION_XOR__14); 06156 versions->insert(INSTRUCTION_XOR__2); 06157 06158 06159 //return target pseudoinstruction 06160 return tm_instr::create(INSTRUCTION_XOR__12,in_operands,out_operands,lstring("xor $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 06161 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_XOR__13 | ( | ) |
Definition at line 6163 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_XOR__1, INSTRUCTION_XOR__11, INSTRUCTION_XOR__12, INSTRUCTION_XOR__13, INSTRUCTION_XOR__14, INSTRUCTION_XOR__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06163 { 06164 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06165 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06166 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06167 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06168 ptr<set<tm_data_type_base::id_type> > allowed_types; 06169 ptr<execution_info> einfo; 06170 ptr<set<ulint> > versions; 06171 06172 //input operands 06173 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06174 dt_list_I_1->insert(DT_INT_8P); 06175 dt_list_I_1->insert(DT_INT_8U); 06176 dt_list_I_1->insert(DT_INT_8S); 06177 dt_list_I_1->insert(DT_INT_16U); 06178 dt_list_I_1->insert(DT_INT_16S); 06179 dt_list_I_1->insert(DT_INT_32U); 06180 dt_list_I_1->insert(DT_INT_32S); 06181 dt_list_I_1->insert(DT_BOOL); 06182 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06183 reg_list_I_1->insert(R_EAX); 06184 reg_list_I_1->insert(R_EBX); 06185 reg_list_I_1->insert(R_ECX); 06186 reg_list_I_1->insert(R_EDX); 06187 reg_list_I_1->insert(R_EDI); 06188 reg_list_I_1->insert(R_ESI); 06189 reg_list_I_1->insert(R_AX); 06190 reg_list_I_1->insert(R_BX); 06191 reg_list_I_1->insert(R_CX); 06192 reg_list_I_1->insert(R_DX); 06193 reg_list_I_1->insert(R_DI); 06194 reg_list_I_1->insert(R_SI); 06195 reg_list_I_1->insert(R_AL); 06196 reg_list_I_1->insert(R_AH); 06197 reg_list_I_1->insert(R_BL); 06198 reg_list_I_1->insert(R_BH); 06199 reg_list_I_1->insert(R_CL); 06200 reg_list_I_1->insert(R_CH); 06201 reg_list_I_1->insert(R_DL); 06202 reg_list_I_1->insert(R_DH); 06203 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06204 op_I_1->destroyed_by_get()->push_back(O_1); 06205 in_operands->push_back(op_I_1); 06206 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 06207 dt_list_I_2->insert(DT_INT_8P); 06208 dt_list_I_2->insert(DT_INT_8U); 06209 dt_list_I_2->insert(DT_INT_8S); 06210 dt_list_I_2->insert(DT_INT_16U); 06211 dt_list_I_2->insert(DT_INT_16S); 06212 dt_list_I_2->insert(DT_INT_32U); 06213 dt_list_I_2->insert(DT_INT_32S); 06214 dt_list_I_2->insert(DT_BOOL); 06215 ptr<tm_instr_op_mem> op_I_2 = tm_instr_op_mem::create(I_2, dt_list_I_2); 06216 in_operands->push_back(op_I_2); 06217 06218 //output operands 06219 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06220 dt_list_O_1->insert(DT_INT_8P); 06221 dt_list_O_1->insert(DT_INT_8U); 06222 dt_list_O_1->insert(DT_INT_8S); 06223 dt_list_O_1->insert(DT_INT_16U); 06224 dt_list_O_1->insert(DT_INT_16S); 06225 dt_list_O_1->insert(DT_INT_32U); 06226 dt_list_O_1->insert(DT_INT_32S); 06227 dt_list_O_1->insert(DT_BOOL); 06228 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06229 reg_list_O_1->insert(R_EAX); 06230 reg_list_O_1->insert(R_EBX); 06231 reg_list_O_1->insert(R_ECX); 06232 reg_list_O_1->insert(R_EDX); 06233 reg_list_O_1->insert(R_EDI); 06234 reg_list_O_1->insert(R_ESI); 06235 reg_list_O_1->insert(R_AX); 06236 reg_list_O_1->insert(R_BX); 06237 reg_list_O_1->insert(R_CX); 06238 reg_list_O_1->insert(R_DX); 06239 reg_list_O_1->insert(R_DI); 06240 reg_list_O_1->insert(R_SI); 06241 reg_list_O_1->insert(R_AL); 06242 reg_list_O_1->insert(R_AH); 06243 reg_list_O_1->insert(R_BL); 06244 reg_list_O_1->insert(R_BH); 06245 reg_list_O_1->insert(R_CL); 06246 reg_list_O_1->insert(R_CH); 06247 reg_list_O_1->insert(R_DL); 06248 reg_list_O_1->insert(R_DH); 06249 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06250 op_O_1->destroys_set(I_1); 06251 out_operands->push_back(op_O_1); 06252 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 06253 dt_list_O_2->insert(DT_COND); 06254 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 06255 reg_list_O_2->insert(R_COND); 06256 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 06257 out_operands->push_back(op_O_2); 06258 06259 //execution info 06260 einfo = execution_info::create(30); 06261 06262 //properties 06263 06264 //versions 06265 versions = set<ulint>::create(); 06266 versions->insert(INSTRUCTION_XOR__1); 06267 versions->insert(INSTRUCTION_XOR__11); 06268 versions->insert(INSTRUCTION_XOR__12); 06269 versions->insert(INSTRUCTION_XOR__14); 06270 versions->insert(INSTRUCTION_XOR__2); 06271 06272 06273 //return target pseudoinstruction 06274 return tm_instr::create(INSTRUCTION_XOR__13,in_operands,out_operands,lstring("xor $O_1, $TYPE_I_2 $I_2"), props,versions,0,einfo); 06275 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_XOR__14 | ( | ) |
Definition at line 6277 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, I_2, INSTRUCTION_XOR__1, INSTRUCTION_XOR__11, INSTRUCTION_XOR__12, INSTRUCTION_XOR__13, INSTRUCTION_XOR__14, INSTRUCTION_XOR__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06277 { 06278 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06279 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06280 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06281 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06282 ptr<set<tm_data_type_base::id_type> > allowed_types; 06283 ptr<execution_info> einfo; 06284 ptr<set<ulint> > versions; 06285 06286 //input operands 06287 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06288 dt_list_I_1->insert(DT_INT_8P); 06289 dt_list_I_1->insert(DT_INT_8U); 06290 dt_list_I_1->insert(DT_INT_8S); 06291 dt_list_I_1->insert(DT_INT_16U); 06292 dt_list_I_1->insert(DT_INT_16S); 06293 dt_list_I_1->insert(DT_INT_32U); 06294 dt_list_I_1->insert(DT_INT_32S); 06295 dt_list_I_1->insert(DT_BOOL); 06296 ptr<tm_instr_op_mem> op_I_1 = tm_instr_op_mem::create(I_1, dt_list_I_1); 06297 in_operands->push_back(op_I_1); 06298 ptr<set<tm_data_type_base::id_type> > dt_list_I_2 = set<tm_data_type_base::id_type>::create(); 06299 dt_list_I_2->insert(DT_INT_8P); 06300 dt_list_I_2->insert(DT_INT_8U); 06301 dt_list_I_2->insert(DT_INT_8S); 06302 dt_list_I_2->insert(DT_INT_16U); 06303 dt_list_I_2->insert(DT_INT_16S); 06304 dt_list_I_2->insert(DT_INT_32U); 06305 dt_list_I_2->insert(DT_INT_32S); 06306 dt_list_I_2->insert(DT_BOOL); 06307 ptr<set<tm_register_base::id_type> > reg_list_I_2 = set<tm_register_base::id_type>::create(); 06308 reg_list_I_2->insert(R_EAX); 06309 reg_list_I_2->insert(R_EBX); 06310 reg_list_I_2->insert(R_ECX); 06311 reg_list_I_2->insert(R_EDX); 06312 reg_list_I_2->insert(R_EDI); 06313 reg_list_I_2->insert(R_ESI); 06314 reg_list_I_2->insert(R_AX); 06315 reg_list_I_2->insert(R_BX); 06316 reg_list_I_2->insert(R_CX); 06317 reg_list_I_2->insert(R_DX); 06318 reg_list_I_2->insert(R_DI); 06319 reg_list_I_2->insert(R_SI); 06320 reg_list_I_2->insert(R_AL); 06321 reg_list_I_2->insert(R_AH); 06322 reg_list_I_2->insert(R_BL); 06323 reg_list_I_2->insert(R_BH); 06324 reg_list_I_2->insert(R_CL); 06325 reg_list_I_2->insert(R_CH); 06326 reg_list_I_2->insert(R_DL); 06327 reg_list_I_2->insert(R_DH); 06328 ptr<tm_instr_op_reg> op_I_2 = tm_instr_op_reg::create(I_2, dt_list_I_2, reg_list_I_2); 06329 op_I_2->destroyed_by_get()->push_back(O_1); 06330 in_operands->push_back(op_I_2); 06331 06332 //output operands 06333 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06334 dt_list_O_1->insert(DT_INT_8P); 06335 dt_list_O_1->insert(DT_INT_8U); 06336 dt_list_O_1->insert(DT_INT_8S); 06337 dt_list_O_1->insert(DT_INT_16U); 06338 dt_list_O_1->insert(DT_INT_16S); 06339 dt_list_O_1->insert(DT_INT_32U); 06340 dt_list_O_1->insert(DT_INT_32S); 06341 dt_list_O_1->insert(DT_BOOL); 06342 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06343 reg_list_O_1->insert(R_EAX); 06344 reg_list_O_1->insert(R_EBX); 06345 reg_list_O_1->insert(R_ECX); 06346 reg_list_O_1->insert(R_EDX); 06347 reg_list_O_1->insert(R_EDI); 06348 reg_list_O_1->insert(R_ESI); 06349 reg_list_O_1->insert(R_AX); 06350 reg_list_O_1->insert(R_BX); 06351 reg_list_O_1->insert(R_CX); 06352 reg_list_O_1->insert(R_DX); 06353 reg_list_O_1->insert(R_DI); 06354 reg_list_O_1->insert(R_SI); 06355 reg_list_O_1->insert(R_AL); 06356 reg_list_O_1->insert(R_AH); 06357 reg_list_O_1->insert(R_BL); 06358 reg_list_O_1->insert(R_BH); 06359 reg_list_O_1->insert(R_CL); 06360 reg_list_O_1->insert(R_CH); 06361 reg_list_O_1->insert(R_DL); 06362 reg_list_O_1->insert(R_DH); 06363 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06364 op_O_1->destroys_set(I_2); 06365 out_operands->push_back(op_O_1); 06366 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 06367 dt_list_O_2->insert(DT_COND); 06368 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 06369 reg_list_O_2->insert(R_COND); 06370 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 06371 out_operands->push_back(op_O_2); 06372 06373 //execution info 06374 einfo = execution_info::create(30); 06375 06376 //properties 06377 06378 //versions 06379 versions = set<ulint>::create(); 06380 versions->insert(INSTRUCTION_XOR__1); 06381 versions->insert(INSTRUCTION_XOR__11); 06382 versions->insert(INSTRUCTION_XOR__12); 06383 versions->insert(INSTRUCTION_XOR__13); 06384 versions->insert(INSTRUCTION_XOR__2); 06385 06386 06387 //return target pseudoinstruction 06388 return tm_instr::create(INSTRUCTION_XOR__14,in_operands,out_operands,lstring("xor $O_1, $TYPE_I_1 $I_1"), props,versions,0,einfo); 06389 }
| ptr<tm_instr> lestes::md::instructions::tm_instr_create_INSTRUCTION_XOR__2 | ( | ) |
Definition at line 6391 of file tm_instr.mdg.cc.
References lestes::md::types::DT_BOOL, lestes::md::types::DT_COND, lestes::md::types::DT_INT_16S, lestes::md::types::DT_INT_16U, lestes::md::types::DT_INT_32S, lestes::md::types::DT_INT_32U, lestes::md::types::DT_INT_8P, lestes::md::types::DT_INT_8S, lestes::md::types::DT_INT_8U, I_1, INSTRUCTION_XOR__1, INSTRUCTION_XOR__11, INSTRUCTION_XOR__12, INSTRUCTION_XOR__13, INSTRUCTION_XOR__14, INSTRUCTION_XOR__2, O_1, O_2, lestes::md::registers::R_AH, lestes::md::registers::R_AL, lestes::md::registers::R_AX, lestes::md::registers::R_BH, lestes::md::registers::R_BL, lestes::md::registers::R_BX, lestes::md::registers::R_CH, lestes::md::registers::R_CL, lestes::md::registers::R_COND, lestes::md::registers::R_CX, lestes::md::registers::R_DH, lestes::md::registers::R_DI, lestes::md::registers::R_DL, lestes::md::registers::R_DX, lestes::md::registers::R_EAX, lestes::md::registers::R_EBX, lestes::md::registers::R_ECX, lestes::md::registers::R_EDI, lestes::md::registers::R_EDX, lestes::md::registers::R_ESI, and lestes::md::registers::R_SI.
Referenced by lestes::md::instructions::tm_instr::instance().
06391 { 06392 ptr<vector<srp<tm_instr_op_base> > > in_operands = vector<srp<tm_instr_op_base> >::create(); 06393 ptr<vector<srp<tm_instr_op_base> > > out_operands = vector<srp<tm_instr_op_base> >::create(); 06394 ptr<set<tm_register_base::id_type> > req_regs = set<tm_register_base::id_type>::create(); 06395 ptr<map<ulint, lstring> > props = map<ulint, lstring>::create(); 06396 ptr<set<tm_data_type_base::id_type> > allowed_types; 06397 ptr<execution_info> einfo; 06398 ptr<set<ulint> > versions; 06399 06400 //input operands 06401 ptr<set<tm_data_type_base::id_type> > dt_list_I_1 = set<tm_data_type_base::id_type>::create(); 06402 dt_list_I_1->insert(DT_INT_8P); 06403 dt_list_I_1->insert(DT_INT_8U); 06404 dt_list_I_1->insert(DT_INT_8S); 06405 dt_list_I_1->insert(DT_INT_16U); 06406 dt_list_I_1->insert(DT_INT_16S); 06407 dt_list_I_1->insert(DT_INT_32U); 06408 dt_list_I_1->insert(DT_INT_32S); 06409 dt_list_I_1->insert(DT_BOOL); 06410 ptr<set<tm_register_base::id_type> > reg_list_I_1 = set<tm_register_base::id_type>::create(); 06411 reg_list_I_1->insert(R_EAX); 06412 reg_list_I_1->insert(R_EBX); 06413 reg_list_I_1->insert(R_ECX); 06414 reg_list_I_1->insert(R_EDX); 06415 reg_list_I_1->insert(R_EDI); 06416 reg_list_I_1->insert(R_ESI); 06417 reg_list_I_1->insert(R_AX); 06418 reg_list_I_1->insert(R_BX); 06419 reg_list_I_1->insert(R_CX); 06420 reg_list_I_1->insert(R_DX); 06421 reg_list_I_1->insert(R_DI); 06422 reg_list_I_1->insert(R_SI); 06423 reg_list_I_1->insert(R_AL); 06424 reg_list_I_1->insert(R_AH); 06425 reg_list_I_1->insert(R_BL); 06426 reg_list_I_1->insert(R_BH); 06427 reg_list_I_1->insert(R_CL); 06428 reg_list_I_1->insert(R_CH); 06429 reg_list_I_1->insert(R_DL); 06430 reg_list_I_1->insert(R_DH); 06431 ptr<tm_instr_op_reg> op_I_1 = tm_instr_op_reg::create(I_1, dt_list_I_1, reg_list_I_1); 06432 op_I_1->destroyed_by_get()->push_back(O_1); 06433 in_operands->push_back(op_I_1); 06434 06435 //output operands 06436 ptr<set<tm_data_type_base::id_type> > dt_list_O_1 = set<tm_data_type_base::id_type>::create(); 06437 dt_list_O_1->insert(DT_INT_8P); 06438 dt_list_O_1->insert(DT_INT_8U); 06439 dt_list_O_1->insert(DT_INT_8S); 06440 dt_list_O_1->insert(DT_INT_16U); 06441 dt_list_O_1->insert(DT_INT_16S); 06442 dt_list_O_1->insert(DT_INT_32U); 06443 dt_list_O_1->insert(DT_INT_32S); 06444 dt_list_O_1->insert(DT_BOOL); 06445 ptr<set<tm_register_base::id_type> > reg_list_O_1 = set<tm_register_base::id_type>::create(); 06446 reg_list_O_1->insert(R_EAX); 06447 reg_list_O_1->insert(R_EBX); 06448 reg_list_O_1->insert(R_ECX); 06449 reg_list_O_1->insert(R_EDX); 06450 reg_list_O_1->insert(R_EDI); 06451 reg_list_O_1->insert(R_ESI); 06452 reg_list_O_1->insert(R_AX); 06453 reg_list_O_1->insert(R_BX); 06454 reg_list_O_1->insert(R_CX); 06455 reg_list_O_1->insert(R_DX); 06456 reg_list_O_1->insert(R_DI); 06457 reg_list_O_1->insert(R_SI); 06458 reg_list_O_1->insert(R_AL); 06459 reg_list_O_1->insert(R_AH); 06460 reg_list_O_1->insert(R_BL); 06461 reg_list_O_1->insert(R_BH); 06462 reg_list_O_1->insert(R_CL); 06463 reg_list_O_1->insert(R_CH); 06464 reg_list_O_1->insert(R_DL); 06465 reg_list_O_1->insert(R_DH); 06466 ptr<tm_instr_op_reg> op_O_1 = tm_instr_op_reg::create(O_1, dt_list_O_1, reg_list_O_1); 06467 op_O_1->destroys_set(I_1); 06468 out_operands->push_back(op_O_1); 06469 ptr<set<tm_data_type_base::id_type> > dt_list_O_2 = set<tm_data_type_base::id_type>::create(); 06470 dt_list_O_2->insert(DT_COND); 06471 ptr<set<tm_register_base::id_type> > reg_list_O_2 = set<tm_register_base::id_type>::create(); 06472 reg_list_O_2->insert(R_COND); 06473 ptr<tm_instr_op_reg> op_O_2 = tm_instr_op_reg::create(O_2, dt_list_O_2, reg_list_O_2); 06474 out_operands->push_back(op_O_2); 06475 06476 //execution info 06477 einfo = execution_info::create(10); 06478 06479 //properties 06480 06481 //versions 06482 versions = set<ulint>::create(); 06483 versions->insert(INSTRUCTION_XOR__1); 06484 versions->insert(INSTRUCTION_XOR__11); 06485 versions->insert(INSTRUCTION_XOR__12); 06486 versions->insert(INSTRUCTION_XOR__13); 06487 versions->insert(INSTRUCTION_XOR__14); 06488 06489 06490 //return target pseudoinstruction 06491 return tm_instr::create(INSTRUCTION_XOR__2,in_operands,out_operands,lstring("xor $O_1, 0x1"), props,versions,0,einfo); 06492 }
1.5.1-20070107