lestes::backend_v2::intercode::pi_indirect_store Class Reference

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

#include <pi.g.hh>

Inheritance diagram for lestes::backend_v2::intercode::pi_indirect_store:

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_stp lestes::backend_v2::intercode::pi_stpv List of all members.

Public Member Functions

ptr< pi_mem_ptr_derefaddress_get () const
 The method address_get returns the value of the field pi_indirect_store::address.
void address_set (const ptr< pi_mem_ptr_deref > &)
 The method address_set sets the field pi_indirect_store::address to the given value.
ptr< pi_operandvalue_get () const
 The method value_get returns the value of the field pi_indirect_store::value.
void value_set (const ptr< pi_operand > &)
 The method value_set sets the field pi_indirect_store::value 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_store::type1.
void type1_set (const ptr< ::lestes::md::types::tm_data_type_base > &)
 The method type1_set sets the field pi_indirect_store::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_store::type2.
void type2_set (const ptr< ::lestes::md::types::tm_data_type_base > &)
 The method type2_set sets the field pi_indirect_store::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_store (ptr< pi_pi > a__pi_pi__psp, ptr< pi_pi > a__pi_pi__nsp, ulint a__pi_pi__level, ptr< pi_mem_ptr_deref > a__pi_indirect_store__address, ptr< pi_operand > a__pi_indirect_store__value, ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type1, ptr< ::lestes::md::types::tm_data_type_base > a__pi_indirect_store__type2)
 Generated constructor for class pi_indirect_store.
virtual void gc_mark ()
 Marking routine for class pi_indirect_store.

Private Attributes

srp< pi_mem_ptr_derefaddress
 Pseudoregister with address of target memory space.
srp< pi_operandvalue
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 1016 of file pi.g.hh.


Constructor & Destructor Documentation

lestes::backend_v2::intercode::pi_indirect_store::pi_indirect_store ( ptr< pi_pi a__pi_pi__psp,
ptr< pi_pi a__pi_pi__nsp,
ulint  a__pi_pi__level,
ptr< pi_mem_ptr_deref a__pi_indirect_store__address,
ptr< pi_operand a__pi_indirect_store__value,
ptr< ::lestes::md::types::tm_data_type_base a__pi_indirect_store__type1,
ptr< ::lestes::md::types::tm_data_type_base a__pi_indirect_store__type2 
) [protected]

Generated constructor for class pi_indirect_store.

Generated constructor for class pi_indirect_store.

Author:
lsg

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

01506         : pi_abstract_move(a__pi_pi__psp,
01507                 a__pi_pi__nsp,
01508                 a__pi_pi__level), address(checked(a__pi_indirect_store__address)), value(checked(a__pi_indirect_store__value)), type1(checked(a__pi_indirect_store__type1)), type2(checked(a__pi_indirect_store__type2))
01509 {}


Member Function Documentation

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

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

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

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

References address.

01428 {
01429         return address;
01430 }

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

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

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

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

References address.

01437 {
01438         pi_indirect_store::address = x;
01439 }

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

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

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

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

References value.

01446 {
01447         return value;
01448 }

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

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

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

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

References value.

01455 {
01456         pi_indirect_store::value = x;
01457 }

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

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

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

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

References type1.

01464 {
01465         return type1;
01466 }

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

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

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

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

References type1.

01473 {
01474         pi_indirect_store::type1 = x;
01475 }

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

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

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

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

References type2.

01482 {
01483         return type2;
01484 }

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

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

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

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

References type2.

01491 {
01492         pi_indirect_store::type2 = x;
01493 }

virtual ptr< ::lestes::backend_v2::structs::pi_operands > lestes::backend_v2::intercode::pi_indirect_store::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_stp, and lestes::backend_v2::intercode::pi_stpv.

virtual ulint lestes::backend_v2::intercode::pi_indirect_store::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_stp, and lestes::backend_v2::intercode::pi_stpv.

virtual ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > lestes::backend_v2::intercode::pi_indirect_store::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_stp, and lestes::backend_v2::intercode::pi_stpv.

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

for purposes of dumping

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

Reimplemented in lestes::backend_v2::intercode::pi_stp, and lestes::backend_v2::intercode::pi_stpv.

Definition at line 1511 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_stpv::reflection_get(), and lestes::backend_v2::intercode::pi_stp::reflection_get().

01512 {
01513         if (!reflection) {
01514                 typedef class_reflection::field_metadata md;
01515                 typedef class_reflection::field_metadata_list mdlist;
01516                 ptr<mdlist> mdl = mdlist::create();
01517                 mdl->push_back( md::create( "address", "pi_mem_ptr_deref" ) );
01518                 mdl->push_back( md::create( "value", "pi_operand" ) );
01519                 mdl->push_back( md::create( "type1", "tm_data_type_base" ) );
01520                 mdl->push_back( md::create( "type2", "tm_data_type_base" ) );
01521                 reflection = reflection_list::create( pi_abstract_move::reflection_get() );
01522                 reflection->push_back( class_reflection::create( "pi_indirect_store", mdl ) );
01523         }
01524         return reflection;
01525 }

ptr< object::field_list_list > lestes::backend_v2::intercode::pi_indirect_store::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_stp, and lestes::backend_v2::intercode::pi_stpv.

Definition at line 1527 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_stpv::field_values_get(), and lestes::backend_v2::intercode::pi_stp::field_values_get().

01528 {
01529         ptr < field_list_list > result = pi_abstract_move::field_values_get();
01530         result->push_back( value_list::create() );
01531         result->back()->push_back( this->address );
01532         result->push_back( value_list::create() );
01533         result->back()->push_back( this->value );
01534         result->push_back( value_list::create() );
01535         result->back()->push_back( this->type1 );
01536         result->push_back( value_list::create() );
01537         result->back()->push_back( this->type2 );
01538         return result;
01539 }

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

Marking routine for class pi_indirect_store.

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_stp, and lestes::backend_v2::intercode::pi_stpv.

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

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

Referenced by lestes::backend_v2::intercode::pi_stpv::gc_mark(), and lestes::backend_v2::intercode::pi_stp::gc_mark().

01547 {
01548         pi_abstract_move::gc_mark();
01549 }


Member Data Documentation

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

Pseudoregister with address of target memory space.

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

Referenced by address_get(), and address_set().

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

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

Referenced by value_get(), and value_set().

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

Datatype of output operand.

Definition at line 1071 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_store::type2 [private]

Datatype of input operand.

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

Referenced by type2_get(), and type2_set().

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

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

Reimplemented in lestes::backend_v2::intercode::pi_stp, and lestes::backend_v2::intercode::pi_stpv.

Definition at line 1074 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