lestes::md::instructions::pi_pi2ge_pi_base Class Reference

Visitor that converts pi_pi instance to a corresponding list of ge_pi pseudoinstructions. More...

#include <pi_pi2ge_pi_base.g.hh>

Inheritance diagram for lestes::md::instructions::pi_pi2ge_pi_base:

lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base lestes::std::visitor_base lestes::std::object lestes::std::mem::keystone lestes::md::instructions::pi_pi2ge_pi List of all members.

Public Member Functions

ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operandspi_operands_getter_get () const
 The method pi_operands_getter_get returns the value of the field pi_pi2ge_pi_base::pi_operands_getter.
void pi_operands_getter_set (const ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > &)
 The method pi_operands_getter_set sets the field pi_pi2ge_pi_base::pi_operands_getter to the given value.
ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2idpi_id_getter_get () const
 The method pi_id_getter_get returns the value of the field pi_pi2ge_pi_base::pi_id_getter.
void pi_id_getter_set (const ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > &)
 The method pi_id_getter_set sets the field pi_pi2ge_pi_base::pi_id_getter to the given value.
ptr< ::lestes::md::instructions::pi_operand2ge_operandpi_op2ge_op_convertor_get () const
 The method pi_op2ge_op_convertor_get returns the value of the field pi_pi2ge_pi_base::pi_op2ge_op_convertor.
void pi_op2ge_op_convertor_set (const ptr< ::lestes::md::instructions::pi_operand2ge_operand > &)
 The method pi_op2ge_op_convertor_set sets the field pi_pi2ge_pi_base::pi_op2ge_op_convertor to the given value.
ptr< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_sp >,
srp< ::lestes::backend_v2::intercode::ge_sp > > > 
pi_sp2ge_sp_get () const
 The method pi_sp2ge_sp_get returns the value of the field pi_pi2ge_pi_base::pi_sp2ge_sp.
void pi_sp2ge_sp_set (const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > &)
 The method pi_sp2ge_sp_set sets the field pi_pi2ge_pi_base::pi_sp2ge_sp to the given value.
ptr< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_operand >,
ulint > > 
pi_op2count_get () const
 The method pi_op2count_get returns the value of the field pi_pi2ge_pi_base::pi_op2count.
void pi_op2count_set (const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > &)
 The method pi_op2count_set sets the field pi_pi2ge_pi_base::pi_op2count to the given value.
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > convert (ptr< ::lestes::backend_v2::intercode::pi_pi > pi, ptr< ::lestes::md::instructions::pi_pi2ge_pi_template_base > pat)
void setup_dependencies (ptr< ::lestes::backend_v2::intercode::ge_pi > ge)
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > generate_ge_code (ptr< ::lestes::backend_v2::intercode::pi_pi > pi, ptr< ::lestes::md::instructions::pi_pi2ge_pi_template_base > pat, ptr< vector< ulint > > selected_instrs, ptr< map< ulint, ulint > > selected_op_types)
bool find_consistent_instructions (ptr< ::lestes::backend_v2::intercode::pi_pi > pi, ptr< ::lestes::md::instructions::pi_pi2ge_pi_template_base > pat, ptr< vector< ulint > > selected_instrs, ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > > selected_operands, ptr< map< ulint, ulint > > selected_op_types, ulint curr_instrs_pat)
bool is_instruction_consistent (ptr< ::lestes::md::instructions::instruction_group_base > instr_pat, ptr< ::lestes::md::instructions::tm_instr_base > instr_version, ptr< ::lestes::backend_v2::intercode::pi_pi > pi, ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > > selected_operands, ptr< map< ulint, ulint > > selected_op_types)
virtual bool targetmachine__is_instruction_consistent (ptr< ::lestes::md::instructions::tm_instr_base > instr_version, ptr< ::lestes::backend_v2::intercode::pi_pi > pi) override
 Function that allows target-machine dependent instruction consistency verification.
bool is_operand_compatible1 (ptr< ::lestes::md::instructions::tm_instr_op_base > instr_op, ptr< ::lestes::backend_v2::intercode::pi_operand > pi_op, ulint type)
bool is_operand_compatible2 (ptr< ::lestes::md::instructions::tm_instr_op_base > op1, ptr< ::lestes::md::instructions::tm_instr_op_base > op2, ulint type)
bool is_in (ptr< vector< ulint > > list, ulint value)
 Traverses a list and tells whether a value is contained.
void add_selected_operands (ptr< ::lestes::md::instructions::instruction_group_base > instr_pat, ptr< ::lestes::md::instructions::tm_instr_base > instr_version, ptr< ::lestes::backend_v2::intercode::pi_pi > pi, ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > > selected_operands, ptr< map< ulint, ulint > > selected_op_types)
void remove_selected_operands (ptr< ::lestes::md::instructions::instruction_group_base > instr_pat, ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > > selected_operands, ptr< map< ulint, ulint > > selected_op_types)
ptr< ::lestes::md::instructions::tm_instr_op_basefind_op_by_id (ptr< ::lestes::std::vector< srp< ::lestes::md::instructions::tm_instr_op_base > > > list, ulint id)
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

 pi_pi2ge_pi_base (ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > a__pi_pi2ge_pi_base__pi_operands_getter, ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > a__pi_pi2ge_pi_base__pi_id_getter, ptr< ::lestes::md::instructions::pi_operand2ge_operand > a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > a__pi_pi2ge_pi_base__pi_sp2ge_sp, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > a__pi_pi2ge_pi_base__pi_op2count)
 Generated constructor for class pi_pi2ge_pi_base.
virtual void gc_mark ()
 Marking routine for class pi_pi2ge_pi_base.

Private Attributes

srp< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operandspi_operands_getter
 Visitor instance that gets list of operand of given pseudoinstruction.
srp< ::lestes::backend_v2::intercode::visitor_pi_pi2idpi_id_getter
 Visitor instance that gets id of given pseudoinstruction.
srp< ::lestes::md::instructions::pi_operand2ge_operandpi_op2ge_op_convertor
 Visitor instance that converts pi_operand to a corresponding ge_operand.
srp< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_sp >,
srp< ::lestes::backend_v2::intercode::ge_sp > > > 
pi_sp2ge_sp
 Map of already converted pi-sequencepoints to resulting ge-sequencepoints.
srp< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_operand >,
ulint > > 
pi_op2count
 Usage count of pi_operands within the functions body.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Visitor that converts pi_pi instance to a corresponding list of ge_pi pseudoinstructions.

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

Definition at line 82 of file pi_pi2ge_pi_base.g.hh.


Constructor & Destructor Documentation

lestes::md::instructions::pi_pi2ge_pi_base::pi_pi2ge_pi_base ( ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands a__pi_pi2ge_pi_base__pi_operands_getter,
ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id a__pi_pi2ge_pi_base__pi_id_getter,
ptr< ::lestes::md::instructions::pi_operand2ge_operand a__pi_pi2ge_pi_base__pi_op2ge_op_convertor,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > >  a__pi_pi2ge_pi_base__pi_sp2ge_sp,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > >  a__pi_pi2ge_pi_base__pi_op2count 
) [protected]

Generated constructor for class pi_pi2ge_pi_base.

Generated constructor for class pi_pi2ge_pi_base.

Author:
lsg

Definition at line 120 of file pi_pi2ge_pi_base.g.cc.

00125         : visitor_pi_pi2ge_pi_gen_base(), pi_operands_getter(checked(a__pi_pi2ge_pi_base__pi_operands_getter)), pi_id_getter(checked(a__pi_pi2ge_pi_base__pi_id_getter)), pi_op2ge_op_convertor(checked(a__pi_pi2ge_pi_base__pi_op2ge_op_convertor)), pi_sp2ge_sp(checked(a__pi_pi2ge_pi_base__pi_sp2ge_sp)), pi_op2count(checked(a__pi_pi2ge_pi_base__pi_op2count))
00126 {}


Member Function Documentation

ptr<::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > lestes::md::instructions::pi_pi2ge_pi_base::pi_operands_getter_get (  )  const

The method pi_operands_getter_get returns the value of the field pi_pi2ge_pi_base::pi_operands_getter.

Returns:
The value of pi_pi2ge_pi_base::pi_operands_getter.
Author:
lsg

Definition at line 30 of file pi_pi2ge_pi_base.g.cc.

References pi_operands_getter.

00031 {
00032         return pi_operands_getter;
00033 }

void lestes::md::instructions::pi_pi2ge_pi_base::pi_operands_getter_set ( const ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > &  x  ) 

The method pi_operands_getter_set sets the field pi_pi2ge_pi_base::pi_operands_getter to the given value.

Parameters:
[in] x The new value to set pi_pi2ge_pi_base::pi_operands_getter to.
Author:
lsg

Definition at line 39 of file pi_pi2ge_pi_base.g.cc.

References pi_operands_getter.

00040 {
00041         pi_pi2ge_pi_base::pi_operands_getter = x;
00042 }

ptr<::lestes::backend_v2::intercode::visitor_pi_pi2id > lestes::md::instructions::pi_pi2ge_pi_base::pi_id_getter_get (  )  const

The method pi_id_getter_get returns the value of the field pi_pi2ge_pi_base::pi_id_getter.

Returns:
The value of pi_pi2ge_pi_base::pi_id_getter.
Author:
lsg

Definition at line 48 of file pi_pi2ge_pi_base.g.cc.

References pi_id_getter.

00049 {
00050         return pi_id_getter;
00051 }

void lestes::md::instructions::pi_pi2ge_pi_base::pi_id_getter_set ( const ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > &  x  ) 

The method pi_id_getter_set sets the field pi_pi2ge_pi_base::pi_id_getter to the given value.

Parameters:
[in] x The new value to set pi_pi2ge_pi_base::pi_id_getter to.
Author:
lsg

Definition at line 57 of file pi_pi2ge_pi_base.g.cc.

References pi_id_getter.

00058 {
00059         pi_pi2ge_pi_base::pi_id_getter = x;
00060 }

ptr<::lestes::md::instructions::pi_operand2ge_operand > lestes::md::instructions::pi_pi2ge_pi_base::pi_op2ge_op_convertor_get (  )  const

The method pi_op2ge_op_convertor_get returns the value of the field pi_pi2ge_pi_base::pi_op2ge_op_convertor.

Returns:
The value of pi_pi2ge_pi_base::pi_op2ge_op_convertor.
Author:
lsg

Definition at line 66 of file pi_pi2ge_pi_base.g.cc.

References pi_op2ge_op_convertor.

Referenced by lestes::md::instructions::pi_pi2ge_pi::visit_pi_call().

00067 {
00068         return pi_op2ge_op_convertor;
00069 }

void lestes::md::instructions::pi_pi2ge_pi_base::pi_op2ge_op_convertor_set ( const ptr< ::lestes::md::instructions::pi_operand2ge_operand > &  x  ) 

The method pi_op2ge_op_convertor_set sets the field pi_pi2ge_pi_base::pi_op2ge_op_convertor to the given value.

Parameters:
[in] x The new value to set pi_pi2ge_pi_base::pi_op2ge_op_convertor to.
Author:
lsg

Definition at line 75 of file pi_pi2ge_pi_base.g.cc.

References pi_op2ge_op_convertor.

00076 {
00077         pi_pi2ge_pi_base::pi_op2ge_op_convertor = x;
00078 }

ptr<::lestes::std::map< srp<::lestes::backend_v2::intercode::pi_sp >, srp<::lestes::backend_v2::intercode::ge_sp > > > lestes::md::instructions::pi_pi2ge_pi_base::pi_sp2ge_sp_get (  )  const

The method pi_sp2ge_sp_get returns the value of the field pi_pi2ge_pi_base::pi_sp2ge_sp.

Returns:
The value of pi_pi2ge_pi_base::pi_sp2ge_sp.
Author:
lsg

Definition at line 84 of file pi_pi2ge_pi_base.g.cc.

References pi_sp2ge_sp.

Referenced by lestes::md::instructions::pi_pi2ge_pi::visit_pi_sp().

00085 {
00086         return pi_sp2ge_sp;
00087 }

void lestes::md::instructions::pi_pi2ge_pi_base::pi_sp2ge_sp_set ( const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > &  x  ) 

The method pi_sp2ge_sp_set sets the field pi_pi2ge_pi_base::pi_sp2ge_sp to the given value.

Parameters:
[in] x The new value to set pi_pi2ge_pi_base::pi_sp2ge_sp to.
Author:
lsg

Definition at line 93 of file pi_pi2ge_pi_base.g.cc.

References pi_sp2ge_sp.

00094 {
00095         pi_pi2ge_pi_base::pi_sp2ge_sp = x;
00096 }

ptr<::lestes::std::map< srp<::lestes::backend_v2::intercode::pi_operand >, ulint > > lestes::md::instructions::pi_pi2ge_pi_base::pi_op2count_get (  )  const

The method pi_op2count_get returns the value of the field pi_pi2ge_pi_base::pi_op2count.

Returns:
The value of pi_pi2ge_pi_base::pi_op2count.
Author:
lsg

Definition at line 102 of file pi_pi2ge_pi_base.g.cc.

References pi_op2count.

00103 {
00104         return pi_op2count;
00105 }

void lestes::md::instructions::pi_pi2ge_pi_base::pi_op2count_set ( const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > &  x  ) 

The method pi_op2count_set sets the field pi_pi2ge_pi_base::pi_op2count to the given value.

Parameters:
[in] x The new value to set pi_pi2ge_pi_base::pi_op2count to.
Author:
lsg

Definition at line 111 of file pi_pi2ge_pi_base.g.cc.

References pi_op2count.

00112 {
00113         pi_pi2ge_pi_base::pi_op2count = x;
00114 }

ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > lestes::md::instructions::pi_pi2ge_pi_base::convert ( ptr< ::lestes::backend_v2::intercode::pi_pi pi,
ptr< ::lestes::md::instructions::pi_pi2ge_pi_template_base pat 
)

Referenced by lestes::md::instructions::pi_pi2ge_pi::visit_pi_add(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_ba(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_band(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_be(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bf(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bg(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bl(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bn(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bne(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bng(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bnl(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bnot(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bor(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bt(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_bxor(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_cmp(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_cvt(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_div(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_gat(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_land(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_ld(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_lda(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldi(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldp(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldpv(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldv(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_lnot(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_lor(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_lxor(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_mod(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_mov(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_mul(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_neg(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_rem(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sal(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sar(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbe(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbg(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbl(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbne(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbng(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbnl(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_shl(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_shr(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_st(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_sti(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_stiv(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_stp(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_stpv(), lestes::md::instructions::pi_pi2ge_pi::visit_pi_stv(), and lestes::md::instructions::pi_pi2ge_pi::visit_pi_sub().

void lestes::md::instructions::pi_pi2ge_pi_base::setup_dependencies ( ptr< ::lestes::backend_v2::intercode::ge_pi ge  ) 

ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > lestes::md::instructions::pi_pi2ge_pi_base::generate_ge_code ( ptr< ::lestes::backend_v2::intercode::pi_pi pi,
ptr< ::lestes::md::instructions::pi_pi2ge_pi_template_base pat,
ptr< vector< ulint > >  selected_instrs,
ptr< map< ulint, ulint > >  selected_op_types 
)

bool lestes::md::instructions::pi_pi2ge_pi_base::find_consistent_instructions ( ptr< ::lestes::backend_v2::intercode::pi_pi pi,
ptr< ::lestes::md::instructions::pi_pi2ge_pi_template_base pat,
ptr< vector< ulint > >  selected_instrs,
ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > >  selected_operands,
ptr< map< ulint, ulint > >  selected_op_types,
ulint  curr_instrs_pat 
)

bool lestes::md::instructions::pi_pi2ge_pi_base::is_instruction_consistent ( ptr< ::lestes::md::instructions::instruction_group_base instr_pat,
ptr< ::lestes::md::instructions::tm_instr_base instr_version,
ptr< ::lestes::backend_v2::intercode::pi_pi pi,
ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > >  selected_operands,
ptr< map< ulint, ulint > >  selected_op_types 
)

virtual bool lestes::md::instructions::pi_pi2ge_pi_base::targetmachine__is_instruction_consistent ( ptr< ::lestes::md::instructions::tm_instr_base instr_version,
ptr< ::lestes::backend_v2::intercode::pi_pi pi 
) [pure virtual]

Function that allows target-machine dependent instruction consistency verification.

Implemented in lestes::md::instructions::pi_pi2ge_pi.

bool lestes::md::instructions::pi_pi2ge_pi_base::is_operand_compatible1 ( ptr< ::lestes::md::instructions::tm_instr_op_base instr_op,
ptr< ::lestes::backend_v2::intercode::pi_operand pi_op,
ulint  type 
)

bool lestes::md::instructions::pi_pi2ge_pi_base::is_operand_compatible2 ( ptr< ::lestes::md::instructions::tm_instr_op_base op1,
ptr< ::lestes::md::instructions::tm_instr_op_base op2,
ulint  type 
)

bool lestes::md::instructions::pi_pi2ge_pi_base::is_in ( ptr< vector< ulint > >  list,
ulint  value 
)

Traverses a list and tells whether a value is contained.

Parameters:
list A list.
value A value.
Returns:
True if the value is in the list. False otherwise.

Definition at line 521 of file pi_pi2ge_pi_base.cc.

00521                                                                   {
00522         for(uint i=0; i<list->size(); ++i) {
00523                 if ( (*list)[i]==value ) {
00524                         return true;
00525                 }
00526         }
00527         return false;
00528 }

void lestes::md::instructions::pi_pi2ge_pi_base::add_selected_operands ( ptr< ::lestes::md::instructions::instruction_group_base instr_pat,
ptr< ::lestes::md::instructions::tm_instr_base instr_version,
ptr< ::lestes::backend_v2::intercode::pi_pi pi,
ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > >  selected_operands,
ptr< map< ulint, ulint > >  selected_op_types 
)

void lestes::md::instructions::pi_pi2ge_pi_base::remove_selected_operands ( ptr< ::lestes::md::instructions::instruction_group_base instr_pat,
ptr< map< ulint, srp< ::lestes::md::instructions::tm_instr_op_base > > >  selected_operands,
ptr< map< ulint, ulint > >  selected_op_types 
)

ptr< ::lestes::md::instructions::tm_instr_op_base > lestes::md::instructions::pi_pi2ge_pi_base::find_op_by_id ( ptr< ::lestes::std::vector< srp< ::lestes::md::instructions::tm_instr_op_base > > >  list,
ulint  id 
)

ptr< object::reflection_list > lestes::md::instructions::pi_pi2ge_pi_base::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base.

Reimplemented in lestes::md::instructions::pi_pi2ge_pi.

Definition at line 128 of file pi_pi2ge_pi_base.g.cc.

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

Referenced by lestes::md::instructions::pi_pi2ge_pi::reflection_get().

00129 {
00130         if (!reflection) {
00131                 typedef class_reflection::field_metadata md;
00132                 typedef class_reflection::field_metadata_list mdlist;
00133                 ptr<mdlist> mdl = mdlist::create();
00134                 mdl->push_back( md::create( "pi_operands_getter", "visitor_pi_pi2pi_operands" ) );
00135                 mdl->push_back( md::create( "pi_id_getter", "visitor_pi_pi2id" ) );
00136                 mdl->push_back( md::create( "pi_op2ge_op_convertor", "pi_operand2ge_operand" ) );
00137                 mdl->push_back( md::create( "pi_sp2ge_sp", "map&lt; srp&lt; ::lestes::backend_v2::intercode::pi_sp &gt;, srp&lt; ::lestes::backend_v2::intercode::ge_sp &gt; &gt;" ) );
00138                 mdl->push_back( md::create( "pi_op2count", "map&lt; srp&lt; ::lestes::backend_v2::intercode::pi_operand &gt;, ulint &gt;" ) );
00139                 reflection = reflection_list::create( ::lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base::reflection_get() );
00140                 reflection->push_back( class_reflection::create( "pi_pi2ge_pi_base", mdl ) );
00141         }
00142         return reflection;
00143 }

ptr< object::field_list_list > lestes::md::instructions::pi_pi2ge_pi_base::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base.

Reimplemented in lestes::md::instructions::pi_pi2ge_pi.

Definition at line 145 of file pi_pi2ge_pi_base.g.cc.

References lestes::std::list< T >::create(), and lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base::field_values_get().

Referenced by lestes::md::instructions::pi_pi2ge_pi::field_values_get().

00146 {
00147         ptr < field_list_list > result = ::lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base::field_values_get();
00148         result->push_back( value_list::create() );
00149         result->back()->push_back( this->pi_operands_getter );
00150         result->push_back( value_list::create() );
00151         result->back()->push_back( this->pi_id_getter );
00152         result->push_back( value_list::create() );
00153         result->back()->push_back( this->pi_op2ge_op_convertor );
00154         result->push_back( value_list::create() );
00155         result->back()->push_back( this->pi_sp2ge_sp );
00156         result->push_back( value_list::create() );
00157         result->back()->push_back( this->pi_op2count );
00158         return result;
00159 }

void lestes::md::instructions::pi_pi2ge_pi_base::gc_mark ( void   )  [protected, virtual]

Marking routine for class pi_pi2ge_pi_base.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base.

Reimplemented in lestes::md::instructions::pi_pi2ge_pi.

Definition at line 166 of file pi_pi2ge_pi_base.g.cc.

References lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base::gc_mark().

Referenced by lestes::md::instructions::pi_pi2ge_pi::gc_mark().


Member Data Documentation

srp< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > lestes::md::instructions::pi_pi2ge_pi_base::pi_operands_getter [private]

Visitor instance that gets list of operand of given pseudoinstruction.

Definition at line 160 of file pi_pi2ge_pi_base.g.hh.

Referenced by pi_operands_getter_get(), and pi_operands_getter_set().

srp< ::lestes::backend_v2::intercode::visitor_pi_pi2id > lestes::md::instructions::pi_pi2ge_pi_base::pi_id_getter [private]

Visitor instance that gets id of given pseudoinstruction.

Definition at line 162 of file pi_pi2ge_pi_base.g.hh.

Referenced by pi_id_getter_get(), and pi_id_getter_set().

srp< ::lestes::md::instructions::pi_operand2ge_operand > lestes::md::instructions::pi_pi2ge_pi_base::pi_op2ge_op_convertor [private]

Visitor instance that converts pi_operand to a corresponding ge_operand.

Definition at line 164 of file pi_pi2ge_pi_base.g.hh.

Referenced by pi_op2ge_op_convertor_get(), and pi_op2ge_op_convertor_set().

srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > lestes::md::instructions::pi_pi2ge_pi_base::pi_sp2ge_sp [private]

Map of already converted pi-sequencepoints to resulting ge-sequencepoints.

Definition at line 166 of file pi_pi2ge_pi_base.g.hh.

Referenced by pi_sp2ge_sp_get(), and pi_sp2ge_sp_set().

srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > lestes::md::instructions::pi_pi2ge_pi_base::pi_op2count [private]

Usage count of pi_operands within the functions body.

Definition at line 168 of file pi_pi2ge_pi_base.g.hh.

Referenced by pi_op2count_get(), and pi_op2count_set().

ptr< object::reflection_list > lestes::md::instructions::pi_pi2ge_pi_base::reflection = reflection [static, private]

Reimplemented from lestes::backend_v2::intercode::visitor_pi_pi2ge_pi_gen_base.

Reimplemented in lestes::md::instructions::pi_pi2ge_pi.

Definition at line 169 of file pi_pi2ge_pi_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:46 2007 for lestes by doxygen 1.5.1-20070107