#include <visitor_ge_pi2asm.g.hh>
Inheritance diagram for lestes::backend_v2::intercode::visitor_ge_pi2asm:

Public Member Functions | |
| lstring | generate_generic_code (ptr< ge_pi > ge) |
| virtual lstring | visit_ge_pi (ptr< ::lestes::backend_v2::intercode::ge_pi >) |
| virtual lstring | visit_ge_sp (ptr< ::lestes::backend_v2::intercode::ge_sp >) |
| virtual lstring | visit_ge_call (ptr< ::lestes::backend_v2::intercode::ge_call >) |
| virtual ptr< reflection_list > | reflection_get () const |
| for purposes of dumping | |
| virtual ptr< field_list_list > | field_values_get () const |
| for purposes of dumping | |
Static Public Member Functions | |
| static ptr< visitor_ge_pi2asm > | create () |
| First generated factory method for class visitor_ge_pi2asm. | |
Protected Member Functions | |
| visitor_ge_pi2asm () | |
| Generated constructor for class visitor_ge_pi2asm. | |
| virtual void | gc_mark () |
| Marking routine for class visitor_ge_pi2asm. | |
Static Private Attributes | |
| static ptr< reflection_list > | reflection = reflection |
Definition at line 25 of file visitor_ge_pi2asm.g.hh.
| lestes::backend_v2::intercode::visitor_ge_pi2asm::visitor_ge_pi2asm | ( | ) | [protected] |
Generated constructor for class visitor_ge_pi2asm.
Generated constructor for class visitor_ge_pi2asm.
Definition at line 36 of file visitor_ge_pi2asm.g.cc.
Referenced by create().
00037 : visitor_ge_pi2lstring_gen_base() 00038 {}
| lstring lestes::backend_v2::intercode::visitor_ge_pi2asm::generate_generic_code | ( | ptr< ge_pi > | ge | ) |
Referenced by visit_ge_call(), and visit_ge_pi().
| lstring lestes::backend_v2::intercode::visitor_ge_pi2asm::visit_ge_pi | ( | ptr< ::lestes::backend_v2::intercode::ge_pi > | ) | [virtual] |
Implements lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 124 of file visitor_ge_pi2asm.cc.
References generate_generic_code().
00124 { 00125 return generate_generic_code(ge); 00126 }
| lstring lestes::backend_v2::intercode::visitor_ge_pi2asm::visit_ge_sp | ( | ptr< ::lestes::backend_v2::intercode::ge_sp > | ) | [virtual] |
Implements lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 129 of file visitor_ge_pi2asm.cc.
References lestes::backend_v2::intercode::ge_pi::PROPERTY_SPILLGEN_INFO, and lestes::md::string_replace().
00129 { 00130 lstring asm_code; 00131 00132 if ( ge->is_jmp_target_get() ) { 00133 ::std::ostringstream oss1; 00134 oss1 << ge->uid_get(); 00135 00136 asm_code = string_replace(tm_asm::ent_label_get(), "$id", oss1.str()); 00137 asm_code = string_replace(tm_asm::ent_label_def_get(), "$label", asm_code); 00138 } 00139 00140 #ifdef BACKEND_V2_DEBUG 00141 ::std::ostringstream oss; 00142 oss << "id=" << ge->uid_get() << " (sch_pos:" << ge->schedule_pos_get() << ")"; 00143 00144 if ( ge->pi_source_get() ) { 00145 oss << " pi_src=" << ge->pi_source_get()->reflection_get()->back()->name_get() << "(id:" << ge->pi_source_get()->uid_get() << ")"; 00146 } 00147 00148 if ( ge->bb_get() ) { 00149 oss << " bb=" << ge->bb_get()->uid_get(); 00150 } 00151 00152 if ( ge->properties_get()) { 00153 id2lstring__type::iterator it = ge->properties_get()->find(ge_pi::PROPERTY_SPILLGEN_INFO); 00154 00155 if ( it!=ge->properties_get()->end() ) { 00156 oss << " SPILLGEN: " << it->second; 00157 } 00158 } 00159 00160 asm_code += string_replace(tm_asm::ent_inline_comment_get(),"$text",oss.str()) ; 00161 #endif 00162 00163 return asm_code; 00164 }
| lstring lestes::backend_v2::intercode::visitor_ge_pi2asm::visit_ge_call | ( | ptr< ::lestes::backend_v2::intercode::ge_call > | ) | [virtual] |
Implements lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 166 of file visitor_ge_pi2asm.cc.
References generate_generic_code(), and lestes::md::string_replace().
00166 { 00167 //Get asm output template 00168 lstring asm_code = generate_generic_code(ge); 00169 00170 //Mangle name 00171 lstring mangled_name = name_mangler::instance()->mangle(ge->function_decl_get()); 00172 00173 asm_code = string_replace(asm_code, "$name", mangled_name); 00174 00175 return asm_code; 00176 }
| ptr< visitor_ge_pi2asm > lestes::backend_v2::intercode::visitor_ge_pi2asm::create | ( | ) | [static] |
First generated factory method for class visitor_ge_pi2asm.
This factory method for class visitor_ge_pi2asm takes values of all fields as arguments.
Definition at line 27 of file visitor_ge_pi2asm.g.cc.
References visitor_ge_pi2asm().
00028 { 00029 return ptr< visitor_ge_pi2asm > ( new visitor_ge_pi2asm() ); 00030 }
| ptr< object::reflection_list > lestes::backend_v2::intercode::visitor_ge_pi2asm::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 40 of file visitor_ge_pi2asm.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base::reflection_get().
00041 { 00042 if (!reflection) { 00043 typedef class_reflection::field_metadata md; 00044 typedef class_reflection::field_metadata_list mdlist; 00045 ptr<mdlist> mdl = mdlist::create(); 00046 reflection = reflection_list::create( visitor_ge_pi2lstring_gen_base::reflection_get() ); 00047 reflection->push_back( class_reflection::create( "visitor_ge_pi2asm", mdl ) ); 00048 } 00049 return reflection; 00050 }
| ptr< object::field_list_list > lestes::backend_v2::intercode::visitor_ge_pi2asm::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 52 of file visitor_ge_pi2asm.g.cc.
References lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base::field_values_get().
00053 { 00054 ptr < field_list_list > result = visitor_ge_pi2lstring_gen_base::field_values_get(); 00055 return result; 00056 }
| void lestes::backend_v2::intercode::visitor_ge_pi2asm::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class visitor_ge_pi2asm.
Marking routine is used for garbage collection.
Reimplemented from lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 63 of file visitor_ge_pi2asm.g.cc.
References lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base::gc_mark().
00064 { 00065 visitor_ge_pi2lstring_gen_base::gc_mark(); 00066 }
ptr< object::reflection_list > lestes::backend_v2::intercode::visitor_ge_pi2asm::reflection = reflection [static, private] |
Reimplemented from lestes::backend_v2::intercode::visitor_ge_pi2lstring_gen_base.
Definition at line 56 of file visitor_ge_pi2asm.g.hh.
Referenced by reflection_get().
1.5.1-20070107