lestes::md::tasm::asm_generator_base Class Reference

Performs asm code generation of a translation unit. More...

#include <asm_generator_base.g.hh>

Inheritance diagram for lestes::md::tasm::asm_generator_base:

lestes::std::object lestes::std::mem::keystone lestes::md::tasm::asm_generator List of all members.

Public Member Functions

::std::ostream & output_get () const
 The method output_get returns the value of the field asm_generator_base::output.
virtual void generate_tu_prologue () override
 Generates translation unit prologue.
virtual void generate_tu_body (ptr< vector< srp< ::lestes::backend_v2::structs::func_data > > > tu_data) override
 Generates translation unit's body.
virtual void generate_tu_epilogue () override
 Generates translation unit epilogue.
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

 asm_generator_base (::std::ostream &a__asm_generator_base__output)
 Generated constructor for class asm_generator_base.
virtual void gc_mark ()
 Marking routine for class asm_generator_base.

Private Attributes

::std::ostream & output
 An output stream.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Performs asm code generation of a translation unit.

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

Definition at line 43 of file asm_generator_base.g.hh.


Constructor & Destructor Documentation

lestes::md::tasm::asm_generator_base::asm_generator_base ( ::std::ostream &  a__asm_generator_base__output  )  [protected]

Generated constructor for class asm_generator_base.

Generated constructor for class asm_generator_base.

Author:
lsg

Definition at line 47 of file asm_generator_base.g.cc.

00048         : ::lestes::std::object(), output(a__asm_generator_base__output)
00049 {}


Member Function Documentation

std::ostream & lestes::md::tasm::asm_generator_base::output_get (  )  const

The method output_get returns the value of the field asm_generator_base::output.

Returns:
The value of asm_generator_base::output.
Author:
lsg

Definition at line 38 of file asm_generator_base.g.cc.

References output.

Referenced by lestes::md::tasm::asm_generator::generate_tu_epilogue(), and lestes::md::tasm::asm_generator::generate_tu_prologue().

00039 {
00040         return output;
00041 }

virtual void lestes::md::tasm::asm_generator_base::generate_tu_prologue (  )  [pure virtual]

Generates translation unit prologue.

It generates asm file headers, data sections and declarations

Implemented in lestes::md::tasm::asm_generator.

virtual void lestes::md::tasm::asm_generator_base::generate_tu_body ( ptr< vector< srp< ::lestes::backend_v2::structs::func_data > > >  tu_data  )  [pure virtual]

Generates translation unit's body.

Parameters:
tu_data A list of tu's functions.

Implemented in lestes::md::tasm::asm_generator.

virtual void lestes::md::tasm::asm_generator_base::generate_tu_epilogue (  )  [pure virtual]

Generates translation unit epilogue.

Implemented in lestes::md::tasm::asm_generator.

ptr< object::reflection_list > lestes::md::tasm::asm_generator_base::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::tasm::asm_generator.

Definition at line 51 of file asm_generator_base.g.cc.

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

Referenced by lestes::md::tasm::asm_generator::reflection_get().

00052 {
00053         if (!reflection) {
00054                 typedef class_reflection::field_metadata md;
00055                 typedef class_reflection::field_metadata_list mdlist;
00056                 ptr<mdlist> mdl = mdlist::create();
00057                 mdl->push_back( md::create( "output", "::std::ostream&" ) );
00058                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00059                 reflection->push_back( class_reflection::create( "asm_generator_base", mdl ) );
00060         }
00061         return reflection;
00062 }

ptr< object::field_list_list > lestes::md::tasm::asm_generator_base::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::tasm::asm_generator.

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

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

Referenced by lestes::md::tasm::asm_generator::field_values_get().

00065 {
00066         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00067         result->push_back( value_list::create() );
00068         result->back()->push_back( objectize< ::std::ostream& > ::create( this->output ) );
00069         return result;
00070 }

void lestes::md::tasm::asm_generator_base::gc_mark ( void   )  [protected, virtual]

Marking routine for class asm_generator_base.

Marking routine is used for garbage collection.

Author:
lsg

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

Reimplemented in lestes::md::tasm::asm_generator.

Definition at line 77 of file asm_generator_base.g.cc.

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

Referenced by lestes::md::tasm::asm_generator::gc_mark().

00078 {
00079 	::lestes::std::object::gc_mark();
00080 }


Member Data Documentation

::std::ostream& lestes::md::tasm::asm_generator_base::output [private]

An output stream.

Definition at line 87 of file asm_generator_base.g.hh.

Referenced by output_get().

ptr< object::reflection_list > lestes::md::tasm::asm_generator_base::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::tasm::asm_generator.

Definition at line 88 of file asm_generator_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:50 2007 for lestes by doxygen 1.5.1-20070107