lestes::md::functions::preasmgen_body_changes_base Class Reference

Inserts additional code (e.g. function prologue ) to a function body that is needed for correct execution of a code generated by asm generator. More...

#include <preasmgen_body_changes_base.g.hh>

Inheritance diagram for lestes::md::functions::preasmgen_body_changes_base:

lestes::std::object lestes::std::mem::keystone lestes::md::functions::preasmgen_body_changes List of all members.

Public Member Functions

ptr< ::lestes::lang::cplus::sem::ss_function_declarationfunction_get () const
 The method function_get returns the value of the field preasmgen_body_changes_base::function.
void function_set (const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &)
 The method function_set sets the field preasmgen_body_changes_base::function to the given value.
ptr< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::ge_pi > > > 
body_get () const
 The method body_get returns the value of the field preasmgen_body_changes_base::body.
void body_set (const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > &)
 The method body_set sets the field preasmgen_body_changes_base::body to the given value.
virtual void process_body () override
 Emits code to the function's body..
virtual ptr< list< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
get_result () override
 Returns the function's body with the additional code.
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

 preasmgen_body_changes_base (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__preasmgen_body_changes_base__function, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__preasmgen_body_changes_base__body)
 Generated constructor for class preasmgen_body_changes_base.
virtual void gc_mark ()
 Marking routine for class preasmgen_body_changes_base.

Private Attributes

srp< ::lestes::lang::cplus::sem::ss_function_declarationfunction
 Declaration of the function.
srp< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::ge_pi > > > 
body
 The function's body.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Inserts additional code (e.g. function prologue ) to a function body that is needed for correct execution of a code generated by asm generator.

Note: A concrete derived class is target dependent and it is placed in /target/machine/${TARGET_CPU}/lestes/md/functions/ directory.

Definition at line 52 of file preasmgen_body_changes_base.g.hh.


Constructor & Destructor Documentation

lestes::md::functions::preasmgen_body_changes_base::preasmgen_body_changes_base ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__preasmgen_body_changes_base__function,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > >  a__preasmgen_body_changes_base__body 
) [protected]

Generated constructor for class preasmgen_body_changes_base.

Generated constructor for class preasmgen_body_changes_base.

Author:
lsg

Definition at line 64 of file preasmgen_body_changes_base.g.cc.

00066         : ::lestes::std::object(), function(checked(a__preasmgen_body_changes_base__function)), body(checked(a__preasmgen_body_changes_base__body))
00067 {}


Member Function Documentation

ptr<::lestes::lang::cplus::sem::ss_function_declaration > lestes::md::functions::preasmgen_body_changes_base::function_get (  )  const

The method function_get returns the value of the field preasmgen_body_changes_base::function.

Returns:
The value of preasmgen_body_changes_base::function.
Author:
lsg

Definition at line 28 of file preasmgen_body_changes_base.g.cc.

References function.

Referenced by lestes::md::functions::preasmgen_body_changes::process_body().

00029 {
00030         return function;
00031 }

void lestes::md::functions::preasmgen_body_changes_base::function_set ( const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &  x  ) 

The method function_set sets the field preasmgen_body_changes_base::function to the given value.

Parameters:
[in] x The new value to set preasmgen_body_changes_base::function to.
Author:
lsg

Definition at line 37 of file preasmgen_body_changes_base.g.cc.

References function.

00038 {
00039         preasmgen_body_changes_base::function = x;
00040 }

ptr<::lestes::std::list< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::functions::preasmgen_body_changes_base::body_get (  )  const

The method body_get returns the value of the field preasmgen_body_changes_base::body.

Returns:
The value of preasmgen_body_changes_base::body.
Author:
lsg

Definition at line 46 of file preasmgen_body_changes_base.g.cc.

References body.

Referenced by lestes::md::functions::preasmgen_body_changes::get_result(), and lestes::md::functions::preasmgen_body_changes::process_body().

00047 {
00048         return body;
00049 }

void lestes::md::functions::preasmgen_body_changes_base::body_set ( const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > &  x  ) 

The method body_set sets the field preasmgen_body_changes_base::body to the given value.

Parameters:
[in] x The new value to set preasmgen_body_changes_base::body to.
Author:
lsg

Definition at line 55 of file preasmgen_body_changes_base.g.cc.

References body.

00056 {
00057         preasmgen_body_changes_base::body = x;
00058 }

virtual void lestes::md::functions::preasmgen_body_changes_base::process_body (  )  [pure virtual]

Emits code to the function's body..

Implemented in lestes::md::functions::preasmgen_body_changes.

virtual ptr<list<srp< ::lestes::backend_v2::intercode::ge_pi > > > lestes::md::functions::preasmgen_body_changes_base::get_result (  )  [pure virtual]

Returns the function's body with the additional code.

Implemented in lestes::md::functions::preasmgen_body_changes.

ptr< object::reflection_list > lestes::md::functions::preasmgen_body_changes_base::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::functions::preasmgen_body_changes.

Definition at line 69 of file preasmgen_body_changes_base.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().

Referenced by lestes::md::functions::preasmgen_body_changes::reflection_get().

00070 {
00071         if (!reflection) {
00072                 typedef class_reflection::field_metadata md;
00073                 typedef class_reflection::field_metadata_list mdlist;
00074                 ptr<mdlist> mdl = mdlist::create();
00075                 mdl->push_back( md::create( "function", "ss_function_declaration" ) );
00076                 mdl->push_back( md::create( "body", "list&lt; srp&lt; ::lestes::backend_v2::intercode::ge_pi &gt; &gt;" ) );
00077                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00078                 reflection->push_back( class_reflection::create( "preasmgen_body_changes_base", mdl ) );
00079         }
00080         return reflection;
00081 }

ptr< object::field_list_list > lestes::md::functions::preasmgen_body_changes_base::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::functions::preasmgen_body_changes.

Definition at line 83 of file preasmgen_body_changes_base.g.cc.

References lestes::std::list< T >::create(), and lestes::std::object::field_values_get().

Referenced by lestes::md::functions::preasmgen_body_changes::field_values_get().

00084 {
00085         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00086         result->push_back( value_list::create() );
00087         result->back()->push_back( this->function );
00088         result->push_back( value_list::create() );
00089         result->back()->push_back( this->body );
00090         return result;
00091 }

void lestes::md::functions::preasmgen_body_changes_base::gc_mark ( void   )  [protected, virtual]

Marking routine for class preasmgen_body_changes_base.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

Reimplemented in lestes::md::functions::preasmgen_body_changes.

Definition at line 98 of file preasmgen_body_changes_base.g.cc.

References lestes::std::mem::keystone::gc_mark().

Referenced by lestes::md::functions::preasmgen_body_changes::gc_mark().

00099 {
00100 	::lestes::std::object::gc_mark();
00101 }


Member Data Documentation

srp< ::lestes::lang::cplus::sem::ss_function_declaration > lestes::md::functions::preasmgen_body_changes_base::function [private]

Declaration of the function.

Definition at line 90 of file preasmgen_body_changes_base.g.hh.

Referenced by function_get(), and function_set().

srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > lestes::md::functions::preasmgen_body_changes_base::body [private]

The function's body.

Definition at line 92 of file preasmgen_body_changes_base.g.hh.

Referenced by body_get(), and body_set().

ptr< object::reflection_list > lestes::md::functions::preasmgen_body_changes_base::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::functions::preasmgen_body_changes.

Definition at line 93 of file preasmgen_body_changes_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:39 2007 for lestes by doxygen 1.5.1-20070107