lestes::md::instructions::pi_operand2ge_operand_base Class Reference

Provides a way to convert pi_operand instance to corresponding ge_operand. More...

#include <pi_operand2ge_operand_base.g.hh>

Inheritance diagram for lestes::md::instructions::pi_operand2ge_operand_base:

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

Public Member Functions

ptr< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_operand >,
srp< ::lestes::backend_v2::intercode::ge_operand > > > 
pi_op2ge_op_get () const
 The method pi_op2ge_op_get returns the value of the field pi_operand2ge_operand_base::pi_op2ge_op.
void pi_op2ge_op_set (const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, srp< ::lestes::backend_v2::intercode::ge_operand > > > &)
 The method pi_op2ge_op_set sets the field pi_operand2ge_operand_base::pi_op2ge_op to the given value.
ptr< ::lestes::backend_v2::intercode::ge_operandconvert (ptr< ::lestes::backend_v2::intercode::pi_operand > pi)
 Converts pi_operand to ge_operand.
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_operand2ge_operand_base (ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, srp< ::lestes::backend_v2::intercode::ge_operand > > > a__pi_operand2ge_operand_base__pi_op2ge_op)
 Generated constructor for class pi_operand2ge_operand_base.
virtual void gc_mark ()
 Marking routine for class pi_operand2ge_operand_base.

Private Attributes

srp< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::pi_operand >,
srp< ::lestes::backend_v2::intercode::ge_operand > > > 
pi_op2ge_op
 Already converted instances of pi_operand class.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Provides a way to convert pi_operand instance to corresponding ge_operand.

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

Definition at line 53 of file pi_operand2ge_operand_base.g.hh.


Constructor & Destructor Documentation

lestes::md::instructions::pi_operand2ge_operand_base::pi_operand2ge_operand_base ( ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, srp< ::lestes::backend_v2::intercode::ge_operand > > >  a__pi_operand2ge_operand_base__pi_op2ge_op  )  [protected]

Generated constructor for class pi_operand2ge_operand_base.

Generated constructor for class pi_operand2ge_operand_base.

Author:
lsg

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

00047         : visitor_pi_operand2ge_operand_gen_base(), pi_op2ge_op(checked(a__pi_operand2ge_operand_base__pi_op2ge_op))
00048 {}


Member Function Documentation

ptr<::lestes::std::map< srp<::lestes::backend_v2::intercode::pi_operand >, srp<::lestes::backend_v2::intercode::ge_operand > > > lestes::md::instructions::pi_operand2ge_operand_base::pi_op2ge_op_get (  )  const

The method pi_op2ge_op_get returns the value of the field pi_operand2ge_operand_base::pi_op2ge_op.

Returns:
The value of pi_operand2ge_operand_base::pi_op2ge_op.
Author:
lsg

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

References pi_op2ge_op.

00029 {
00030         return pi_op2ge_op;
00031 }

void lestes::md::instructions::pi_operand2ge_operand_base::pi_op2ge_op_set ( const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, srp< ::lestes::backend_v2::intercode::ge_operand > > > &  x  ) 

The method pi_op2ge_op_set sets the field pi_operand2ge_operand_base::pi_op2ge_op to the given value.

Parameters:
[in] x The new value to set pi_operand2ge_operand_base::pi_op2ge_op to.
Author:
lsg

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

References pi_op2ge_op.

00038 {
00039         pi_operand2ge_operand_base::pi_op2ge_op = x;
00040 }

ptr<::lestes::backend_v2::intercode::ge_operand > lestes::md::instructions::pi_operand2ge_operand_base::convert ( ptr< ::lestes::backend_v2::intercode::pi_operand pi  ) 

Converts pi_operand to ge_operand.

It caches results of previous conversion. So if conversion of an already converted pi_operand instance is requested, the function returns the same instance of ge_operand class as the last time.

Parameters:
pi A pi_operand instance.
Returns:
A ge_operand instance.

Definition at line 28 of file pi_operand2ge_operand_base.cc.

References pi_op2ge_op.

00028                                                                                                                             {
00029         ptr<ge_operand> ge;
00030 
00031         //Has pi-operand been converted to ge-operand?
00032         pi_op2ge_op__type::iterator it_ge_op = pi_op2ge_op->find(pi);
00033         
00034         if ( it_ge_op==pi_op2ge_op->end() ) {
00035                 //No, it hasn't. Convert it.
00036                 ge = pi->accept_visitor_pi_operand2ge_operand_gen_base(this);
00037                 pi_op2ge_op->insert(::std::pair<srp<pi_operand>,srp<ge_operand> >(pi, ge));
00038         } else {
00039                 //Yes, it has. Use the already converted result.
00040                 ge = it_ge_op->second;  
00041         }
00042         
00043         return ge;
00044 }

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

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::visitor_pi_operand2ge_operand_gen_base.

Reimplemented in lestes::md::instructions::pi_operand2ge_operand.

Definition at line 50 of file pi_operand2ge_operand_base.g.cc.

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

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

00051 {
00052         if (!reflection) {
00053                 typedef class_reflection::field_metadata md;
00054                 typedef class_reflection::field_metadata_list mdlist;
00055                 ptr<mdlist> mdl = mdlist::create();
00056                 mdl->push_back( md::create( "pi_op2ge_op", "map&lt; srp&lt; ::lestes::backend_v2::intercode::pi_operand &gt;, srp&lt; ::lestes::backend_v2::intercode::ge_operand &gt; &gt;" ) );
00057                 reflection = reflection_list::create( ::lestes::backend_v2::intercode::visitor_pi_operand2ge_operand_gen_base::reflection_get() );
00058                 reflection->push_back( class_reflection::create( "pi_operand2ge_operand_base", mdl ) );
00059         }
00060         return reflection;
00061 }

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

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::visitor_pi_operand2ge_operand_gen_base.

Reimplemented in lestes::md::instructions::pi_operand2ge_operand.

Definition at line 63 of file pi_operand2ge_operand_base.g.cc.

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

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

00064 {
00065         ptr < field_list_list > result = ::lestes::backend_v2::intercode::visitor_pi_operand2ge_operand_gen_base::field_values_get();
00066         result->push_back( value_list::create() );
00067         result->back()->push_back( this->pi_op2ge_op );
00068         return result;
00069 }

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

Marking routine for class pi_operand2ge_operand_base.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::intercode::visitor_pi_operand2ge_operand_gen_base.

Reimplemented in lestes::md::instructions::pi_operand2ge_operand.

Definition at line 76 of file pi_operand2ge_operand_base.g.cc.

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

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


Member Data Documentation

srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, srp< ::lestes::backend_v2::intercode::ge_operand > > > lestes::md::instructions::pi_operand2ge_operand_base::pi_op2ge_op [private]

Already converted instances of pi_operand class.

Definition at line 80 of file pi_operand2ge_operand_base.g.hh.

Referenced by convert(), pi_op2ge_op_get(), and pi_op2ge_op_set().

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

Reimplemented from lestes::backend_v2::intercode::visitor_pi_operand2ge_operand_gen_base.

Reimplemented in lestes::md::instructions::pi_operand2ge_operand.

Definition at line 81 of file pi_operand2ge_operand_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