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

Public Member Functions | |
| 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) override |
| Generates list of pseudoinstructions that loads literal to a pseudoregister. | |
| virtual ptr< reflection_list > | reflection_get () const |
| for purposes of dumping | |
| virtual ptr< field_list_list > | field_values_get () const |
| for purposes of dumping | |
Protected Member Functions | |
| literal_loader_base () | |
| Generated constructor for class literal_loader_base. | |
| virtual void | gc_mark () |
| Marking routine for class literal_loader_base. | |
Static Private Attributes | |
| static ptr< reflection_list > | reflection = reflection |
Interface generates list of pseudoinstructions that load value of a literal to a register. Generated pseudoinstructions differ according to literal kind. If literal can act as immediate then it is loaded by single pi_ldi pseudoinstruction. Global asm declaration is generated otherwise (managed literal) and literal is referenced through its address.
Note: A concrete derived class is target dependent and it is placed in /target/machine/${TARGET_CPU}/lestes/md/literals/ directory.
Definition at line 66 of file literal_loader_base.g.hh.
| lestes::md::literals::literal_loader_base::literal_loader_base | ( | ) | [protected] |
Generated constructor for class literal_loader_base.
Generated constructor for class literal_loader_base.
Definition at line 22 of file literal_loader_base.g.cc.
00023 : object() 00024 {}
| virtual ptr<list<srp< ::lestes::backend_v2::intercode::pi_pi> > > lestes::md::literals::literal_loader_base::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 | |||
| ) | [pure virtual] |
Generates list of pseudoinstructions that loads literal to a pseudoregister.
| preg | A register operand. | |
| lit | A literal. | |
| psp | A sequencepoint that is set as psp to generated code. | |
| nsp | A sequencepoint that is set as nsp to generated code. |
Implemented in lestes::md::literals::literal_loader.
| ptr< object::reflection_list > lestes::md::literals::literal_loader_base::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::std::object.
Reimplemented in lestes::md::literals::literal_loader.
Definition at line 26 of file literal_loader_base.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().
Referenced by lestes::md::literals::literal_loader::reflection_get().
00027 { 00028 if (!reflection) { 00029 typedef class_reflection::field_metadata md; 00030 typedef class_reflection::field_metadata_list mdlist; 00031 ptr<mdlist> mdl = mdlist::create(); 00032 reflection = reflection_list::create( ::lestes::std::object::reflection_get() ); 00033 reflection->push_back( class_reflection::create( "literal_loader_base", mdl ) ); 00034 } 00035 return reflection; 00036 }
| ptr< object::field_list_list > lestes::md::literals::literal_loader_base::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::std::object.
Reimplemented in lestes::md::literals::literal_loader.
Definition at line 38 of file literal_loader_base.g.cc.
References lestes::std::object::field_values_get().
Referenced by lestes::md::literals::literal_loader::field_values_get().
00039 { 00040 ptr < field_list_list > result = ::lestes::std::object::field_values_get(); 00041 return result; 00042 }
| void lestes::md::literals::literal_loader_base::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class literal_loader_base.
Marking routine is used for garbage collection.
Reimplemented from lestes::std::mem::keystone.
Reimplemented in lestes::md::literals::literal_loader.
Definition at line 49 of file literal_loader_base.g.cc.
References lestes::std::mem::keystone::gc_mark().
Referenced by lestes::md::literals::literal_loader::gc_mark().
00050 { 00051 ::lestes::std::object::gc_mark(); 00052 }
ptr< object::reflection_list > lestes::md::literals::literal_loader_base::reflection = reflection [static, private] |
Reimplemented from lestes::std::object.
Reimplemented in lestes::md::literals::literal_loader.
Definition at line 98 of file literal_loader_base.g.hh.
Referenced by reflection_get().
1.5.1-20070107