#include <pi_pi2ge_pi.g.hh>
Inheritance diagram for lestes::md::instructions::pi_pi2ge_pi:

Definition at line 101 of file pi_pi2ge_pi.g.hh.
| lestes::md::instructions::pi_pi2ge_pi::pi_pi2ge_pi | ( | ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > | a__pi_pi2ge_pi_base__pi_operands_getter, | |
| ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > | a__pi_pi2ge_pi_base__pi_id_getter, | |||
| ptr< ::lestes::md::instructions::pi_operand2ge_operand > | a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, | |||
| ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > | a__pi_pi2ge_pi_base__pi_sp2ge_sp, | |||
| ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > | a__pi_pi2ge_pi_base__pi_op2count, | |||
| ptr< ::lestes::backend_v2::intercode::ge_sp > | a__pi_pi2ge_pi__first_sp, | |||
| ptr< ::lestes::backend_v2::intercode::ge_sp > | a__pi_pi2ge_pi__last_sp, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand_reg > | a__pi_pi2ge_pi__preserved_reg_edi, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand_reg > | a__pi_pi2ge_pi__preserved_reg_esi, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand_reg > | a__pi_pi2ge_pi__preserved_reg_ebx | |||
| ) | [protected] |
Generated constructor for class pi_pi2ge_pi.
Generated constructor for class pi_pi2ge_pi.
Definition at line 155 of file pi_pi2ge_pi.g.cc.
Referenced by create().
00165 : pi_pi2ge_pi_base(a__pi_pi2ge_pi_base__pi_operands_getter, 00166 a__pi_pi2ge_pi_base__pi_id_getter, 00167 a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, 00168 a__pi_pi2ge_pi_base__pi_sp2ge_sp, 00169 a__pi_pi2ge_pi_base__pi_op2count), first_sp(a__pi_pi2ge_pi__first_sp), last_sp(a__pi_pi2ge_pi__last_sp), preserved_reg_edi(a__pi_pi2ge_pi__preserved_reg_edi), preserved_reg_esi(a__pi_pi2ge_pi__preserved_reg_esi), preserved_reg_ebx(a__pi_pi2ge_pi__preserved_reg_ebx) 00170 {}
| ptr<::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::first_sp_get | ( | ) | const |
The method first_sp_get returns the value of the field pi_pi2ge_pi::first_sp.
Definition at line 29 of file pi_pi2ge_pi.g.cc.
References first_sp.
00030 { 00031 return first_sp; 00032 }
| void lestes::md::instructions::pi_pi2ge_pi::first_sp_set | ( | const ptr< ::lestes::backend_v2::intercode::ge_sp > & | x | ) |
The method first_sp_set sets the field pi_pi2ge_pi::first_sp to the given value.
| [in] | x | The new value to set pi_pi2ge_pi::first_sp to. |
Definition at line 38 of file pi_pi2ge_pi.g.cc.
References first_sp.
Referenced by visit_pi_sp().
00039 { 00040 pi_pi2ge_pi::first_sp = x; 00041 }
| ptr<::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::last_sp_get | ( | ) | const |
The method last_sp_get returns the value of the field pi_pi2ge_pi::last_sp.
Definition at line 47 of file pi_pi2ge_pi.g.cc.
References last_sp.
Referenced by visit_pi_leave().
00048 { 00049 return last_sp; 00050 }
| void lestes::md::instructions::pi_pi2ge_pi::last_sp_set | ( | const ptr< ::lestes::backend_v2::intercode::ge_sp > & | x | ) |
The method last_sp_set sets the field pi_pi2ge_pi::last_sp to the given value.
| [in] | x | The new value to set pi_pi2ge_pi::last_sp to. |
Definition at line 56 of file pi_pi2ge_pi.g.cc.
References last_sp.
Referenced by visit_pi_sp().
00057 { 00058 pi_pi2ge_pi::last_sp = x; 00059 }
| ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_edi_get | ( | ) | const |
The method preserved_reg_edi_get returns the value of the field pi_pi2ge_pi::preserved_reg_edi.
Definition at line 65 of file pi_pi2ge_pi.g.cc.
References preserved_reg_edi.
00066 { 00067 return preserved_reg_edi; 00068 }
| void lestes::md::instructions::pi_pi2ge_pi::preserved_reg_edi_set | ( | const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > & | x | ) |
The method preserved_reg_edi_set sets the field pi_pi2ge_pi::preserved_reg_edi to the given value.
| [in] | x | The new value to set pi_pi2ge_pi::preserved_reg_edi to. |
Definition at line 74 of file pi_pi2ge_pi.g.cc.
References preserved_reg_edi.
00075 { 00076 pi_pi2ge_pi::preserved_reg_edi = x; 00077 }
| ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_esi_get | ( | ) | const |
The method preserved_reg_esi_get returns the value of the field pi_pi2ge_pi::preserved_reg_esi.
Definition at line 83 of file pi_pi2ge_pi.g.cc.
References preserved_reg_esi.
00084 { 00085 return preserved_reg_esi; 00086 }
| void lestes::md::instructions::pi_pi2ge_pi::preserved_reg_esi_set | ( | const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > & | x | ) |
The method preserved_reg_esi_set sets the field pi_pi2ge_pi::preserved_reg_esi to the given value.
| [in] | x | The new value to set pi_pi2ge_pi::preserved_reg_esi to. |
Definition at line 92 of file pi_pi2ge_pi.g.cc.
References preserved_reg_esi.
00093 { 00094 pi_pi2ge_pi::preserved_reg_esi = x; 00095 }
| ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_ebx_get | ( | ) | const |
The method preserved_reg_ebx_get returns the value of the field pi_pi2ge_pi::preserved_reg_ebx.
Definition at line 101 of file pi_pi2ge_pi.g.cc.
References preserved_reg_ebx.
00102 { 00103 return preserved_reg_ebx; 00104 }
| void lestes::md::instructions::pi_pi2ge_pi::preserved_reg_ebx_set | ( | const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > & | x | ) |
The method preserved_reg_ebx_set sets the field pi_pi2ge_pi::preserved_reg_ebx to the given value.
| [in] | x | The new value to set pi_pi2ge_pi::preserved_reg_ebx to. |
Definition at line 110 of file pi_pi2ge_pi.g.cc.
References preserved_reg_ebx.
00111 { 00112 pi_pi2ge_pi::preserved_reg_ebx = x; 00113 }
| ptr< ::lestes::backend_v2::intercode::ge_operand > lestes::md::instructions::pi_pi2ge_pi::get_stack_pointer | ( | ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > | pi | ) |
Referenced by visit_pi_call(), and visit_pi_callv().
| void lestes::md::instructions::pi_pi2ge_pi::restore_stack | ( | ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > | pi, | |
| ptr< ::lestes::backend_v2::intercode::ge_call > | ge, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand > | stack_pointer, | |||
| ulint | argc, | |||
| ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > | output | |||
| ) |
Referenced by visit_pi_call(), and visit_pi_callv().
| void lestes::md::instructions::pi_pi2ge_pi::push_operands | ( | ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > | pi, | |
| ptr< ::lestes::backend_v2::intercode::ge_operand > & | stack_pointer, | |||
| ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > | output | |||
| ) |
Referenced by visit_pi_call(), and visit_pi_callv().
| void lestes::md::instructions::pi_pi2ge_pi::push_operand | ( | ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > | pi, | |
| ptr< ::lestes::backend_v2::intercode::pi_operand > | op, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand > & | stack_pointer, | |||
| ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > | output | |||
| ) |
Referenced by visit_pi_call().
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sp | ( | ptr< ::lestes::backend_v2::intercode::pi_sp > | ) | [virtual] |
Definition at line 100 of file pi_pi2ge_pi.cc.
References lestes::md::types::DT_INT_32U, first_sp_set(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_EPILOGUE__1, lestes::md::instructions::INSTRUCTION_LEAVE__1, lestes::md::instructions::INSTRUCTION_PROLOGUE__1, lestes::md::instructions::INSTRUCTION_RET__1, last_sp_set(), lestes::md::instructions::pi_pi2ge_pi_base::pi_sp2ge_sp_get(), preserved_reg_ebx, preserved_reg_edi, and preserved_reg_esi.
00100 { 00101 00102 ptr< ge_pi_vector__type > output = ge_pi_vector__type::create(); 00103 00104 ptr<ge_sp> ge = ge_sp::create(NULL,pi); 00105 00106 //Find the first and the last sequencepoint of the processed function. 00107 if ( !pi->psp_get() ) { 00108 /* 00109 The first sequencepoint. Prepend function prologue. 00110 */ 00111 ptr<ge_sp> extra_sp = ge_sp::create(NULL,pi); 00112 output->push_back(extra_sp); 00113 00114 ptr<ge_pi> ge_prologue = ge_pi::create(tm_instr::instance(INSTRUCTION_PROLOGUE__1),pi); 00115 ge_prologue->dependencies_get()->insert(extra_sp); 00116 output->push_back(ge_prologue); 00117 00118 /* 00119 Preserved registers. 00120 They are the first operands of the function, so they get required registers. 00121 If the register allocator allocates these register to someone else, they are 00122 spilled-out (preserved) and loaded back at the end of the function. 00123 */ 00124 ptr<tm_data_type_base> type_32u = tm_dt_simple::instance(DT_INT_32U); 00125 preserved_reg_edi = ge_operand_reg::create(type_32u,ge_prologue,NULL); 00126 ge_prologue->operands_output_get()->push_back(preserved_reg_edi); 00127 preserved_reg_esi = ge_operand_reg::create(type_32u,ge_prologue,NULL); 00128 ge_prologue->operands_output_get()->push_back(preserved_reg_esi); 00129 preserved_reg_ebx = ge_operand_reg::create(type_32u,ge_prologue,NULL); 00130 ge_prologue->operands_output_get()->push_back(preserved_reg_ebx); 00131 00132 ge->dependencies_get()->insert(extra_sp); 00133 ge->dependencies_get()->insert(ge_prologue); 00134 output->push_back(ge); 00135 00136 first_sp_set(ge); 00137 } else if ( !pi->nsp_get() ) { 00138 /* 00139 The last sequencepoint. Append function epilogue. 00140 */ 00141 last_sp_set(ge); 00142 output->push_back(ge); 00143 00144 ptr<ge_pi> ge_epilogue = ge_pi::create(tm_instr::instance(INSTRUCTION_EPILOGUE__1),pi); 00145 ge_epilogue->dependencies_get()->insert(ge); 00146 ge_epilogue->operands_input_get()->push_back(preserved_reg_edi); 00147 ge_epilogue->operands_input_get()->push_back(preserved_reg_esi); 00148 ge_epilogue->operands_input_get()->push_back(preserved_reg_ebx); 00149 output->push_back(ge_epilogue); 00150 00151 ptr<ge_pi> ge_leave = ge_pi::create(tm_instr::instance(INSTRUCTION_LEAVE__1),pi); 00152 ge_leave->dependencies_get()->insert(ge_epilogue); 00153 output->push_back(ge_leave); 00154 00155 ptr<ge_pi> ge_ret = ge_pi::create(tm_instr::instance(INSTRUCTION_RET__1),pi); 00156 ge_ret->dependencies_get()->insert(ge_leave); 00157 output->push_back(ge_ret); 00158 00159 ptr<ge_sp> extra_sp = ge_sp::create(NULL,pi); 00160 extra_sp->dependencies_get()->insert(ge); 00161 extra_sp->dependencies_get()->insert(ge_epilogue); 00162 extra_sp->dependencies_get()->insert(ge_leave); 00163 extra_sp->dependencies_get()->insert(ge_ret); 00164 output->push_back(extra_sp); 00165 } else { 00166 output->push_back(ge); 00167 } 00168 00169 pi_sp2ge_sp_get()->insert(::std::pair<srp<pi_sp>,srp<ge_sp> >(pi,ge)); 00170 00171 return output; 00172 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_add | ( | ptr< ::lestes::backend_v2::intercode::pi_add > | ) | [virtual] |
Definition at line 14 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_ADD_1.
00014 { 00015 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00016 ptr< pi_pi2ge_pi_template > pat; 00017 00018 pat = pi_pi2ge_pi_template::instance(TEM_ADD_1); 00019 out = convert(pi,pat); 00020 00021 if ( out ) { 00022 return out; 00023 } 00024 00025 lassert(false); 00026 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sub | ( | ptr< ::lestes::backend_v2::intercode::pi_sub > | ) | [virtual] |
Definition at line 28 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SUB_1.
00028 { 00029 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00030 ptr< pi_pi2ge_pi_template > pat; 00031 00032 pat = pi_pi2ge_pi_template::instance(TEM_SUB_1); 00033 out = convert(pi,pat); 00034 00035 if ( out ) { 00036 return out; 00037 } 00038 00039 lassert(false); 00040 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_mul | ( | ptr< ::lestes::backend_v2::intercode::pi_mul > | ) | [virtual] |
Definition at line 42 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_MUL_1, and lestes::md::instructions::TEM_MUL_2.
00042 { 00043 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00044 ptr< pi_pi2ge_pi_template > pat; 00045 00046 pat = pi_pi2ge_pi_template::instance(TEM_MUL_1); 00047 out = convert(pi,pat); 00048 00049 if ( out ) { 00050 return out; 00051 } 00052 00053 pat = pi_pi2ge_pi_template::instance(TEM_MUL_2); 00054 out = convert(pi,pat); 00055 00056 if ( out ) { 00057 return out; 00058 } 00059 00060 lassert(false); 00061 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_div | ( | ptr< ::lestes::backend_v2::intercode::pi_div > | ) | [virtual] |
Definition at line 63 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_DIV_1, lestes::md::instructions::TEM_DIV_2, and lestes::md::instructions::TEM_DIV_3.
00063 { 00064 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00065 ptr< pi_pi2ge_pi_template > pat; 00066 00067 pat = pi_pi2ge_pi_template::instance(TEM_DIV_1); 00068 out = convert(pi,pat); 00069 00070 if ( out ) { 00071 return out; 00072 } 00073 00074 pat = pi_pi2ge_pi_template::instance(TEM_DIV_2); 00075 out = convert(pi,pat); 00076 00077 if ( out ) { 00078 return out; 00079 } 00080 00081 pat = pi_pi2ge_pi_template::instance(TEM_DIV_3); 00082 out = convert(pi,pat); 00083 00084 if ( out ) { 00085 return out; 00086 } 00087 00088 lassert(false); 00089 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_divrni | ( | ptr< ::lestes::backend_v2::intercode::pi_divrni > | ) | [virtual] |
Definition at line 496 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00496 { 00497 lassert2(false,msg_not_implemented_yet); 00498 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_divrpi | ( | ptr< ::lestes::backend_v2::intercode::pi_divrpi > | ) | [virtual] |
Definition at line 500 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00500 { 00501 lassert2(false,msg_not_implemented_yet); 00502 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_divrz | ( | ptr< ::lestes::backend_v2::intercode::pi_divrz > | ) | [virtual] |
Definition at line 504 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00504 { 00505 lassert2(false,msg_not_implemented_yet); 00506 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_mod | ( | ptr< ::lestes::backend_v2::intercode::pi_mod > | ) | [virtual] |
Definition at line 91 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_MOD_1, lestes::md::instructions::TEM_MOD_2, and lestes::md::instructions::TEM_MOD_3.
00091 { 00092 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00093 ptr< pi_pi2ge_pi_template > pat; 00094 00095 pat = pi_pi2ge_pi_template::instance(TEM_MOD_1); 00096 out = convert(pi,pat); 00097 00098 if ( out ) { 00099 return out; 00100 } 00101 00102 pat = pi_pi2ge_pi_template::instance(TEM_MOD_2); 00103 out = convert(pi,pat); 00104 00105 if ( out ) { 00106 return out; 00107 } 00108 00109 pat = pi_pi2ge_pi_template::instance(TEM_MOD_3); 00110 out = convert(pi,pat); 00111 00112 if ( out ) { 00113 return out; 00114 } 00115 00116 lassert(false); 00117 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_rem | ( | ptr< ::lestes::backend_v2::intercode::pi_rem > | ) | [virtual] |
Definition at line 119 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_REM_1, lestes::md::instructions::TEM_REM_2, and lestes::md::instructions::TEM_REM_3.
00119 { 00120 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00121 ptr< pi_pi2ge_pi_template > pat; 00122 00123 pat = pi_pi2ge_pi_template::instance(TEM_REM_1); 00124 out = convert(pi,pat); 00125 00126 if ( out ) { 00127 return out; 00128 } 00129 00130 pat = pi_pi2ge_pi_template::instance(TEM_REM_2); 00131 out = convert(pi,pat); 00132 00133 if ( out ) { 00134 return out; 00135 } 00136 00137 pat = pi_pi2ge_pi_template::instance(TEM_REM_3); 00138 out = convert(pi,pat); 00139 00140 if ( out ) { 00141 return out; 00142 } 00143 00144 lassert(false); 00145 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_neg | ( | ptr< ::lestes::backend_v2::intercode::pi_neg > | ) | [virtual] |
Definition at line 147 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_NEG_1.
00147 { 00148 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00149 ptr< pi_pi2ge_pi_template > pat; 00150 00151 pat = pi_pi2ge_pi_template::instance(TEM_NEG_1); 00152 out = convert(pi,pat); 00153 00154 if ( out ) { 00155 return out; 00156 } 00157 00158 lassert(false); 00159 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_gat | ( | ptr< ::lestes::backend_v2::intercode::pi_gat > | ) | [virtual] |
Definition at line 161 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_GAT_1.
00161 { 00162 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00163 ptr< pi_pi2ge_pi_template > pat; 00164 00165 pat = pi_pi2ge_pi_template::instance(TEM_GAT_1); 00166 out = convert(pi,pat); 00167 00168 if ( out ) { 00169 return out; 00170 } 00171 00172 lassert(false); 00173 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_shl | ( | ptr< ::lestes::backend_v2::intercode::pi_shl > | ) | [virtual] |
Definition at line 175 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SHL_1.
00175 { 00176 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00177 ptr< pi_pi2ge_pi_template > pat; 00178 00179 pat = pi_pi2ge_pi_template::instance(TEM_SHL_1); 00180 out = convert(pi,pat); 00181 00182 if ( out ) { 00183 return out; 00184 } 00185 00186 lassert(false); 00187 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_shr | ( | ptr< ::lestes::backend_v2::intercode::pi_shr > | ) | [virtual] |
Definition at line 189 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SHR_1.
00189 { 00190 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00191 ptr< pi_pi2ge_pi_template > pat; 00192 00193 pat = pi_pi2ge_pi_template::instance(TEM_SHR_1); 00194 out = convert(pi,pat); 00195 00196 if ( out ) { 00197 return out; 00198 } 00199 00200 lassert(false); 00201 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sal | ( | ptr< ::lestes::backend_v2::intercode::pi_sal > | ) | [virtual] |
Definition at line 203 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SAL_1.
00203 { 00204 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00205 ptr< pi_pi2ge_pi_template > pat; 00206 00207 pat = pi_pi2ge_pi_template::instance(TEM_SAL_1); 00208 out = convert(pi,pat); 00209 00210 if ( out ) { 00211 return out; 00212 } 00213 00214 lassert(false); 00215 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sar | ( | ptr< ::lestes::backend_v2::intercode::pi_sar > | ) | [virtual] |
Definition at line 217 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SAR_1.
00217 { 00218 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00219 ptr< pi_pi2ge_pi_template > pat; 00220 00221 pat = pi_pi2ge_pi_template::instance(TEM_SAR_1); 00222 out = convert(pi,pat); 00223 00224 if ( out ) { 00225 return out; 00226 } 00227 00228 lassert(false); 00229 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_band | ( | ptr< ::lestes::backend_v2::intercode::pi_band > | ) | [virtual] |
Definition at line 231 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BAND_1.
00231 { 00232 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00233 ptr< pi_pi2ge_pi_template > pat; 00234 00235 pat = pi_pi2ge_pi_template::instance(TEM_BAND_1); 00236 out = convert(pi,pat); 00237 00238 if ( out ) { 00239 return out; 00240 } 00241 00242 lassert(false); 00243 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bor | ( | ptr< ::lestes::backend_v2::intercode::pi_bor > | ) | [virtual] |
Definition at line 245 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BOR_1.
00245 { 00246 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00247 ptr< pi_pi2ge_pi_template > pat; 00248 00249 pat = pi_pi2ge_pi_template::instance(TEM_BOR_1); 00250 out = convert(pi,pat); 00251 00252 if ( out ) { 00253 return out; 00254 } 00255 00256 lassert(false); 00257 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bxor | ( | ptr< ::lestes::backend_v2::intercode::pi_bxor > | ) | [virtual] |
Definition at line 259 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BXOR_1.
00259 { 00260 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00261 ptr< pi_pi2ge_pi_template > pat; 00262 00263 pat = pi_pi2ge_pi_template::instance(TEM_BXOR_1); 00264 out = convert(pi,pat); 00265 00266 if ( out ) { 00267 return out; 00268 } 00269 00270 lassert(false); 00271 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bnot | ( | ptr< ::lestes::backend_v2::intercode::pi_bnot > | ) | [virtual] |
Definition at line 273 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNOT_1.
00273 { 00274 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00275 ptr< pi_pi2ge_pi_template > pat; 00276 00277 pat = pi_pi2ge_pi_template::instance(TEM_BNOT_1); 00278 out = convert(pi,pat); 00279 00280 if ( out ) { 00281 return out; 00282 } 00283 00284 lassert(false); 00285 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_land | ( | ptr< ::lestes::backend_v2::intercode::pi_land > | ) | [virtual] |
Definition at line 287 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LAND_1.
00287 { 00288 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00289 ptr< pi_pi2ge_pi_template > pat; 00290 00291 pat = pi_pi2ge_pi_template::instance(TEM_LAND_1); 00292 out = convert(pi,pat); 00293 00294 if ( out ) { 00295 return out; 00296 } 00297 00298 lassert(false); 00299 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lor | ( | ptr< ::lestes::backend_v2::intercode::pi_lor > | ) | [virtual] |
Definition at line 301 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LOR_1.
00301 { 00302 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00303 ptr< pi_pi2ge_pi_template > pat; 00304 00305 pat = pi_pi2ge_pi_template::instance(TEM_LOR_1); 00306 out = convert(pi,pat); 00307 00308 if ( out ) { 00309 return out; 00310 } 00311 00312 lassert(false); 00313 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lxor | ( | ptr< ::lestes::backend_v2::intercode::pi_lxor > | ) | [virtual] |
Definition at line 315 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LXOR_1.
00315 { 00316 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00317 ptr< pi_pi2ge_pi_template > pat; 00318 00319 pat = pi_pi2ge_pi_template::instance(TEM_LXOR_1); 00320 out = convert(pi,pat); 00321 00322 if ( out ) { 00323 return out; 00324 } 00325 00326 lassert(false); 00327 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lnot | ( | ptr< ::lestes::backend_v2::intercode::pi_lnot > | ) | [virtual] |
Definition at line 329 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LNOT_1.
00329 { 00330 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00331 ptr< pi_pi2ge_pi_template > pat; 00332 00333 pat = pi_pi2ge_pi_template::instance(TEM_LNOT_1); 00334 out = convert(pi,pat); 00335 00336 if ( out ) { 00337 return out; 00338 } 00339 00340 lassert(false); 00341 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_cvt | ( | ptr< ::lestes::backend_v2::intercode::pi_cvt > | ) | [virtual] |
Definition at line 343 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_CVT_1, lestes::md::instructions::TEM_CVT_2, and lestes::md::instructions::TEM_CVT_3.
00343 { 00344 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00345 ptr< pi_pi2ge_pi_template > pat; 00346 00347 pat = pi_pi2ge_pi_template::instance(TEM_CVT_1); 00348 out = convert(pi,pat); 00349 00350 if ( out ) { 00351 return out; 00352 } 00353 00354 pat = pi_pi2ge_pi_template::instance(TEM_CVT_2); 00355 out = convert(pi,pat); 00356 00357 if ( out ) { 00358 return out; 00359 } 00360 00361 pat = pi_pi2ge_pi_template::instance(TEM_CVT_3); 00362 out = convert(pi,pat); 00363 00364 if ( out ) { 00365 return out; 00366 } 00367 00368 lassert(false); 00369 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_cmp | ( | ptr< ::lestes::backend_v2::intercode::pi_cmp > | ) | [virtual] |
Definition at line 553 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_CMP_1.
00553 { 00554 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00555 ptr< pi_pi2ge_pi_template > pat; 00556 00557 pat = pi_pi2ge_pi_template::instance(TEM_CMP_1); 00558 out = convert(pi,pat); 00559 00560 if ( out ) { 00561 return out; 00562 } 00563 00564 lassert(false); 00565 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_mov | ( | ptr< ::lestes::backend_v2::intercode::pi_mov > | ) | [virtual] |
Definition at line 371 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_MOV_1.
00371 { 00372 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00373 ptr< pi_pi2ge_pi_template > pat; 00374 00375 pat = pi_pi2ge_pi_template::instance(TEM_MOV_1); 00376 out = convert(pi,pat); 00377 00378 if ( out ) { 00379 return out; 00380 } 00381 00382 lassert(false); 00383 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ld | ( | ptr< ::lestes::backend_v2::intercode::pi_ld > | ) | [virtual] |
Definition at line 469 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LD_1.
00469 { 00470 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00471 ptr< pi_pi2ge_pi_template > pat; 00472 00473 pat = pi_pi2ge_pi_template::instance(TEM_LD_1); 00474 out = convert(pi,pat); 00475 00476 if ( out ) { 00477 return out; 00478 } 00479 00480 lassert(false); 00481 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lda | ( | ptr< ::lestes::backend_v2::intercode::pi_lda > | ) | [virtual] |
Definition at line 539 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDA_1.
00539 { 00540 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00541 ptr< pi_pi2ge_pi_template > pat; 00542 00543 pat = pi_pi2ge_pi_template::instance(TEM_LDA_1); 00544 out = convert(pi,pat); 00545 00546 if ( out ) { 00547 return out; 00548 } 00549 00550 lassert(false); 00551 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldi | ( | ptr< ::lestes::backend_v2::intercode::pi_ldi > | ) | [virtual] |
Definition at line 497 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDI_1.
00497 { 00498 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00499 ptr< pi_pi2ge_pi_template > pat; 00500 00501 pat = pi_pi2ge_pi_template::instance(TEM_LDI_1); 00502 out = convert(pi,pat); 00503 00504 if ( out ) { 00505 return out; 00506 } 00507 00508 lassert(false); 00509 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldp | ( | ptr< ::lestes::backend_v2::intercode::pi_ldp > | ) | [virtual] |
Definition at line 511 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDP_1.
00511 { 00512 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00513 ptr< pi_pi2ge_pi_template > pat; 00514 00515 pat = pi_pi2ge_pi_template::instance(TEM_LDP_1); 00516 out = convert(pi,pat); 00517 00518 if ( out ) { 00519 return out; 00520 } 00521 00522 lassert(false); 00523 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldv | ( | ptr< ::lestes::backend_v2::intercode::pi_ldv > | ) | [virtual] |
Definition at line 483 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDV_1.
00483 { 00484 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00485 ptr< pi_pi2ge_pi_template > pat; 00486 00487 pat = pi_pi2ge_pi_template::instance(TEM_LDV_1); 00488 out = convert(pi,pat); 00489 00490 if ( out ) { 00491 return out; 00492 } 00493 00494 lassert(false); 00495 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldpv | ( | ptr< ::lestes::backend_v2::intercode::pi_ldpv > | ) | [virtual] |
Definition at line 525 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDPV_1.
00525 { 00526 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00527 ptr< pi_pi2ge_pi_template > pat; 00528 00529 pat = pi_pi2ge_pi_template::instance(TEM_LDPV_1); 00530 out = convert(pi,pat); 00531 00532 if ( out ) { 00533 return out; 00534 } 00535 00536 lassert(false); 00537 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_st | ( | ptr< ::lestes::backend_v2::intercode::pi_st > | ) | [virtual] |
Definition at line 385 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_ST_1.
00385 { 00386 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00387 ptr< pi_pi2ge_pi_template > pat; 00388 00389 pat = pi_pi2ge_pi_template::instance(TEM_ST_1); 00390 out = convert(pi,pat); 00391 00392 if ( out ) { 00393 return out; 00394 } 00395 00396 lassert(false); 00397 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sti | ( | ptr< ::lestes::backend_v2::intercode::pi_sti > | ) | [virtual] |
Definition at line 413 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STI_1.
00413 { 00414 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00415 ptr< pi_pi2ge_pi_template > pat; 00416 00417 pat = pi_pi2ge_pi_template::instance(TEM_STI_1); 00418 out = convert(pi,pat); 00419 00420 if ( out ) { 00421 return out; 00422 } 00423 00424 lassert(false); 00425 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stp | ( | ptr< ::lestes::backend_v2::intercode::pi_stp > | ) | [virtual] |
Definition at line 441 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STP_1.
00441 { 00442 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00443 ptr< pi_pi2ge_pi_template > pat; 00444 00445 pat = pi_pi2ge_pi_template::instance(TEM_STP_1); 00446 out = convert(pi,pat); 00447 00448 if ( out ) { 00449 return out; 00450 } 00451 00452 lassert(false); 00453 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stv | ( | ptr< ::lestes::backend_v2::intercode::pi_stv > | ) | [virtual] |
Definition at line 399 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STV_1.
00399 { 00400 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00401 ptr< pi_pi2ge_pi_template > pat; 00402 00403 pat = pi_pi2ge_pi_template::instance(TEM_STV_1); 00404 out = convert(pi,pat); 00405 00406 if ( out ) { 00407 return out; 00408 } 00409 00410 lassert(false); 00411 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stiv | ( | ptr< ::lestes::backend_v2::intercode::pi_stiv > | ) | [virtual] |
Definition at line 427 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STIV_1.
00427 { 00428 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00429 ptr< pi_pi2ge_pi_template > pat; 00430 00431 pat = pi_pi2ge_pi_template::instance(TEM_STIV_1); 00432 out = convert(pi,pat); 00433 00434 if ( out ) { 00435 return out; 00436 } 00437 00438 lassert(false); 00439 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stpv | ( | ptr< ::lestes::backend_v2::intercode::pi_stpv > | ) | [virtual] |
Definition at line 455 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STPV_1.
00455 { 00456 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00457 ptr< pi_pi2ge_pi_template > pat; 00458 00459 pat = pi_pi2ge_pi_template::instance(TEM_STPV_1); 00460 out = convert(pi,pat); 00461 00462 if ( out ) { 00463 return out; 00464 } 00465 00466 lassert(false); 00467 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_call | ( | ptr< ::lestes::backend_v2::intercode::pi_call > | ) | [virtual] |
Definition at line 189 of file pi_pi2ge_pi.cc.
References lestes::md::types::DT_INT_32U, lestes::msg::eolog, get_stack_pointer(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_CALL__1, lestes::md::instructions::pi_pi2ge_pi_base::pi_op2ge_op_convertor_get(), push_operand(), push_operands(), and restore_stack().
00189 { 00190 log << "visit_pi_call - start\n" << eolog; 00191 00192 ptr< ge_pi_vector__type > output = ge_pi_vector__type::create(); 00193 00194 ptr<ge_operand> stack_pointer = get_stack_pointer(pi); 00195 00196 ptr<ge_call> ge = ge_call::create(tm_instr::instance(INSTRUCTION_CALL__1),pi,pi->f_get()); 00197 00198 //non-preserved registers 00199 ptr<ge_operand> reg_eax = pi_op2ge_op_convertor_get()->convert(pi->rv_get()); 00200 reg_eax->origin_set(ge); 00201 ge->operands_output_get()->push_back(reg_eax); 00202 00203 ptr<tm_data_type_base> type_32u = tm_dt_simple::instance(DT_INT_32U); 00204 ptr<ge_operand> reg_ecx = ge_operand_reg::create(type_32u,ge,NULL); 00205 ge->operands_output_get()->push_back(reg_ecx); 00206 00207 ptr<ge_operand> reg_edx = ge_operand_reg::create(type_32u,ge,NULL); 00208 ge->operands_output_get()->push_back(reg_edx); 00209 00210 int pushed_args = 0; 00211 00212 //push arguments 00213 push_operands(pi,stack_pointer,output); 00214 00215 if ( !pi->type_get()->return_reg_get() ) { 00216 //push destination for return value 00217 push_operand(pi,pi->rv_get(),stack_pointer,output); 00218 ++pushed_args; 00219 } 00220 00221 //call 00222 if ( output->size()>0 ) { 00223 ptr<ge_pi> last = (*output)[output->size() - 1]; 00224 ge->dependencies_get()->insert(last); 00225 } 00226 output->push_back(ge); 00227 00228 pushed_args += pi->args_get()->size(); 00229 00230 //generate code that restores original value of stack pointer. 00231 restore_stack(pi,ge,stack_pointer,pushed_args,output); 00232 00233 log << "visit_pi_call - end\n" << eolog; 00234 00235 return output; 00236 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_icall | ( | ptr< ::lestes::backend_v2::intercode::pi_icall > | ) | [virtual] |
Definition at line 448 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00448 { 00449 lassert2(false,msg_not_implemented_yet); 00450 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_callv | ( | ptr< ::lestes::backend_v2::intercode::pi_callv > | ) | [virtual] |
Definition at line 405 of file pi_pi2ge_pi.cc.
References lestes::md::types::DT_INT_32U, get_stack_pointer(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_CALL__1, push_operands(), and restore_stack().
00405 { 00406 log << "visit_pi_callv - start\n" << eolog; 00407 00408 ptr< ge_pi_vector__type > output = ge_pi_vector__type::create(); 00409 00410 ptr<ge_operand> stack_pointer = get_stack_pointer(pi); 00411 00412 ptr<ge_call> ge = ge_call::create(tm_instr::instance(INSTRUCTION_CALL__1),pi,pi->f_get()); 00413 00414 //non-preserved registers 00415 ptr<tm_data_type_base> type_32u = tm_dt_simple::instance(DT_INT_32U); 00416 ptr<ge_operand> reg_eax = ge_operand_reg::create(type_32u,ge,NULL); 00417 reg_eax->origin_set(ge); 00418 ge->operands_output_get()->push_back(reg_eax); 00419 00420 ptr<ge_operand> reg_ecx = ge_operand_reg::create(type_32u,ge,NULL); 00421 reg_ecx->origin_set(ge); 00422 ge->operands_output_get()->push_back(reg_ecx); 00423 00424 ptr<ge_operand> reg_edx = ge_operand_reg::create(type_32u,ge,NULL); 00425 reg_edx->origin_set(ge); 00426 ge->operands_output_get()->push_back(reg_edx); 00427 00428 //push arguments 00429 push_operands(pi,stack_pointer,output); 00430 00431 //call 00432 if ( output->size()>0 ) { 00433 ptr<ge_pi> last = (*output)[output->size() - 1]; 00434 ge->dependencies_get()->insert(last); 00435 } 00436 output->push_back(ge); 00437 00438 if ( pi->args_get()->size()>0 ) { 00439 //generate code that restores original value of stack pointer. 00440 restore_stack(pi,ge,stack_pointer,pi->args_get()->size(),output); 00441 } 00442 00443 log << "visit_pi_callv - end\n" << eolog; 00444 00445 return output; 00446 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_icallv | ( | ptr< ::lestes::backend_v2::intercode::pi_icallv > | ) | [virtual] |
Definition at line 452 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00452 { 00453 lassert2(false,msg_not_implemented_yet); 00454 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ba | ( | ptr< ::lestes::backend_v2::intercode::pi_ba > | ) | [virtual] |
Definition at line 567 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BA_1.
00567 { 00568 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00569 ptr< pi_pi2ge_pi_template > pat; 00570 00571 pat = pi_pi2ge_pi_template::instance(TEM_BA_1); 00572 out = convert(pi,pat); 00573 00574 if ( out ) { 00575 return out; 00576 } 00577 00578 lassert(false); 00579 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bn | ( | ptr< ::lestes::backend_v2::intercode::pi_bn > | ) | [virtual] |
Definition at line 581 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BN_1.
00581 { 00582 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00583 ptr< pi_pi2ge_pi_template > pat; 00584 00585 pat = pi_pi2ge_pi_template::instance(TEM_BN_1); 00586 out = convert(pi,pat); 00587 00588 if ( out ) { 00589 return out; 00590 } 00591 00592 lassert(false); 00593 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bt | ( | ptr< ::lestes::backend_v2::intercode::pi_bt > | ) | [virtual] |
Definition at line 595 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BT_1.
00595 { 00596 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00597 ptr< pi_pi2ge_pi_template > pat; 00598 00599 pat = pi_pi2ge_pi_template::instance(TEM_BT_1); 00600 out = convert(pi,pat); 00601 00602 if ( out ) { 00603 return out; 00604 } 00605 00606 lassert(false); 00607 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bf | ( | ptr< ::lestes::backend_v2::intercode::pi_bf > | ) | [virtual] |
Definition at line 609 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BF_1.
00609 { 00610 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00611 ptr< pi_pi2ge_pi_template > pat; 00612 00613 pat = pi_pi2ge_pi_template::instance(TEM_BF_1); 00614 out = convert(pi,pat); 00615 00616 if ( out ) { 00617 return out; 00618 } 00619 00620 lassert(false); 00621 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bm | ( | ptr< ::lestes::backend_v2::intercode::pi_bm > | ) | [virtual] |
Definition at line 492 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00492 { 00493 lassert2(false,msg_not_implemented_yet); 00494 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bg | ( | ptr< ::lestes::backend_v2::intercode::pi_bg > | ) | [virtual] |
Definition at line 623 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BG_1.
00623 { 00624 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00625 ptr< pi_pi2ge_pi_template > pat; 00626 00627 pat = pi_pi2ge_pi_template::instance(TEM_BG_1); 00628 out = convert(pi,pat); 00629 00630 if ( out ) { 00631 return out; 00632 } 00633 00634 lassert(false); 00635 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bl | ( | ptr< ::lestes::backend_v2::intercode::pi_bl > | ) | [virtual] |
Definition at line 637 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BL_1.
00637 { 00638 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00639 ptr< pi_pi2ge_pi_template > pat; 00640 00641 pat = pi_pi2ge_pi_template::instance(TEM_BL_1); 00642 out = convert(pi,pat); 00643 00644 if ( out ) { 00645 return out; 00646 } 00647 00648 lassert(false); 00649 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_be | ( | ptr< ::lestes::backend_v2::intercode::pi_be > | ) | [virtual] |
Definition at line 651 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BE_1.
00651 { 00652 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00653 ptr< pi_pi2ge_pi_template > pat; 00654 00655 pat = pi_pi2ge_pi_template::instance(TEM_BE_1); 00656 out = convert(pi,pat); 00657 00658 if ( out ) { 00659 return out; 00660 } 00661 00662 lassert(false); 00663 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bng | ( | ptr< ::lestes::backend_v2::intercode::pi_bng > | ) | [virtual] |
Definition at line 665 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNG_1.
00665 { 00666 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00667 ptr< pi_pi2ge_pi_template > pat; 00668 00669 pat = pi_pi2ge_pi_template::instance(TEM_BNG_1); 00670 out = convert(pi,pat); 00671 00672 if ( out ) { 00673 return out; 00674 } 00675 00676 lassert(false); 00677 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bnl | ( | ptr< ::lestes::backend_v2::intercode::pi_bnl > | ) | [virtual] |
Definition at line 679 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNL_1.
00679 { 00680 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00681 ptr< pi_pi2ge_pi_template > pat; 00682 00683 pat = pi_pi2ge_pi_template::instance(TEM_BNL_1); 00684 out = convert(pi,pat); 00685 00686 if ( out ) { 00687 return out; 00688 } 00689 00690 lassert(false); 00691 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bne | ( | ptr< ::lestes::backend_v2::intercode::pi_bne > | ) | [virtual] |
Definition at line 693 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNE_1.
00693 { 00694 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00695 ptr< pi_pi2ge_pi_template > pat; 00696 00697 pat = pi_pi2ge_pi_template::instance(TEM_BNE_1); 00698 out = convert(pi,pat); 00699 00700 if ( out ) { 00701 return out; 00702 } 00703 00704 lassert(false); 00705 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_iba | ( | ptr< ::lestes::backend_v2::intercode::pi_iba > | ) | [virtual] |
Definition at line 456 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00456 { 00457 lassert2(false,msg_not_implemented_yet); 00458 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibn | ( | ptr< ::lestes::backend_v2::intercode::pi_ibn > | ) | [virtual] |
Definition at line 460 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00460 { 00461 lassert2(false,msg_not_implemented_yet); 00462 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibm | ( | ptr< ::lestes::backend_v2::intercode::pi_ibm > | ) | [virtual] |
Definition at line 464 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00464 { 00465 lassert2(false,msg_not_implemented_yet); 00466 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibg | ( | ptr< ::lestes::backend_v2::intercode::pi_ibg > | ) | [virtual] |
Definition at line 468 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00468 { 00469 lassert2(false,msg_not_implemented_yet); 00470 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibl | ( | ptr< ::lestes::backend_v2::intercode::pi_ibl > | ) | [virtual] |
Definition at line 472 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00472 { 00473 lassert2(false,msg_not_implemented_yet); 00474 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibe | ( | ptr< ::lestes::backend_v2::intercode::pi_ibe > | ) | [virtual] |
Definition at line 476 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00476 { 00477 lassert2(false,msg_not_implemented_yet); 00478 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibng | ( | ptr< ::lestes::backend_v2::intercode::pi_ibng > | ) | [virtual] |
Definition at line 480 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00480 { 00481 lassert2(false,msg_not_implemented_yet); 00482 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibnl | ( | ptr< ::lestes::backend_v2::intercode::pi_ibnl > | ) | [virtual] |
Definition at line 484 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00484 { 00485 lassert2(false,msg_not_implemented_yet); 00486 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibne | ( | ptr< ::lestes::backend_v2::intercode::pi_ibne > | ) | [virtual] |
Definition at line 488 of file pi_pi2ge_pi.cc.
References lassert2, and lestes::std::msg_not_implemented_yet.
00488 { 00489 lassert2(false,msg_not_implemented_yet); 00490 }
| ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_leave | ( | ptr< ::lestes::backend_v2::intercode::pi_leave > | ) | [virtual] |
Definition at line 175 of file pi_pi2ge_pi.cc.
References create(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_JMP__1, and last_sp_get().
00175 { 00176 00177 //pi_leave is just regular jump that jumps to the last sequencepoint of the current function. 00178 ptr<ge_pi> ge = ge_pi::create(tm_instr::instance(INSTRUCTION_JMP__1),pi); 00179 ge->jmp_targets_set(vector<srp<ge_sp> >::create()); 00180 last_sp_get()->is_jmp_target_set(true); 00181 ge->jmp_targets_get()->push_back(last_sp_get()); 00182 00183 ptr< ge_pi_vector__type > output = ge_pi_vector__type::create(); 00184 output->push_back(ge); 00185 00186 return output; 00187 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbg | ( | ptr< ::lestes::backend_v2::intercode::pi_sbg > | ) | [virtual] |
Definition at line 707 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBG_1.
00707 { 00708 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00709 ptr< pi_pi2ge_pi_template > pat; 00710 00711 pat = pi_pi2ge_pi_template::instance(TEM_SBG_1); 00712 out = convert(pi,pat); 00713 00714 if ( out ) { 00715 return out; 00716 } 00717 00718 lassert(false); 00719 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbl | ( | ptr< ::lestes::backend_v2::intercode::pi_sbl > | ) | [virtual] |
Definition at line 721 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBL_1.
00721 { 00722 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00723 ptr< pi_pi2ge_pi_template > pat; 00724 00725 pat = pi_pi2ge_pi_template::instance(TEM_SBL_1); 00726 out = convert(pi,pat); 00727 00728 if ( out ) { 00729 return out; 00730 } 00731 00732 lassert(false); 00733 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbe | ( | ptr< ::lestes::backend_v2::intercode::pi_sbe > | ) | [virtual] |
Definition at line 735 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBE_1.
00735 { 00736 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00737 ptr< pi_pi2ge_pi_template > pat; 00738 00739 pat = pi_pi2ge_pi_template::instance(TEM_SBE_1); 00740 out = convert(pi,pat); 00741 00742 if ( out ) { 00743 return out; 00744 } 00745 00746 lassert(false); 00747 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbng | ( | ptr< ::lestes::backend_v2::intercode::pi_sbng > | ) | [virtual] |
Definition at line 749 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBNG_1.
00749 { 00750 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00751 ptr< pi_pi2ge_pi_template > pat; 00752 00753 pat = pi_pi2ge_pi_template::instance(TEM_SBNG_1); 00754 out = convert(pi,pat); 00755 00756 if ( out ) { 00757 return out; 00758 } 00759 00760 lassert(false); 00761 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbnl | ( | ptr< ::lestes::backend_v2::intercode::pi_sbnl > | ) | [virtual] |
Definition at line 763 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBNL_1.
00763 { 00764 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00765 ptr< pi_pi2ge_pi_template > pat; 00766 00767 pat = pi_pi2ge_pi_template::instance(TEM_SBNL_1); 00768 out = convert(pi,pat); 00769 00770 if ( out ) { 00771 return out; 00772 } 00773 00774 lassert(false); 00775 }
| ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbne | ( | ptr< ::lestes::backend_v2::intercode::pi_sbne > | ) | [virtual] |
Definition at line 777 of file pi_pi2ge_pi.mdg.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBNE_1.
00777 { 00778 ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out; 00779 ptr< pi_pi2ge_pi_template > pat; 00780 00781 pat = pi_pi2ge_pi_template::instance(TEM_SBNE_1); 00782 out = convert(pi,pat); 00783 00784 if ( out ) { 00785 return out; 00786 } 00787 00788 lassert(false); 00789 }
| virtual bool lestes::md::instructions::pi_pi2ge_pi::targetmachine__is_instruction_consistent | ( | ptr< ::lestes::md::instructions::tm_instr_base > | instr_version, | |
| ptr< ::lestes::backend_v2::intercode::pi_pi > | pi | |||
| ) | [virtual] |
Function that allows target-machine dependent instruction consistency verification.
Implements lestes::md::instructions::pi_pi2ge_pi_base.
| ptr< pi_pi2ge_pi > lestes::md::instructions::pi_pi2ge_pi::create | ( | ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > | a__pi_pi2ge_pi_base__pi_operands_getter, | |
| ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > | a__pi_pi2ge_pi_base__pi_id_getter, | |||
| ptr< ::lestes::md::instructions::pi_operand2ge_operand > | a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, | |||
| ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > | a__pi_pi2ge_pi_base__pi_sp2ge_sp, | |||
| ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > | a__pi_pi2ge_pi_base__pi_op2count, | |||
| ptr< ::lestes::backend_v2::intercode::ge_sp > | a__pi_pi2ge_pi__first_sp, | |||
| ptr< ::lestes::backend_v2::intercode::ge_sp > | a__pi_pi2ge_pi__last_sp, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand_reg > | a__pi_pi2ge_pi__preserved_reg_edi, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand_reg > | a__pi_pi2ge_pi__preserved_reg_esi, | |||
| ptr< ::lestes::backend_v2::intercode::ge_operand_reg > | a__pi_pi2ge_pi__preserved_reg_ebx | |||
| ) | [static] |
First generated factory method for class pi_pi2ge_pi.
This factory method for class pi_pi2ge_pi takes values of all fields as arguments.
Definition at line 119 of file pi_pi2ge_pi.g.cc.
References pi_pi2ge_pi().
Referenced by create(), and visit_pi_leave().
00129 { 00130 return ptr< pi_pi2ge_pi > ( new pi_pi2ge_pi(a__pi_pi2ge_pi_base__pi_operands_getter, 00131 a__pi_pi2ge_pi_base__pi_id_getter, 00132 a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, 00133 a__pi_pi2ge_pi_base__pi_sp2ge_sp, 00134 a__pi_pi2ge_pi_base__pi_op2count, 00135 a__pi_pi2ge_pi__first_sp, 00136 a__pi_pi2ge_pi__last_sp, 00137 a__pi_pi2ge_pi__preserved_reg_edi, 00138 a__pi_pi2ge_pi__preserved_reg_esi, 00139 a__pi_pi2ge_pi__preserved_reg_ebx) ); 00140 }
| ptr< pi_pi2ge_pi > lestes::md::instructions::pi_pi2ge_pi::create | ( | ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > | a__pi_pi2ge_pi_base__pi_op2count | ) | [static] |
Second generated factory method for class pi_pi2ge_pi.
This factory method for class pi_pi2ge_pi uses initializers.
Definition at line 146 of file pi_pi2ge_pi.g.cc.
References create(), lestes::md::instructions::pi_operand2ge_operand::create(), lestes::backend_v2::intercode::visitor_pi_pi2id::create(), lestes::backend_v2::intercode::visitor_pi_pi2pi_operands::create(), and pi_pi2ge_pi().
00147 { 00148 return ptr< pi_pi2ge_pi > ( new pi_pi2ge_pi(::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands::create(), ::lestes::backend_v2::intercode::visitor_pi_pi2id::create(), ::lestes::md::instructions::pi_operand2ge_operand::create(), ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > ::create(), a__pi_pi2ge_pi_base__pi_op2count, NULL, NULL, NULL, NULL, NULL) ); 00149 }
| ptr< object::reflection_list > lestes::md::instructions::pi_pi2ge_pi::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.
Definition at line 172 of file pi_pi2ge_pi.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::md::instructions::pi_pi2ge_pi_base::reflection_get().
00173 { 00174 if (!reflection) { 00175 typedef class_reflection::field_metadata md; 00176 typedef class_reflection::field_metadata_list mdlist; 00177 ptr<mdlist> mdl = mdlist::create(); 00178 mdl->push_back( md::create( "first_sp", "ge_sp" ) ); 00179 mdl->push_back( md::create( "last_sp", "ge_sp" ) ); 00180 mdl->push_back( md::create( "preserved_reg_edi", "ge_operand_reg" ) ); 00181 mdl->push_back( md::create( "preserved_reg_esi", "ge_operand_reg" ) ); 00182 mdl->push_back( md::create( "preserved_reg_ebx", "ge_operand_reg" ) ); 00183 reflection = reflection_list::create( pi_pi2ge_pi_base::reflection_get() ); 00184 reflection->push_back( class_reflection::create( "pi_pi2ge_pi", mdl ) ); 00185 } 00186 return reflection; 00187 }
| ptr< object::field_list_list > lestes::md::instructions::pi_pi2ge_pi::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.
Definition at line 189 of file pi_pi2ge_pi.g.cc.
References lestes::std::list< T >::create(), and lestes::md::instructions::pi_pi2ge_pi_base::field_values_get().
00190 { 00191 ptr < field_list_list > result = pi_pi2ge_pi_base::field_values_get(); 00192 result->push_back( value_list::create() ); 00193 result->back()->push_back( this->first_sp ); 00194 result->push_back( value_list::create() ); 00195 result->back()->push_back( this->last_sp ); 00196 result->push_back( value_list::create() ); 00197 result->back()->push_back( this->preserved_reg_edi ); 00198 result->push_back( value_list::create() ); 00199 result->back()->push_back( this->preserved_reg_esi ); 00200 result->push_back( value_list::create() ); 00201 result->back()->push_back( this->preserved_reg_ebx ); 00202 return result; 00203 }
| void lestes::md::instructions::pi_pi2ge_pi::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class pi_pi2ge_pi.
Marking routine is used for garbage collection.
Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.
Definition at line 210 of file pi_pi2ge_pi.g.cc.
References lestes::md::instructions::pi_pi2ge_pi_base::gc_mark().
00211 { 00212 pi_pi2ge_pi_base::gc_mark(); 00213 }
srp< ::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::first_sp [private] |
The first sequencepoint of the currently processed function.
Definition at line 327 of file pi_pi2ge_pi.g.hh.
Referenced by first_sp_get(), and first_sp_set().
srp< ::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::last_sp [private] |
The last sequencepoint of the currently processed function.
Definition at line 329 of file pi_pi2ge_pi.g.hh.
Referenced by last_sp_get(), and last_sp_set().
srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_edi [private] |
An operand that hold edi register that should be pushed to the stack before any use of edi within the currently processed function.
Definition at line 331 of file pi_pi2ge_pi.g.hh.
Referenced by preserved_reg_edi_get(), preserved_reg_edi_set(), and visit_pi_sp().
srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_esi [private] |
An operand that hold esi register that should be pushed to the stack before any use of esi within the currently processed function.
Definition at line 333 of file pi_pi2ge_pi.g.hh.
Referenced by preserved_reg_esi_get(), preserved_reg_esi_set(), and visit_pi_sp().
srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_ebx [private] |
An operand that hold ebx register that should be pushed to the stack before any use of ebx within the currently processed function.
Definition at line 335 of file pi_pi2ge_pi.g.hh.
Referenced by preserved_reg_ebx_get(), preserved_reg_ebx_set(), and visit_pi_sp().
ptr< object::reflection_list > lestes::md::instructions::pi_pi2ge_pi::reflection = reflection [static, private] |
Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.
Definition at line 336 of file pi_pi2ge_pi.g.hh.
Referenced by reflection_get().
1.5.1-20070107