ge.g.cc

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \brief ge-level pseudoinstructions.
00006         \author jaz
00007 */
00008 
00009 #include <lestes/backend_v2/intercode/pi.g.hh>
00010 #include <lestes/lang/cplus/sem/ss_declaration.g.hh>
00011 #include <lestes/backend_v2/intercode/ge_visitor_bases.v.g.hh>
00012 #include <lestes/backend_v2/workers/bb_finder.g.hh>
00013 
00014 #include <lestes/std/list.hh>
00015 #include <lestes/std/pair.hh>
00016 #include <lestes/std/reflect.hh>
00017 
00018 #include <lestes/backend_v2/intercode/ge.g.hh>
00019 
00020 package(lestes);
00021 package(backend_v2);
00022 package(intercode);
00023 
00024 
00025 // ------------- Class ge_pi follows. -------------
00026 
00027 /*!
00028    \returns The value of ge_pi::instruction.
00029    \author lsg
00030  */
00031 ptr< ::lestes::md::instructions::tm_instr_base > ge_pi::instruction_get() const
00032 {
00033         return instruction;
00034 }
00035 
00036 /*!
00037    \param[in] x The new value to set ge_pi::instruction to.
00038    \author lsg
00039  */
00040 void ge_pi::instruction_set(const ptr< ::lestes::md::instructions::tm_instr_base > & x)
00041 {
00042         ge_pi::instruction = x;
00043 }
00044 
00045 /*!
00046    \returns The value of ge_pi::pi_source.
00047    \author lsg
00048  */
00049 ptr< ::lestes::backend_v2::intercode::pi_pi > ge_pi::pi_source_get() const
00050 {
00051         return pi_source;
00052 }
00053 
00054 /*!
00055    \param[in] x The new value to set ge_pi::pi_source to.
00056    \author lsg
00057  */
00058 void ge_pi::pi_source_set(const ptr< ::lestes::backend_v2::intercode::pi_pi > & x)
00059 {
00060         ge_pi::pi_source = x;
00061 }
00062 
00063 /*!
00064    \returns The value of ge_pi::operands_input.
00065    \author lsg
00066  */
00067 ptr< ::lestes::std::vector< srp< ge_operand > > > ge_pi::operands_input_get() const
00068 {
00069         return operands_input;
00070 }
00071 
00072 /*!
00073    \param[in] x The new value to set ge_pi::operands_input to.
00074    \author lsg
00075  */
00076 void ge_pi::operands_input_set(const ptr< ::lestes::std::vector< srp< ge_operand > > > & x)
00077 {
00078         ge_pi::operands_input = x;
00079 }
00080 
00081 /*!
00082    \returns The value of ge_pi::operands_output.
00083    \author lsg
00084  */
00085 ptr< ::lestes::std::vector< srp< ge_operand > > > ge_pi::operands_output_get() const
00086 {
00087         return operands_output;
00088 }
00089 
00090 /*!
00091    \param[in] x The new value to set ge_pi::operands_output to.
00092    \author lsg
00093  */
00094 void ge_pi::operands_output_set(const ptr< ::lestes::std::vector< srp< ge_operand > > > & x)
00095 {
00096         ge_pi::operands_output = x;
00097 }
00098 
00099 /*!
00100    \returns The value of ge_pi::dependencies.
00101    \author lsg
00102  */
00103 ptr< ::lestes::std::set< srp< ge_pi > > > ge_pi::dependencies_get() const
00104 {
00105         return dependencies;
00106 }
00107 
00108 /*!
00109    \param[in] x The new value to set ge_pi::dependencies to.
00110    \author lsg
00111  */
00112 void ge_pi::dependencies_set(const ptr< ::lestes::std::set< srp< ge_pi > > > & x)
00113 {
00114         ge_pi::dependencies = x;
00115 }
00116 
00117 /*!
00118    \returns The value of ge_pi::jmp_targets.
00119    \author lsg
00120  */
00121 ptr< ::lestes::std::vector< srp< ge_sp > > > ge_pi::jmp_targets_get() const
00122 {
00123         return jmp_targets;
00124 }
00125 
00126 /*!
00127    \param[in] x The new value to set ge_pi::jmp_targets to.
00128    \author lsg
00129  */
00130 void ge_pi::jmp_targets_set(const ptr< ::lestes::std::vector< srp< ge_sp > > > & x)
00131 {
00132         ge_pi::jmp_targets = x;
00133 }
00134 
00135 /*!
00136    \returns The value of ge_pi::schedule_pos.
00137    \author lsg
00138  */
00139 ulint ge_pi::schedule_pos_get() const
00140 {
00141         return schedule_pos;
00142 }
00143 
00144 /*!
00145    \param[in] x The new value to set ge_pi::schedule_pos to.
00146    \author lsg
00147  */
00148 void ge_pi::schedule_pos_set(ulint x)
00149 {
00150         ge_pi::schedule_pos = x;
00151 }
00152 
00153 /*!
00154    \returns The value of ge_pi::bb.
00155    \author lsg
00156  */
00157 ptr< ::lestes::backend_v2::workers::basic_block > ge_pi::bb_get() const
00158 {
00159         return bb;
00160 }
00161 
00162 /*!
00163    \param[in] x The new value to set ge_pi::bb to.
00164    \author lsg
00165  */
00166 void ge_pi::bb_set(const ptr< ::lestes::backend_v2::workers::basic_block > & x)
00167 {
00168         ge_pi::bb = x;
00169 }
00170 
00171 /*!
00172    \returns The value of ge_pi::properties.
00173    \author lsg
00174  */
00175 ptr< ::lestes::std::map< ulint, lstring > > ge_pi::properties_get() const
00176 {
00177         return properties;
00178 }
00179 
00180 /*!
00181    \param[in] x The new value to set ge_pi::properties to.
00182    \author lsg
00183  */
00184 void ge_pi::properties_set(const ptr< ::lestes::std::map< ulint, lstring > > & x)
00185 {
00186         ge_pi::properties = x;
00187 }
00188 
00189 lstring ge_pi::accept_visitor_ge_pi2lstring_gen_base( ptr< visitor_ge_pi2lstring_gen_base > v )
00190 {
00191         return v->visit_ge_pi( this );
00192 }
00193 
00194 /*!
00195    This factory method for class ge_pi takes values of all fields as arguments.
00196    \author lsg
00197  */
00198 ptr< ge_pi > ge_pi::create(ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00199                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00200                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input,
00201                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output,
00202                 ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies,
00203                 ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets,
00204                 ulint a__ge_pi__schedule_pos,
00205                 ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb,
00206                 ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties)
00207 {
00208         return ptr< ge_pi > ( new ge_pi(a__ge_pi__instruction,
00209                 a__ge_pi__pi_source,
00210                 a__ge_pi__operands_input,
00211                 a__ge_pi__operands_output,
00212                 a__ge_pi__dependencies,
00213                 a__ge_pi__jmp_targets,
00214                 a__ge_pi__schedule_pos,
00215                 a__ge_pi__bb,
00216                 a__ge_pi__properties) );
00217 }
00218 
00219 /*!
00220    This factory method for class ge_pi uses initializers.
00221    \author lsg
00222  */
00223 ptr< ge_pi > ge_pi::create(ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00224                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source)
00225 {
00226         return ptr< ge_pi > ( new ge_pi(a__ge_pi__instruction, a__ge_pi__pi_source, ::lestes::std::vector< srp< ge_operand > > ::create(), ::lestes::std::vector< srp< ge_operand > > ::create(), ::lestes::std::set< srp< ge_pi > > ::create(), NULL, 0, NULL, NULL) );
00227 }
00228 
00229 /*!
00230    Generated constructor for class ge_pi.
00231    \author lsg
00232  */
00233 ge_pi::ge_pi (ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00234                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00235                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input,
00236                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output,
00237                 ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies,
00238                 ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets,
00239                 ulint a__ge_pi__schedule_pos,
00240                 ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb,
00241                 ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties)
00242         : ::lestes::std::object(), instruction(a__ge_pi__instruction), pi_source(a__ge_pi__pi_source), operands_input(checked(a__ge_pi__operands_input)), operands_output(checked(a__ge_pi__operands_output)), dependencies(checked(a__ge_pi__dependencies)), jmp_targets(a__ge_pi__jmp_targets), schedule_pos(a__ge_pi__schedule_pos), bb(a__ge_pi__bb), properties(a__ge_pi__properties)
00243 {}
00244 
00245 ptr< object::reflection_list > ge_pi::reflection_get() const
00246 {
00247         if (!reflection) {
00248                 typedef class_reflection::field_metadata md;
00249                 typedef class_reflection::field_metadata_list mdlist;
00250                 ptr<mdlist> mdl = mdlist::create();
00251                 mdl->push_back( md::create( "instruction", "tm_instr_base" ) );
00252                 mdl->push_back( md::create( "pi_source", "pi_pi" ) );
00253                 mdl->push_back( md::create( "operands_input", "vector&lt; srp&lt; ge_operand &gt; &gt;" ) );
00254                 mdl->push_back( md::create( "operands_output", "vector&lt; srp&lt; ge_operand &gt; &gt;" ) );
00255                 mdl->push_back( md::create( "dependencies", "set&lt; srp&lt; ge_pi &gt; &gt;" ) );
00256                 mdl->push_back( md::create( "jmp_targets", "vector&lt; srp&lt; ge_sp &gt; &gt;" ) );
00257                 mdl->push_back( md::create( "schedule_pos", "ulint" ) );
00258                 mdl->push_back( md::create( "bb", "basic_block" ) );
00259                 mdl->push_back( md::create( "properties", "map&lt; ulint, lstring &gt;" ) );
00260                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00261                 reflection->push_back( class_reflection::create( "ge_pi", mdl ) );
00262         }
00263         return reflection;
00264 }
00265 
00266 ptr< object::field_list_list > ge_pi::field_values_get() const
00267 {
00268         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00269         result->push_back( value_list::create() );
00270         result->back()->push_back( this->instruction );
00271         result->push_back( value_list::create() );
00272         result->back()->push_back( this->pi_source );
00273         result->push_back( value_list::create() );
00274         result->back()->push_back( this->operands_input );
00275         result->push_back( value_list::create() );
00276         result->back()->push_back( this->operands_output );
00277         result->push_back( value_list::create() );
00278         result->back()->push_back( this->dependencies );
00279         result->push_back( value_list::create() );
00280         result->back()->push_back( this->jmp_targets );
00281         result->push_back( value_list::create() );
00282         result->back()->push_back( objectize< ulint > ::create( this->schedule_pos ) );
00283         result->push_back( value_list::create() );
00284         result->back()->push_back( this->bb );
00285         result->push_back( value_list::create() );
00286         result->back()->push_back( this->properties );
00287         return result;
00288 }
00289 
00290 
00291 /*!
00292    Marking routine is used for garbage collection.
00293    \author lsg
00294  */
00295 void ge_pi::gc_mark()
00296 {
00297 	::lestes::std::object::gc_mark();
00298 }
00299 
00300 // End of class ge_pi.
00301 
00302 // ------------- Class ge_sp follows. -------------
00303 
00304 /*!
00305    \returns The value of ge_sp::is_jmp_target.
00306    \author lsg
00307  */
00308 bool ge_sp::is_jmp_target_get() const
00309 {
00310         return is_jmp_target;
00311 }
00312 
00313 /*!
00314    \param[in] x The new value to set ge_sp::is_jmp_target to.
00315    \author lsg
00316  */
00317 void ge_sp::is_jmp_target_set(bool x)
00318 {
00319         ge_sp::is_jmp_target = x;
00320 }
00321 
00322 lstring ge_sp::accept_visitor_ge_pi2lstring_gen_base( ptr< visitor_ge_pi2lstring_gen_base > v )
00323 {
00324         return v->visit_ge_sp( this );
00325 }
00326 
00327 /*!
00328    This factory method for class ge_sp takes values of all fields as arguments.
00329    \author lsg
00330  */
00331 ptr< ge_sp > ge_sp::create(ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00332                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00333                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input,
00334                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output,
00335                 ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies,
00336                 ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets,
00337                 ulint a__ge_pi__schedule_pos,
00338                 ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb,
00339                 ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties,
00340                 bool a__ge_sp__is_jmp_target)
00341 {
00342         return ptr< ge_sp > ( new ge_sp(a__ge_pi__instruction,
00343                 a__ge_pi__pi_source,
00344                 a__ge_pi__operands_input,
00345                 a__ge_pi__operands_output,
00346                 a__ge_pi__dependencies,
00347                 a__ge_pi__jmp_targets,
00348                 a__ge_pi__schedule_pos,
00349                 a__ge_pi__bb,
00350                 a__ge_pi__properties,
00351                 a__ge_sp__is_jmp_target) );
00352 }
00353 
00354 /*!
00355    This factory method for class ge_sp uses initializers.
00356    \author lsg
00357  */
00358 ptr< ge_sp > ge_sp::create(ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00359                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source)
00360 {
00361         return ptr< ge_sp > ( new ge_sp(a__ge_pi__instruction, a__ge_pi__pi_source, ::lestes::std::vector< srp< ge_operand > > ::create(), ::lestes::std::vector< srp< ge_operand > > ::create(), ::lestes::std::set< srp< ge_pi > > ::create(), NULL, 0, NULL, NULL, false) );
00362 }
00363 
00364 /*!
00365    Generated constructor for class ge_sp.
00366    \author lsg
00367  */
00368 ge_sp::ge_sp (ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00369                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00370                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input,
00371                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output,
00372                 ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies,
00373                 ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets,
00374                 ulint a__ge_pi__schedule_pos,
00375                 ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb,
00376                 ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties,
00377                 bool a__ge_sp__is_jmp_target)
00378         : ge_pi(a__ge_pi__instruction,
00379                 a__ge_pi__pi_source,
00380                 a__ge_pi__operands_input,
00381                 a__ge_pi__operands_output,
00382                 a__ge_pi__dependencies,
00383                 a__ge_pi__jmp_targets,
00384                 a__ge_pi__schedule_pos,
00385                 a__ge_pi__bb,
00386                 a__ge_pi__properties), is_jmp_target(a__ge_sp__is_jmp_target)
00387 {}
00388 
00389 ptr< object::reflection_list > ge_sp::reflection_get() const
00390 {
00391         if (!reflection) {
00392                 typedef class_reflection::field_metadata md;
00393                 typedef class_reflection::field_metadata_list mdlist;
00394                 ptr<mdlist> mdl = mdlist::create();
00395                 mdl->push_back( md::create( "is_jmp_target", "bool" ) );
00396                 reflection = reflection_list::create( ge_pi::reflection_get() );
00397                 reflection->push_back( class_reflection::create( "ge_sp", mdl ) );
00398         }
00399         return reflection;
00400 }
00401 
00402 ptr< object::field_list_list > ge_sp::field_values_get() const
00403 {
00404         ptr < field_list_list > result = ge_pi::field_values_get();
00405         result->push_back( value_list::create() );
00406         result->back()->push_back( objectize< bool > ::create( this->is_jmp_target ) );
00407         return result;
00408 }
00409 
00410 
00411 /*!
00412    Marking routine is used for garbage collection.
00413    \author lsg
00414  */
00415 void ge_sp::gc_mark()
00416 {
00417         ge_pi::gc_mark();
00418 }
00419 
00420 // End of class ge_sp.
00421 
00422 // ------------- Class ge_call follows. -------------
00423 
00424 /*!
00425    \returns The value of ge_call::function_decl.
00426    \author lsg
00427  */
00428 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > ge_call::function_decl_get() const
00429 {
00430         return function_decl;
00431 }
00432 
00433 /*!
00434    \param[in] x The new value to set ge_call::function_decl to.
00435    \author lsg
00436  */
00437 void ge_call::function_decl_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > & x)
00438 {
00439         ge_call::function_decl = x;
00440 }
00441 
00442 lstring ge_call::accept_visitor_ge_pi2lstring_gen_base( ptr< visitor_ge_pi2lstring_gen_base > v )
00443 {
00444         return v->visit_ge_call( this );
00445 }
00446 
00447 /*!
00448    This factory method for class ge_call takes values of all fields as arguments.
00449    \author lsg
00450  */
00451 ptr< ge_call > ge_call::create(ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00452                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00453                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input,
00454                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output,
00455                 ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies,
00456                 ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets,
00457                 ulint a__ge_pi__schedule_pos,
00458                 ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb,
00459                 ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties,
00460                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__ge_call__function_decl)
00461 {
00462         return ptr< ge_call > ( new ge_call(a__ge_pi__instruction,
00463                 a__ge_pi__pi_source,
00464                 a__ge_pi__operands_input,
00465                 a__ge_pi__operands_output,
00466                 a__ge_pi__dependencies,
00467                 a__ge_pi__jmp_targets,
00468                 a__ge_pi__schedule_pos,
00469                 a__ge_pi__bb,
00470                 a__ge_pi__properties,
00471                 a__ge_call__function_decl) );
00472 }
00473 
00474 /*!
00475    This factory method for class ge_call uses initializers.
00476    \author lsg
00477  */
00478 ptr< ge_call > ge_call::create(ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00479                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00480                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__ge_call__function_decl)
00481 {
00482         return ptr< ge_call > ( new ge_call(a__ge_pi__instruction, a__ge_pi__pi_source, ::lestes::std::vector< srp< ge_operand > > ::create(), ::lestes::std::vector< srp< ge_operand > > ::create(), ::lestes::std::set< srp< ge_pi > > ::create(), NULL, 0, NULL, NULL, a__ge_call__function_decl) );
00483 }
00484 
00485 /*!
00486    Generated constructor for class ge_call.
00487    \author lsg
00488  */
00489 ge_call::ge_call (ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction,
00490                 ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source,
00491                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input,
00492                 ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output,
00493                 ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies,
00494                 ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets,
00495                 ulint a__ge_pi__schedule_pos,
00496                 ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb,
00497                 ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties,
00498                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__ge_call__function_decl)
00499         : ge_pi(a__ge_pi__instruction,
00500                 a__ge_pi__pi_source,
00501                 a__ge_pi__operands_input,
00502                 a__ge_pi__operands_output,
00503                 a__ge_pi__dependencies,
00504                 a__ge_pi__jmp_targets,
00505                 a__ge_pi__schedule_pos,
00506                 a__ge_pi__bb,
00507                 a__ge_pi__properties), function_decl(checked(a__ge_call__function_decl))
00508 {}
00509 
00510 ptr< object::reflection_list > ge_call::reflection_get() const
00511 {
00512         if (!reflection) {
00513                 typedef class_reflection::field_metadata md;
00514                 typedef class_reflection::field_metadata_list mdlist;
00515                 ptr<mdlist> mdl = mdlist::create();
00516                 mdl->push_back( md::create( "function_decl", "ss_function_declaration" ) );
00517                 reflection = reflection_list::create( ge_pi::reflection_get() );
00518                 reflection->push_back( class_reflection::create( "ge_call", mdl ) );
00519         }
00520         return reflection;
00521 }
00522 
00523 ptr< object::field_list_list > ge_call::field_values_get() const
00524 {
00525         ptr < field_list_list > result = ge_pi::field_values_get();
00526         result->push_back( value_list::create() );
00527         result->back()->push_back( this->function_decl );
00528         return result;
00529 }
00530 
00531 
00532 /*!
00533    Marking routine is used for garbage collection.
00534    \author lsg
00535  */
00536 void ge_call::gc_mark()
00537 {
00538         ge_pi::gc_mark();
00539 }
00540 
00541 // End of class ge_call.
00542 
00543 // ------------- Class ge_operand follows. -------------
00544 
00545 /*!
00546    \returns The value of ge_operand::type.
00547    \author lsg
00548  */
00549 ptr< ::lestes::md::types::tm_data_type_base > ge_operand::type_get() const
00550 {
00551         return type;
00552 }
00553 
00554 /*!
00555    \param[in] x The new value to set ge_operand::type to.
00556    \author lsg
00557  */
00558 void ge_operand::type_set(const ptr< ::lestes::md::types::tm_data_type_base > & x)
00559 {
00560         ge_operand::type = x;
00561 }
00562 
00563 /*!
00564    \returns The value of ge_operand::origin.
00565    \author lsg
00566  */
00567 ptr< ge_pi > ge_operand::origin_get() const
00568 {
00569         return origin;
00570 }
00571 
00572 /*!
00573    \param[in] x The new value to set ge_operand::origin to.
00574    \author lsg
00575  */
00576 void ge_operand::origin_set(const ptr< ge_pi > & x)
00577 {
00578         ge_operand::origin = x;
00579 }
00580 
00581 /*!
00582    \returns The value of ge_operand::pi_source.
00583    \author lsg
00584  */
00585 ptr< ::lestes::backend_v2::intercode::pi_operand > ge_operand::pi_source_get() const
00586 {
00587         return pi_source;
00588 }
00589 
00590 /*!
00591    \param[in] x The new value to set ge_operand::pi_source to.
00592    \author lsg
00593  */
00594 void ge_operand::pi_source_set(const ptr< ::lestes::backend_v2::intercode::pi_operand > & x)
00595 {
00596         ge_operand::pi_source = x;
00597 }
00598 
00599 /*!
00600    Generated constructor for class ge_operand.
00601    \author lsg
00602  */
00603 ge_operand::ge_operand (ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00604                 ptr< ge_pi > a__ge_operand__origin,
00605                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source)
00606         : ::lestes::std::object(), type(checked(a__ge_operand__type)), origin(a__ge_operand__origin), pi_source(a__ge_operand__pi_source)
00607 {}
00608 
00609 ptr< object::reflection_list > ge_operand::reflection_get() const
00610 {
00611         if (!reflection) {
00612                 typedef class_reflection::field_metadata md;
00613                 typedef class_reflection::field_metadata_list mdlist;
00614                 ptr<mdlist> mdl = mdlist::create();
00615                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
00616                 mdl->push_back( md::create( "origin", "ge_pi" ) );
00617                 mdl->push_back( md::create( "pi_source", "pi_operand" ) );
00618                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00619                 reflection->push_back( class_reflection::create( "ge_operand", mdl ) );
00620         }
00621         return reflection;
00622 }
00623 
00624 ptr< object::field_list_list > ge_operand::field_values_get() const
00625 {
00626         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00627         result->push_back( value_list::create() );
00628         result->back()->push_back( this->type );
00629         result->push_back( value_list::create() );
00630         result->back()->push_back( this->origin );
00631         result->push_back( value_list::create() );
00632         result->back()->push_back( this->pi_source );
00633         return result;
00634 }
00635 
00636 
00637 /*!
00638    Marking routine is used for garbage collection.
00639    \author lsg
00640  */
00641 void ge_operand::gc_mark()
00642 {
00643 	::lestes::std::object::gc_mark();
00644 }
00645 
00646 // End of class ge_operand.
00647 
00648 // ------------- Class ge_operand_reg follows. -------------
00649 
00650 /*!
00651    \returns The value of ge_operand_reg::assigned_registers.
00652    \author lsg
00653  */
00654 ptr< ::lestes::std::map< srp< ge_pi >, ulint > > ge_operand_reg::assigned_registers_get() const
00655 {
00656         return assigned_registers;
00657 }
00658 
00659 /*!
00660    \param[in] x The new value to set ge_operand_reg::assigned_registers to.
00661    \author lsg
00662  */
00663 void ge_operand_reg::assigned_registers_set(const ptr< ::lestes::std::map< srp< ge_pi >, ulint > > & x)
00664 {
00665         ge_operand_reg::assigned_registers = x;
00666 }
00667 
00668 lstring ge_operand_reg::accept_visitor_ge_operand2lstring_gen_base( ptr< visitor_ge_operand2lstring_gen_base > v )
00669 {
00670         return v->visit_ge_operand_reg( this );
00671 }
00672 
00673 /*!
00674    This factory method for class ge_operand_reg takes values of all fields as arguments.
00675    \author lsg
00676  */
00677 ptr< ge_operand_reg > ge_operand_reg::create(ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00678                 ptr< ge_pi > a__ge_operand__origin,
00679                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source,
00680                 ptr< ::lestes::std::map< srp< ge_pi >, ulint > > a__ge_operand_reg__assigned_registers)
00681 {
00682         return ptr< ge_operand_reg > ( new ge_operand_reg(a__ge_operand__type,
00683                 a__ge_operand__origin,
00684                 a__ge_operand__pi_source,
00685                 a__ge_operand_reg__assigned_registers) );
00686 }
00687 
00688 /*!
00689    This factory method for class ge_operand_reg uses initializers.
00690    \author lsg
00691  */
00692 ptr< ge_operand_reg > ge_operand_reg::create(ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00693                 ptr< ge_pi > a__ge_operand__origin,
00694                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source)
00695 {
00696         return ptr< ge_operand_reg > ( new ge_operand_reg(a__ge_operand__type, a__ge_operand__origin, a__ge_operand__pi_source, ::lestes::std::map< srp< ge_pi >, ulint > ::create()) );
00697 }
00698 
00699 /*!
00700    Generated constructor for class ge_operand_reg.
00701    \author lsg
00702  */
00703 ge_operand_reg::ge_operand_reg (ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00704                 ptr< ge_pi > a__ge_operand__origin,
00705                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source,
00706                 ptr< ::lestes::std::map< srp< ge_pi >, ulint > > a__ge_operand_reg__assigned_registers)
00707         : ge_operand(a__ge_operand__type,
00708                 a__ge_operand__origin,
00709                 a__ge_operand__pi_source), assigned_registers(checked(a__ge_operand_reg__assigned_registers))
00710 {}
00711 
00712 ptr< object::reflection_list > ge_operand_reg::reflection_get() const
00713 {
00714         if (!reflection) {
00715                 typedef class_reflection::field_metadata md;
00716                 typedef class_reflection::field_metadata_list mdlist;
00717                 ptr<mdlist> mdl = mdlist::create();
00718                 mdl->push_back( md::create( "assigned_registers", "map&lt; srp&lt; ge_pi &gt;, ulint &gt;" ) );
00719                 reflection = reflection_list::create( ge_operand::reflection_get() );
00720                 reflection->push_back( class_reflection::create( "ge_operand_reg", mdl ) );
00721         }
00722         return reflection;
00723 }
00724 
00725 ptr< object::field_list_list > ge_operand_reg::field_values_get() const
00726 {
00727         ptr < field_list_list > result = ge_operand::field_values_get();
00728         result->push_back( value_list::create() );
00729         result->back()->push_back( this->assigned_registers );
00730         return result;
00731 }
00732 
00733 
00734 /*!
00735    Marking routine is used for garbage collection.
00736    \author lsg
00737  */
00738 void ge_operand_reg::gc_mark()
00739 {
00740         ge_operand::gc_mark();
00741 }
00742 
00743 // End of class ge_operand_reg.
00744 
00745 // ------------- Class ge_operand_mem follows. -------------
00746 
00747 /*!
00748    \returns The value of ge_operand_mem::factory.
00749    \author lsg
00750  */
00751 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > ge_operand_mem::factory_get() const
00752 {
00753         return factory;
00754 }
00755 
00756 /*!
00757    \param[in] x The new value to set ge_operand_mem::factory to.
00758    \author lsg
00759  */
00760 void ge_operand_mem::factory_set(const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > & x)
00761 {
00762         ge_operand_mem::factory = x;
00763 }
00764 
00765 lstring ge_operand_mem::accept_visitor_ge_operand2lstring_gen_base( ptr< visitor_ge_operand2lstring_gen_base > v )
00766 {
00767         return v->visit_ge_operand_mem( this );
00768 }
00769 
00770 /*!
00771    This factory method for class ge_operand_mem takes values of all fields as arguments.
00772    \author lsg
00773  */
00774 ptr< ge_operand_mem > ge_operand_mem::create(ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00775                 ptr< ge_pi > a__ge_operand__origin,
00776                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source,
00777                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__ge_operand_mem__factory)
00778 {
00779         return ptr< ge_operand_mem > ( new ge_operand_mem(a__ge_operand__type,
00780                 a__ge_operand__origin,
00781                 a__ge_operand__pi_source,
00782                 a__ge_operand_mem__factory) );
00783 }
00784 
00785 /*!
00786    Generated constructor for class ge_operand_mem.
00787    \author lsg
00788  */
00789 ge_operand_mem::ge_operand_mem (ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00790                 ptr< ge_pi > a__ge_operand__origin,
00791                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source,
00792                 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__ge_operand_mem__factory)
00793         : ge_operand(a__ge_operand__type,
00794                 a__ge_operand__origin,
00795                 a__ge_operand__pi_source), factory(a__ge_operand_mem__factory)
00796 {}
00797 
00798 ptr< object::reflection_list > ge_operand_mem::reflection_get() const
00799 {
00800         if (!reflection) {
00801                 typedef class_reflection::field_metadata md;
00802                 typedef class_reflection::field_metadata_list mdlist;
00803                 ptr<mdlist> mdl = mdlist::create();
00804                 mdl->push_back( md::create( "factory", "pi_mem_factory" ) );
00805                 reflection = reflection_list::create( ge_operand::reflection_get() );
00806                 reflection->push_back( class_reflection::create( "ge_operand_mem", mdl ) );
00807         }
00808         return reflection;
00809 }
00810 
00811 ptr< object::field_list_list > ge_operand_mem::field_values_get() const
00812 {
00813         ptr < field_list_list > result = ge_operand::field_values_get();
00814         result->push_back( value_list::create() );
00815         result->back()->push_back( this->factory );
00816         return result;
00817 }
00818 
00819 
00820 /*!
00821    Marking routine is used for garbage collection.
00822    \author lsg
00823  */
00824 void ge_operand_mem::gc_mark()
00825 {
00826         ge_operand::gc_mark();
00827 }
00828 
00829 // End of class ge_operand_mem.
00830 
00831 // ------------- Class ge_operand_imm follows. -------------
00832 
00833 /*!
00834    \returns The value of ge_operand_imm::value.
00835    \author lsg
00836  */
00837 ptr< ::lestes::md::literals::literal_info_base > ge_operand_imm::value_get() const
00838 {
00839         return value;
00840 }
00841 
00842 /*!
00843    \param[in] x The new value to set ge_operand_imm::value to.
00844    \author lsg
00845  */
00846 void ge_operand_imm::value_set(const ptr< ::lestes::md::literals::literal_info_base > & x)
00847 {
00848         ge_operand_imm::value = x;
00849 }
00850 
00851 lstring ge_operand_imm::accept_visitor_ge_operand2lstring_gen_base( ptr< visitor_ge_operand2lstring_gen_base > v )
00852 {
00853         return v->visit_ge_operand_imm( this );
00854 }
00855 
00856 /*!
00857    This factory method for class ge_operand_imm takes values of all fields as arguments.
00858    \author lsg
00859  */
00860 ptr< ge_operand_imm > ge_operand_imm::create(ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00861                 ptr< ge_pi > a__ge_operand__origin,
00862                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source,
00863                 ptr< ::lestes::md::literals::literal_info_base > a__ge_operand_imm__value)
00864 {
00865         return ptr< ge_operand_imm > ( new ge_operand_imm(a__ge_operand__type,
00866                 a__ge_operand__origin,
00867                 a__ge_operand__pi_source,
00868                 a__ge_operand_imm__value) );
00869 }
00870 
00871 /*!
00872    Generated constructor for class ge_operand_imm.
00873    \author lsg
00874  */
00875 ge_operand_imm::ge_operand_imm (ptr< ::lestes::md::types::tm_data_type_base > a__ge_operand__type,
00876                 ptr< ge_pi > a__ge_operand__origin,
00877                 ptr< ::lestes::backend_v2::intercode::pi_operand > a__ge_operand__pi_source,
00878                 ptr< ::lestes::md::literals::literal_info_base > a__ge_operand_imm__value)
00879         : ge_operand(a__ge_operand__type,
00880                 a__ge_operand__origin,
00881                 a__ge_operand__pi_source), value(checked(a__ge_operand_imm__value))
00882 {}
00883 
00884 ptr< object::reflection_list > ge_operand_imm::reflection_get() const
00885 {
00886         if (!reflection) {
00887                 typedef class_reflection::field_metadata md;
00888                 typedef class_reflection::field_metadata_list mdlist;
00889                 ptr<mdlist> mdl = mdlist::create();
00890                 mdl->push_back( md::create( "value", "literal_info_base" ) );
00891                 reflection = reflection_list::create( ge_operand::reflection_get() );
00892                 reflection->push_back( class_reflection::create( "ge_operand_imm", mdl ) );
00893         }
00894         return reflection;
00895 }
00896 
00897 ptr< object::field_list_list > ge_operand_imm::field_values_get() const
00898 {
00899         ptr < field_list_list > result = ge_operand::field_values_get();
00900         result->push_back( value_list::create() );
00901         result->back()->push_back( this->value );
00902         return result;
00903 }
00904 
00905 
00906 /*!
00907    Marking routine is used for garbage collection.
00908    \author lsg
00909  */
00910 void ge_operand_imm::gc_mark()
00911 {
00912         ge_operand::gc_mark();
00913 }
00914 
00915 // End of class ge_operand_imm.
00916 
00917 
00918 // static data members follow 
00919 ptr<object::reflection_list> ge_pi::reflection = reflection;
00920 ptr<object::reflection_list> ge_sp::reflection = reflection;
00921 ptr<object::reflection_list> ge_call::reflection = reflection;
00922 ptr<object::reflection_list> ge_operand::reflection = reflection;
00923 ptr<object::reflection_list> ge_operand_reg::reflection = reflection;
00924 ptr<object::reflection_list> ge_operand_mem::reflection = reflection;
00925 ptr<object::reflection_list> ge_operand_imm::reflection = reflection;
00926 
00927 end_package(intercode);
00928 end_package(backend_v2);
00929 end_package(lestes);
00930 

Generated on Mon Feb 12 18:22:35 2007 for lestes by doxygen 1.5.1-20070107