lestes::md::literals::literal_loader_base Class Reference

Literal loader. More...

#include <literal_loader_base.g.hh>

Inheritance diagram for lestes::md::literals::literal_loader_base:

lestes::std::object lestes::std::mem::keystone lestes::md::literals::literal_loader List of all members.

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_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_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_listreflection = reflection

Detailed Description

Literal loader.

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.


Constructor & Destructor Documentation

lestes::md::literals::literal_loader_base::literal_loader_base (  )  [protected]

Generated constructor for class literal_loader_base.

Generated constructor for class literal_loader_base.

Author:
lsg

Definition at line 22 of file literal_loader_base.g.cc.

00023         : object()
00024 {}


Member Function Documentation

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.

Parameters:
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.
Returns:
ge-level intercode that loads literal to a pseudoregister.

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.

Author:
lsg

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 }


Member Data Documentation

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().


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:25:48 2007 for lestes by doxygen 1.5.1-20070107