#include <literal_loader.g.hh>
Inheritance diagram for lestes::md::literals::literal_loader:

Public Member Functions | |
| ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > | managed_literals_get () const |
| The method managed_literals_get returns the value of the field literal_loader::managed_literals. | |
| void | managed_literals_set (const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > &) |
| The method managed_literals_set sets the field literal_loader::managed_literals to the given value. | |
| virtual ptr< list< srp< ::lestes::backend_v2::intercode::pi_pi > > > | generate_load (ptr< ::lestes::backend_v2::intercode::pi_preg > preg, ptr< ::lestes::backend_v2::intercode::pi_lit > lit, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp) |
| Generates list of pseudoinstructions that loads literal to a pseudoregister. | |
| void | emit_global_declarations (::std::ostream &output) |
| Emits declarations for managed literals to a stream. | |
| bool | is_managed (ptr< ::lestes::backend_v2::intercode::pi_lit > lit) |
| Tells whether a literal is managed. | |
| lstring | get_id_for_managed_literal (ptr< ::lestes::backend_v2::intercode::pi_lit > lit) |
| Returns id of managed literal. | |
| 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< literal_loader > | singleton_instance_get () |
| The method singleton_instance_get returns the value of the field literal_loader::singleton_instance. | |
| static void | singleton_instance_set (const ptr< literal_loader > &) |
| The method singleton_instance_set sets the field literal_loader::singleton_instance to the given value. | |
| static ptr< literal_loader > | instance () |
| Returns instance. | |
| static ptr< literal_loader > | create (ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > a__literal_loader__managed_literals) |
| First generated factory method for class literal_loader. | |
| static ptr< literal_loader > | create () |
| Second generated factory method for class literal_loader. | |
Protected Member Functions | |
| literal_loader (ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > a__literal_loader__managed_literals) | |
| Generated constructor for class literal_loader. | |
| virtual void | gc_mark () |
| Marking routine for class literal_loader. | |
Private Attributes | |
| srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > | managed_literals |
| Registered literals. | |
Static Private Attributes | |
| static ptr< literal_loader > | singleton_instance = NULL |
| static ptr< reflection_list > | reflection = reflection |
Definition at line 57 of file literal_loader.g.hh.
| lestes::md::literals::literal_loader::literal_loader | ( | ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > | a__literal_loader__managed_literals | ) | [protected] |
Generated constructor for class literal_loader.
Generated constructor for class literal_loader.
Definition at line 77 of file literal_loader.g.cc.
Referenced by create().
00078 : literal_loader_base(), managed_literals(checked(a__literal_loader__managed_literals)) 00079 {}
| ptr<::lestes::std::map< srp<::lestes::backend_v2::intercode::pi_lit >, ulint > > lestes::md::literals::literal_loader::managed_literals_get | ( | ) | const |
The method managed_literals_get returns the value of the field literal_loader::managed_literals.
Definition at line 23 of file literal_loader.g.cc.
References managed_literals.
00024 { 00025 return managed_literals; 00026 }
| void lestes::md::literals::literal_loader::managed_literals_set | ( | const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > & | x | ) |
The method managed_literals_set sets the field literal_loader::managed_literals to the given value.
| [in] | x | The new value to set literal_loader::managed_literals to. |
Definition at line 32 of file literal_loader.g.cc.
References managed_literals.
00033 { 00034 literal_loader::managed_literals = x; 00035 }
| ptr< literal_loader > lestes::md::literals::literal_loader::singleton_instance_get | ( | ) | [static] |
The method singleton_instance_get returns the value of the field literal_loader::singleton_instance.
Definition at line 41 of file literal_loader.g.cc.
References singleton_instance.
00042 { 00043 return singleton_instance; 00044 }
| void lestes::md::literals::literal_loader::singleton_instance_set | ( | const ptr< literal_loader > & | x | ) | [static] |
The method singleton_instance_set sets the field literal_loader::singleton_instance to the given value.
| [in] | x | The new value to set literal_loader::singleton_instance to. |
Definition at line 50 of file literal_loader.g.cc.
References singleton_instance.
Referenced by instance().
00051 { 00052 literal_loader::singleton_instance = x; 00053 }
| virtual ptr<list<srp< ::lestes::backend_v2::intercode::pi_pi> > > lestes::md::literals::literal_loader::generate_load | ( | ptr< ::lestes::backend_v2::intercode::pi_preg > | preg, | |
| ptr< ::lestes::backend_v2::intercode::pi_lit > | lit, | |||
| ptr< ::lestes::backend_v2::intercode::pi_sp > | psp, | |||
| ptr< ::lestes::backend_v2::intercode::pi_sp > | nsp | |||
| ) | [virtual] |
Generates list of pseudoinstructions that loads literal to a pseudoregister.
Implements lestes::md::literals::literal_loader_base.
| void lestes::md::literals::literal_loader::emit_global_declarations | ( | ::std::ostream & | output | ) |
Emits declarations for managed literals to a stream.
| output | The stream. |
Definition at line 84 of file literal_loader.cc.
References get_id_for_managed_literal(), managed_literals, and lestes::md::string_replace().
00084 { 00085 //Go through managed literals and emit global declaration for them. 00086 lit2ulint_map_type::iterator it; 00087 for(it=managed_literals->begin(); it!=managed_literals->end(); it++) { 00088 //Get template for global declaration. 00089 lstring code = tm_asm::ent_global_simple_decl_get(); 00090 00091 //Get literal id. 00092 lstring id = get_id_for_managed_literal(it->first); 00093 00094 //Get literal type. 00095 lstring type = it->first->value_get()->get_asm_definition_type(); 00096 00097 //Get literal initial value. 00098 lstring value = it->first->value_get()->get_asm_definition_val(); 00099 00100 code = string_replace(code,"$id",id); 00101 code = string_replace(code,"$type",type); 00102 code = string_replace(code, "$value", value); 00103 00104 //Emit declaration to output stream. 00105 output << code; 00106 } 00107 }
| bool lestes::md::literals::literal_loader::is_managed | ( | ptr< ::lestes::backend_v2::intercode::pi_lit > | lit | ) |
Tells whether a literal is managed.
| lstring lestes::md::literals::literal_loader::get_id_for_managed_literal | ( | ptr< ::lestes::backend_v2::intercode::pi_lit > | lit | ) |
| ptr< literal_loader > lestes::md::literals::literal_loader::instance | ( | ) | [static] |
Returns instance.
Definition at line 30 of file literal_loader.cc.
References create(), singleton_instance, and singleton_instance_set().
00030 { 00031 if ( !singleton_instance ) { 00032 //An singleton instance has not been created yet. Create it! 00033 singleton_instance_set(literal_loader::create()); 00034 } 00035 //Return instance. 00036 return singleton_instance; 00037 }
| ptr< literal_loader > lestes::md::literals::literal_loader::create | ( | ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > | a__literal_loader__managed_literals | ) | [static] |
First generated factory method for class literal_loader.
This factory method for class literal_loader takes values of all fields as arguments.
Definition at line 59 of file literal_loader.g.cc.
References literal_loader().
00060 { 00061 return ptr< literal_loader > ( new literal_loader(a__literal_loader__managed_literals) ); 00062 }
| ptr< literal_loader > lestes::md::literals::literal_loader::create | ( | void | ) | [static] |
Second generated factory method for class literal_loader.
This factory method for class literal_loader uses initializers.
Definition at line 68 of file literal_loader.g.cc.
References literal_loader().
Referenced by instance().
00069 { 00070 return ptr< literal_loader > ( new literal_loader(::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > ::create()) ); 00071 }
| ptr< object::reflection_list > lestes::md::literals::literal_loader::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::md::literals::literal_loader_base.
Definition at line 81 of file literal_loader.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::md::literals::literal_loader_base::reflection_get().
00082 { 00083 if (!reflection) { 00084 typedef class_reflection::field_metadata md; 00085 typedef class_reflection::field_metadata_list mdlist; 00086 ptr<mdlist> mdl = mdlist::create(); 00087 mdl->push_back( md::create( "managed_literals", "map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint >" ) ); 00088 mdl->push_back( md::create( "singleton_instance", "literal_loader" ) ); 00089 reflection = reflection_list::create( literal_loader_base::reflection_get() ); 00090 reflection->push_back( class_reflection::create( "literal_loader", mdl ) ); 00091 } 00092 return reflection; 00093 }
| ptr< object::field_list_list > lestes::md::literals::literal_loader::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::md::literals::literal_loader_base.
Definition at line 95 of file literal_loader.g.cc.
References lestes::std::list< T >::create(), and lestes::md::literals::literal_loader_base::field_values_get().
00096 { 00097 ptr < field_list_list > result = literal_loader_base::field_values_get(); 00098 result->push_back( value_list::create() ); 00099 result->back()->push_back( this->managed_literals ); 00100 result->push_back( value_list::create() ); 00101 result->back()->push_back( this->singleton_instance ); 00102 return result; 00103 }
| void lestes::md::literals::literal_loader::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class literal_loader.
Marking routine is used for garbage collection.
Reimplemented from lestes::md::literals::literal_loader_base.
Definition at line 110 of file literal_loader.g.cc.
References lestes::md::literals::literal_loader_base::gc_mark().
00111 { 00112 literal_loader_base::gc_mark(); 00113 }
srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_lit >, ulint > > lestes::md::literals::literal_loader::managed_literals [private] |
Registered literals.
Definition at line 111 of file literal_loader.g.hh.
Referenced by emit_global_declarations(), managed_literals_get(), and managed_literals_set().
ptr< literal_loader > lestes::md::literals::literal_loader::singleton_instance = NULL [static, private] |
Definition at line 112 of file literal_loader.g.hh.
Referenced by instance(), singleton_instance_get(), and singleton_instance_set().
ptr< object::reflection_list > lestes::md::literals::literal_loader::reflection = reflection [static, private] |
Reimplemented from lestes::md::literals::literal_loader_base.
Definition at line 113 of file literal_loader.g.hh.
Referenced by reflection_get().
1.5.1-20070107