lestes::backend_v2::intercode::pi_indirect_load Class Reference

Base class for store-via-pointer instructions. More...

#include <pi.g.hh>

Inheritance diagram for lestes::backend_v2::intercode::pi_indirect_load:

lestes::backend_v2::intercode::pi_abstract_move lestes::backend_v2::intercode::pi_pi lestes::intercode::pi_base lestes::intercode::intercode lestes::std::object lestes::std::mem::keystone lestes::backend_v2::intercode::pi_ldp lestes::backend_v2::intercode::pi_ldpv List of all members.

Public Member Functions

ptr< pi_operandvalue_get () const
 The method value_get returns the value of the field pi_indirect_load::value.
void value_set (const ptr< pi_operand > &)
 The method value_set sets the field pi_indirect_load::value to the given value.
ptr< pi_mem_ptr_derefaddress_get () const
 The method address_get returns the value of the field pi_indirect_load::address.
void address_set (const ptr< pi_mem_ptr_deref > &)
 The method address_set sets the field pi_indirect_load::address to the given value.
ptr< ::lestes::md::types::tm_data_type_basetype1_get () const
 The method type1_get returns the value of the field pi_indirect_load::type1.
void type1_set (const ptr< ::lestes::md::types::tm_data_type_base > &)
 The method type1_set sets the field pi_indirect_load::type1 to the given value.
ptr< ::lestes::md::types::tm_data_type_basetype2_get () const
 The method type2_get returns the value of the field pi_indirect_load::type2.
void type2_set (const ptr< ::lestes::md::types::tm_data_type_base > &)
 The method type2_set sets the field pi_indirect_load::type2 to the given value.
virtual ptr< ::lestes::backend_v2::structs::pi_operandsaccept_visitor_pi_pi2pi_operands_gen_base (ptr< visitor_pi_pi2pi_operands_gen_base > v) override
virtual ulint accept_visitor_pi_pi2ulint_gen_base (ptr< visitor_pi_pi2ulint_gen_base > v) override
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
accept_visitor_pi_pi2ge_pi_gen_base (ptr< visitor_pi_pi2ge_pi_gen_base > v) override
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_indirect_load (ptr< pi_pi > a__pi_pi__psp, ptr< pi_pi > a__pi_pi__nsp, ulint a__pi_pi__level, ptr< pi_operand > a__pi_indirect_load__value, ptr< pi_mem_ptr_deref > a__pi_indirect_load__address, ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type1, ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_load__type2)
 Generated constructor for class pi_indirect_load.
virtual void gc_mark ()
 Marking routine for class pi_indirect_load.

Private Attributes

srp< pi_operandvalue
srp< pi_mem_ptr_derefaddress
 Pseudoregister with address of target memory space.
srp< ::lestes::md::types::tm_data_type_basetype1
 Datatype of output operand.
srp< ::lestes::md::types::tm_data_type_basetype2
 Datatype of input operand.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Base class for store-via-pointer instructions.

Definition at line 1080 of file pi.g.hh.


Constructor & Destructor Documentation

lestes::backend_v2::intercode::pi_indirect_load::pi_indirect_load ( ptr< pi_pi a__pi_pi__psp,
ptr< pi_pi a__pi_pi__nsp,
ulint  a__pi_pi__level,
ptr< pi_operand a__pi_indirect_load__value,
ptr< pi_mem_ptr_deref a__pi_indirect_load__address,
ptr< ::lestes::md::types::tm_data_type_base a__pi_indirect_load__type1,
ptr< ::lestes::md::types::tm_data_type_base a__pi_indirect_load__type2 
) [protected]

Generated constructor for class pi_indirect_load.

Generated constructor for class pi_indirect_load.

Author:
lsg

Definition at line 1631 of file pi.g.cc.

01638         : pi_abstract_move(a__pi_pi__psp,
01639                 a__pi_pi__nsp,
01640                 a__pi_pi__level), value(checked(a__pi_indirect_load__value)), address(checked(a__pi_indirect_load__address)), type1(checked(a__pi_indirect_load__type1)), type2(checked(a__pi_indirect_load__type2))
01641 {}


Member Function Documentation

ptr< pi_operand > lestes::backend_v2::intercode::pi_indirect_load::value_get (  )  const

The method value_get returns the value of the field pi_indirect_load::value.

Returns:
The value of pi_indirect_load::value.
Author:
lsg

Definition at line 1559 of file pi.g.cc.

References value.

01560 {
01561         return value;
01562 }

void lestes::backend_v2::intercode::pi_indirect_load::value_set ( const ptr< pi_operand > &  x  ) 

The method value_set sets the field pi_indirect_load::value to the given value.

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

Definition at line 1568 of file pi.g.cc.

References value.

01569 {
01570         pi_indirect_load::value = x;
01571 }

ptr< pi_mem_ptr_deref > lestes::backend_v2::intercode::pi_indirect_load::address_get (  )  const

The method address_get returns the value of the field pi_indirect_load::address.

Returns:
The value of pi_indirect_load::address.
Author:
lsg

Definition at line 1577 of file pi.g.cc.

References address.

01578 {
01579         return address;
01580 }

void lestes::backend_v2::intercode::pi_indirect_load::address_set ( const ptr< pi_mem_ptr_deref > &  x  ) 

The method address_set sets the field pi_indirect_load::address to the given value.

Parameters:
[in] x The new value to set pi_indirect_load::address to.
Author:
lsg

Definition at line 1586 of file pi.g.cc.

References address.

01587 {
01588         pi_indirect_load::address = x;
01589 }

ptr<::lestes::md::types::tm_data_type_base > lestes::backend_v2::intercode::pi_indirect_load::type1_get (  )  const

The method type1_get returns the value of the field pi_indirect_load::type1.

Returns:
The value of pi_indirect_load::type1.
Author:
lsg

Definition at line 1595 of file pi.g.cc.

References type1.

01596 {
01597         return type1;
01598 }

void lestes::backend_v2::intercode::pi_indirect_load::type1_set ( const ptr< ::lestes::md::types::tm_data_type_base > &  x  ) 

The method type1_set sets the field pi_indirect_load::type1 to the given value.

Parameters:
[in] x The new value to set pi_indirect_load::type1 to.
Author:
lsg

Definition at line 1604 of file pi.g.cc.

References type1.

01605 {
01606         pi_indirect_load::type1 = x;
01607 }

ptr<::lestes::md::types::tm_data_type_base > lestes::backend_v2::intercode::pi_indirect_load::type2_get (  )  const

The method type2_get returns the value of the field pi_indirect_load::type2.

Returns:
The value of pi_indirect_load::type2.
Author:
lsg

Definition at line 1613 of file pi.g.cc.

References type2.

01614 {
01615         return type2;
01616 }

void lestes::backend_v2::intercode::pi_indirect_load::type2_set ( const ptr< ::lestes::md::types::tm_data_type_base > &  x  ) 

The method type2_set sets the field pi_indirect_load::type2 to the given value.

Parameters:
[in] x The new value to set pi_indirect_load::type2 to.
Author:
lsg

Definition at line 1622 of file pi.g.cc.

References type2.

01623 {
01624         pi_indirect_load::type2 = x;
01625 }

virtual ptr< ::lestes::backend_v2::structs::pi_operands > lestes::backend_v2::intercode::pi_indirect_load::accept_visitor_pi_pi2pi_operands_gen_base ( ptr< visitor_pi_pi2pi_operands_gen_base v  )  [pure virtual]

Implements lestes::backend_v2::intercode::pi_abstract_move.

Implemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

virtual ulint lestes::backend_v2::intercode::pi_indirect_load::accept_visitor_pi_pi2ulint_gen_base ( ptr< visitor_pi_pi2ulint_gen_base v  )  [pure virtual]

Implements lestes::backend_v2::intercode::pi_abstract_move.

Implemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

virtual ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > lestes::backend_v2::intercode::pi_indirect_load::accept_visitor_pi_pi2ge_pi_gen_base ( ptr< visitor_pi_pi2ge_pi_gen_base v  )  [pure virtual]

Implements lestes::backend_v2::intercode::pi_abstract_move.

Implemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

ptr< object::reflection_list > lestes::backend_v2::intercode::pi_indirect_load::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::pi_abstract_move.

Reimplemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

Definition at line 1643 of file pi.g.cc.

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

Referenced by lestes::backend_v2::intercode::pi_ldpv::reflection_get(), and lestes::backend_v2::intercode::pi_ldp::reflection_get().

01644 {
01645         if (!reflection) {
01646                 typedef class_reflection::field_metadata md;
01647                 typedef class_reflection::field_metadata_list mdlist;
01648                 ptr<mdlist> mdl = mdlist::create();
01649                 mdl->push_back( md::create( "value", "pi_operand" ) );
01650                 mdl->push_back( md::create( "address", "pi_mem_ptr_deref" ) );
01651                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01652                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01653                 reflection = reflection_list::create( pi_abstract_move::reflection_get() );
01654                 reflection->push_back( class_reflection::create( "pi_indirect_load", mdl ) );
01655         }
01656         return reflection;
01657 }

ptr< object::field_list_list > lestes::backend_v2::intercode::pi_indirect_load::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::pi_abstract_move.

Reimplemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

Definition at line 1659 of file pi.g.cc.

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

Referenced by lestes::backend_v2::intercode::pi_ldpv::field_values_get(), and lestes::backend_v2::intercode::pi_ldp::field_values_get().

01660 {
01661         ptr < field_list_list > result = pi_abstract_move::field_values_get();
01662         result->push_back( value_list::create() );
01663         result->back()->push_back( this->value );
01664         result->push_back( value_list::create() );
01665         result->back()->push_back( this->address );
01666         result->push_back( value_list::create() );
01667         result->back()->push_back( this->type1 );
01668         result->push_back( value_list::create() );
01669         result->back()->push_back( this->type2 );
01670         return result;
01671 }

void lestes::backend_v2::intercode::pi_indirect_load::gc_mark ( void   )  [protected, virtual]

Marking routine for class pi_indirect_load.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::intercode::pi_abstract_move.

Reimplemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

Definition at line 1678 of file pi.g.cc.

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

Referenced by lestes::backend_v2::intercode::pi_ldpv::gc_mark(), and lestes::backend_v2::intercode::pi_ldp::gc_mark().

01679 {
01680         pi_abstract_move::gc_mark();
01681 }


Member Data Documentation

srp< pi_operand > lestes::backend_v2::intercode::pi_indirect_load::value [private]

Definition at line 1131 of file pi.g.hh.

Referenced by value_get(), and value_set().

srp< pi_mem_ptr_deref > lestes::backend_v2::intercode::pi_indirect_load::address [private]

Pseudoregister with address of target memory space.

Definition at line 1133 of file pi.g.hh.

Referenced by address_get(), and address_set().

srp< ::lestes::md::types::tm_data_type_base > lestes::backend_v2::intercode::pi_indirect_load::type1 [private]

Datatype of output operand.

Definition at line 1135 of file pi.g.hh.

Referenced by type1_get(), and type1_set().

srp< ::lestes::md::types::tm_data_type_base > lestes::backend_v2::intercode::pi_indirect_load::type2 [private]

Datatype of input operand.

Definition at line 1137 of file pi.g.hh.

Referenced by type2_get(), and type2_set().

ptr< object::reflection_list > lestes::backend_v2::intercode::pi_indirect_load::reflection = reflection [static, private]

Reimplemented from lestes::backend_v2::intercode::pi_abstract_move.

Reimplemented in lestes::backend_v2::intercode::pi_ldp, and lestes::backend_v2::intercode::pi_ldpv.

Definition at line 1138 of file pi.g.hh.

Referenced by reflection_get().


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:23:53 2007 for lestes by doxygen 1.5.1-20070107