lestes::backend_v2::intercode::pi_operand Class Reference

Base class for pseudoinstruction operand hierarchy. More...

#include <pi.g.hh>

Inheritance diagram for lestes::backend_v2::intercode::pi_operand:

lestes::intercode::pi_base lestes::intercode::intercode lestes::std::object lestes::std::mem::keystone lestes::backend_v2::intercode::pi_mem lestes::backend_v2::intercode::pi_non_mem lestes::backend_v2::intercode::pi_mem_decl lestes::backend_v2::intercode::pi_mem_lit lestes::backend_v2::intercode::pi_mem_member lestes::backend_v2::intercode::pi_mem_preg lestes::backend_v2::intercode::pi_mem_ptr_deref lestes::backend_v2::intercode::pi_mem_stack lestes::backend_v2::intercode::pi_mem_temp lestes::backend_v2::intercode::pi_lit lestes::backend_v2::intercode::pi_preg List of all members.

Public Types

enum  kind_type {
  PREG, LIT, MEM_DECL, MEM_LIT,
  MEM_STACK, MEM_PREG, MEM_TEMP, MEM_MEMBER,
  MEM_PTR_DEREF
}

Public Member Functions

ptr< pi_piorigin_get () const
 The method origin_get returns the value of the field pi_operand::origin.
void origin_set (const ptr< pi_pi > &)
 The method origin_set sets the field pi_operand::origin to the given value.
ptr< ::lestes::md::types::tm_data_type_basetype_get () const
 The method type_get returns the value of the field pi_operand::type.
void type_set (const ptr< ::lestes::md::types::tm_data_type_base > &)
 The method type_set sets the field pi_operand::type to the given value.
virtual kind_type kind_get () override
 Identifies kind of the operand.
virtual ptr< ::lestes::backend_v2::intercode::ge_operandaccept_visitor_pi_operand2ge_operand_gen_base (ptr< visitor_pi_operand2ge_operand_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_operand (ptr< pi_pi > a__pi_operand__origin, ptr< ::lestes::md::types::tm_data_type_base > a__pi_operand__type)
 Generated constructor for class pi_operand.
virtual void gc_mark ()
 Marking routine for class pi_operand.

Private Attributes

srp< pi_piorigin
 Pseudoinstruction where the operand has been born.
srp< ::lestes::md::types::tm_data_type_basetype
 Datatype of the operand.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Base class for pseudoinstruction operand hierarchy.

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


Member Enumeration Documentation

enum lestes::backend_v2::intercode::pi_operand::kind_type

Enumerator:
PREG 
LIT 
MEM_DECL 
MEM_LIT 
MEM_STACK 
MEM_PREG 
MEM_TEMP 
MEM_MEMBER 
MEM_PTR_DEREF 

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

04464                        {
04465                 PREG,
04466                 LIT,
04467                 MEM_DECL,
04468                 MEM_LIT,
04469                 MEM_STACK,
04470                 MEM_PREG,
04471                 MEM_TEMP,
04472                 MEM_MEMBER,
04473                 MEM_PTR_DEREF
04474         };


Constructor & Destructor Documentation

lestes::backend_v2::intercode::pi_operand::pi_operand ( ptr< pi_pi a__pi_operand__origin,
ptr< ::lestes::md::types::tm_data_type_base a__pi_operand__type 
) [protected]

Generated constructor for class pi_operand.

Generated constructor for class pi_operand.

Author:
lsg

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

08081         : ::lestes::intercode::pi_base(), origin(a__pi_operand__origin), type(checked(a__pi_operand__type))
08082 {}


Member Function Documentation

ptr< pi_pi > lestes::backend_v2::intercode::pi_operand::origin_get (  )  const

The method origin_get returns the value of the field pi_operand::origin.

Returns:
The value of pi_operand::origin.
Author:
lsg

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

References origin.

08044 {
08045         return origin;
08046 }

void lestes::backend_v2::intercode::pi_operand::origin_set ( const ptr< pi_pi > &  x  ) 

The method origin_set sets the field pi_operand::origin to the given value.

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

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

References origin.

08053 {
08054         pi_operand::origin = x;
08055 }

ptr<::lestes::md::types::tm_data_type_base > lestes::backend_v2::intercode::pi_operand::type_get (  )  const

The method type_get returns the value of the field pi_operand::type.

Returns:
The value of pi_operand::type.
Author:
lsg

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

References type.

08062 {
08063         return type;
08064 }

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

The method type_set sets the field pi_operand::type to the given value.

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

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

References type.

08071 {
08072         pi_operand::type = x;
08073 }

virtual kind_type lestes::backend_v2::intercode::pi_operand::kind_get (  )  [pure virtual]

Identifies kind of the operand.

Implemented in lestes::backend_v2::intercode::pi_non_mem, lestes::backend_v2::intercode::pi_preg, lestes::backend_v2::intercode::pi_lit, lestes::backend_v2::intercode::pi_mem, lestes::backend_v2::intercode::pi_mem_decl, lestes::backend_v2::intercode::pi_mem_lit, lestes::backend_v2::intercode::pi_mem_member, lestes::backend_v2::intercode::pi_mem_stack, lestes::backend_v2::intercode::pi_mem_preg, lestes::backend_v2::intercode::pi_mem_temp, and lestes::backend_v2::intercode::pi_mem_ptr_deref.

virtual ptr< ::lestes::backend_v2::intercode::ge_operand > lestes::backend_v2::intercode::pi_operand::accept_visitor_pi_operand2ge_operand_gen_base ( ptr< visitor_pi_operand2ge_operand_gen_base v  )  [pure virtual]

Implemented in lestes::backend_v2::intercode::pi_non_mem, lestes::backend_v2::intercode::pi_preg, lestes::backend_v2::intercode::pi_lit, lestes::backend_v2::intercode::pi_mem, lestes::backend_v2::intercode::pi_mem_decl, lestes::backend_v2::intercode::pi_mem_lit, lestes::backend_v2::intercode::pi_mem_member, lestes::backend_v2::intercode::pi_mem_stack, lestes::backend_v2::intercode::pi_mem_preg, lestes::backend_v2::intercode::pi_mem_temp, and lestes::backend_v2::intercode::pi_mem_ptr_deref.

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

for purposes of dumping

Reimplemented from lestes::intercode::pi_base.

Reimplemented in lestes::backend_v2::intercode::pi_non_mem, lestes::backend_v2::intercode::pi_preg, lestes::backend_v2::intercode::pi_lit, lestes::backend_v2::intercode::pi_mem, lestes::backend_v2::intercode::pi_mem_decl, lestes::backend_v2::intercode::pi_mem_lit, lestes::backend_v2::intercode::pi_mem_member, lestes::backend_v2::intercode::pi_mem_stack, lestes::backend_v2::intercode::pi_mem_preg, lestes::backend_v2::intercode::pi_mem_temp, and lestes::backend_v2::intercode::pi_mem_ptr_deref.

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

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

Referenced by lestes::backend_v2::intercode::pi_mem::reflection_get(), and lestes::backend_v2::intercode::pi_non_mem::reflection_get().

08085 {
08086         if (!reflection) {
08087                 typedef class_reflection::field_metadata md;
08088                 typedef class_reflection::field_metadata_list mdlist;
08089                 ptr<mdlist> mdl = mdlist::create();
08090                 mdl->push_back( md::create( "origin", "pi_pi" ) );
08091                 mdl->push_back( md::create( "type", "tm_data_type_base" ) );
08092                 reflection = reflection_list::create( ::lestes::intercode::pi_base::reflection_get() );
08093                 reflection->push_back( class_reflection::create( "pi_operand", mdl ) );
08094         }
08095         return reflection;
08096 }

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

for purposes of dumping

Reimplemented from lestes::intercode::pi_base.

Reimplemented in lestes::backend_v2::intercode::pi_non_mem, lestes::backend_v2::intercode::pi_preg, lestes::backend_v2::intercode::pi_lit, lestes::backend_v2::intercode::pi_mem, lestes::backend_v2::intercode::pi_mem_decl, lestes::backend_v2::intercode::pi_mem_lit, lestes::backend_v2::intercode::pi_mem_member, lestes::backend_v2::intercode::pi_mem_stack, lestes::backend_v2::intercode::pi_mem_preg, lestes::backend_v2::intercode::pi_mem_temp, and lestes::backend_v2::intercode::pi_mem_ptr_deref.

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

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

Referenced by lestes::backend_v2::intercode::pi_mem::field_values_get(), and lestes::backend_v2::intercode::pi_non_mem::field_values_get().

08099 {
08100         ptr < field_list_list > result = ::lestes::intercode::pi_base::field_values_get();
08101         result->push_back( value_list::create() );
08102         result->back()->push_back( this->origin );
08103         result->push_back( value_list::create() );
08104         result->back()->push_back( this->type );
08105         return result;
08106 }

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

Marking routine for class pi_operand.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::intercode::pi_base.

Reimplemented in lestes::backend_v2::intercode::pi_non_mem, lestes::backend_v2::intercode::pi_preg, lestes::backend_v2::intercode::pi_lit, lestes::backend_v2::intercode::pi_mem, lestes::backend_v2::intercode::pi_mem_decl, lestes::backend_v2::intercode::pi_mem_lit, lestes::backend_v2::intercode::pi_mem_member, lestes::backend_v2::intercode::pi_mem_stack, lestes::backend_v2::intercode::pi_mem_preg, lestes::backend_v2::intercode::pi_mem_temp, and lestes::backend_v2::intercode::pi_mem_ptr_deref.

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

References lestes::intercode::pi_base::gc_mark().

Referenced by lestes::backend_v2::intercode::pi_mem::gc_mark(), and lestes::backend_v2::intercode::pi_non_mem::gc_mark().


Member Data Documentation

srp< pi_pi > lestes::backend_v2::intercode::pi_operand::origin [private]

Pseudoinstruction where the operand has been born.

If origin has no sense (i.e. for literal) then it is set to NULL.

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

Referenced by origin_get(), and origin_set().

srp< ::lestes::md::types::tm_data_type_base > lestes::backend_v2::intercode::pi_operand::type [private]

Datatype of the operand.

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

Referenced by type_get(), and type_set().

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

Reimplemented from lestes::intercode::pi_base.

Reimplemented in lestes::backend_v2::intercode::pi_non_mem, lestes::backend_v2::intercode::pi_preg, lestes::backend_v2::intercode::pi_lit, lestes::backend_v2::intercode::pi_mem, lestes::backend_v2::intercode::pi_mem_decl, lestes::backend_v2::intercode::pi_mem_lit, lestes::backend_v2::intercode::pi_mem_member, lestes::backend_v2::intercode::pi_mem_stack, lestes::backend_v2::intercode::pi_mem_preg, lestes::backend_v2::intercode::pi_mem_temp, and lestes::backend_v2::intercode::pi_mem_ptr_deref.

Definition at line 4516 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:24:05 2007 for lestes by doxygen 1.5.1-20070107