#include <asm_generator.g.hh>
Inheritance diagram for lestes::md::tasm::asm_generator:

Public Member Functions | |
| virtual void | generate_tu_prologue () |
| Generates translation unit prologue. | |
| virtual void | generate_tu_body (ptr< vector< srp< ::lestes::backend_v2::structs::func_data > > > tu_data) |
| Generates translation unit's body. | |
| virtual void | generate_tu_epilogue () |
| Generates translation unit epilogue. | |
| void | process_function (ptr< ::lestes::backend_v2::structs::func_data > data) |
| 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< asm_generator > | create (::std::ostream &a__asm_generator_base__output) |
| First generated factory method for class asm_generator. | |
Protected Member Functions | |
| asm_generator (::std::ostream &a__asm_generator_base__output) | |
| Generated constructor for class asm_generator. | |
| virtual void | gc_mark () |
| Marking routine for class asm_generator. | |
Static Private Attributes | |
| static ptr< reflection_list > | reflection = reflection |
Definition at line 32 of file asm_generator.g.hh.
| lestes::md::tasm::asm_generator::asm_generator | ( | ::std::ostream & | a__asm_generator_base__output | ) | [protected] |
Generated constructor for class asm_generator.
Generated constructor for class asm_generator.
Definition at line 36 of file asm_generator.g.cc.
Referenced by create().
00037 : asm_generator_base(a__asm_generator_base__output) 00038 {}
| void lestes::md::tasm::asm_generator::generate_tu_prologue | ( | ) | [virtual] |
Generates translation unit prologue.
It generates asm file headers, data sections and declarations
Implements lestes::md::tasm::asm_generator_base.
Definition at line 29 of file asm_generator.cc.
References lestes::md::tasm::tm_asm::ent_section_data_get(), lestes::md::tasm::tm_asm::ent_section_uninitialized_data_get(), and lestes::md::tasm::asm_generator_base::output_get().
00029 { 00030 /* Generate asm file header */ 00031 output_get() << ";This file is an output of Lestes C++ compiler.\n"; 00032 00033 //Get singleton instance of the allocator for global variables 00034 ptr<global_variable_allocator> glob_var_allocator = global_variable_allocator::instance(); 00035 00036 /* Generate uninitialized data section header */ 00037 output_get() << tm_asm::ent_section_uninitialized_data_get(); 00038 00039 //Generate asm declarations for global variables 00040 glob_var_allocator->emit_asm_declarations_for_uninitialized(output_get()); 00041 00042 output_get() << ::std::endl; 00043 00044 /* Generate data section header */ 00045 output_get() << tm_asm::ent_section_data_get(); 00046 00047 //Generate asm declarations for global variables 00048 glob_var_allocator->emit_asm_declarations_for_initialized(output_get()); 00049 00050 //Generate asm declarations for managed literals 00051 literal_loader::instance()->emit_global_declarations(output_get()); 00052 00053 output_get() << ::std::endl; 00054 }
| virtual void lestes::md::tasm::asm_generator::generate_tu_body | ( | ptr< vector< srp< ::lestes::backend_v2::structs::func_data > > > | tu_data | ) | [virtual] |
Generates translation unit's body.
| tu_data | A list of tu's functions. |
Implements lestes::md::tasm::asm_generator_base.
| void lestes::md::tasm::asm_generator::generate_tu_epilogue | ( | ) | [virtual] |
Generates translation unit epilogue.
Implements lestes::md::tasm::asm_generator_base.
Definition at line 73 of file asm_generator.cc.
References lestes::md::tasm::asm_generator_base::output_get().
00073 { 00074 output_get() << ::std::endl; 00075 }
| void lestes::md::tasm::asm_generator::process_function | ( | ptr< ::lestes::backend_v2::structs::func_data > | data | ) |
| ptr< asm_generator > lestes::md::tasm::asm_generator::create | ( | ::std::ostream & | a__asm_generator_base__output | ) | [static] |
First generated factory method for class asm_generator.
This factory method for class asm_generator takes values of all fields as arguments.
Definition at line 27 of file asm_generator.g.cc.
References asm_generator().
00028 { 00029 return ptr< asm_generator > ( new asm_generator(a__asm_generator_base__output) ); 00030 }
| ptr< object::reflection_list > lestes::md::tasm::asm_generator::reflection_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::md::tasm::asm_generator_base.
Definition at line 40 of file asm_generator.g.cc.
References lestes::std::list< T >::create(), reflection, and lestes::md::tasm::asm_generator_base::reflection_get().
00041 { 00042 if (!reflection) { 00043 typedef class_reflection::field_metadata md; 00044 typedef class_reflection::field_metadata_list mdlist; 00045 ptr<mdlist> mdl = mdlist::create(); 00046 reflection = reflection_list::create( asm_generator_base::reflection_get() ); 00047 reflection->push_back( class_reflection::create( "asm_generator", mdl ) ); 00048 } 00049 return reflection; 00050 }
| ptr< object::field_list_list > lestes::md::tasm::asm_generator::field_values_get | ( | ) | const [virtual] |
for purposes of dumping
Reimplemented from lestes::md::tasm::asm_generator_base.
Definition at line 52 of file asm_generator.g.cc.
References lestes::md::tasm::asm_generator_base::field_values_get().
00053 { 00054 ptr < field_list_list > result = asm_generator_base::field_values_get(); 00055 return result; 00056 }
| void lestes::md::tasm::asm_generator::gc_mark | ( | void | ) | [protected, virtual] |
Marking routine for class asm_generator.
Marking routine is used for garbage collection.
Reimplemented from lestes::md::tasm::asm_generator_base.
Definition at line 63 of file asm_generator.g.cc.
References lestes::md::tasm::asm_generator_base::gc_mark().
00064 { 00065 asm_generator_base::gc_mark(); 00066 }
ptr< object::reflection_list > lestes::md::tasm::asm_generator::reflection = reflection [static, private] |
Reimplemented from lestes::md::tasm::asm_generator_base.
Definition at line 63 of file asm_generator.g.hh.
Referenced by reflection_get().
1.5.1-20070107