lestes::backend_v2::intercode::pi_conditional_branch Class Reference

Base class for conditional branches. More...

#include <pi.g.hh>

Inheritance diagram for lestes::backend_v2::intercode::pi_conditional_branch:

lestes::backend_v2::intercode::pi_branch 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_cb_single_address_target lestes::backend_v2::intercode::pi_cb_single_label_target lestes::backend_v2::intercode::pi_ibe lestes::backend_v2::intercode::pi_ibg lestes::backend_v2::intercode::pi_ibl lestes::backend_v2::intercode::pi_ibne lestes::backend_v2::intercode::pi_ibng lestes::backend_v2::intercode::pi_ibnl lestes::backend_v2::intercode::pi_be lestes::backend_v2::intercode::pi_bf lestes::backend_v2::intercode::pi_bg lestes::backend_v2::intercode::pi_bl lestes::backend_v2::intercode::pi_bne lestes::backend_v2::intercode::pi_bng lestes::backend_v2::intercode::pi_bnl lestes::backend_v2::intercode::pi_bt List of all members.

Public Member Functions

ptr< pi_pregcondition_get () const
 The method condition_get returns the value of the field pi_conditional_branch::condition.
void condition_set (const ptr< pi_preg > &)
 The method condition_set sets the field pi_conditional_branch::condition 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_conditional_branch (ptr< pi_pi > a__pi_pi__psp, ptr< pi_pi > a__pi_pi__nsp, ulint a__pi_pi__level, ptr< pi_preg > a__pi_conditional_branch__condition)
 Generated constructor for class pi_conditional_branch.
virtual void gc_mark ()
 Marking routine for class pi_conditional_branch.

Private Attributes

srp< pi_pregcondition
 Pseudoregister where result of a pi_cmp pseudoinstruction is stored.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Base class for conditional branches.

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


Constructor & Destructor Documentation

lestes::backend_v2::intercode::pi_conditional_branch::pi_conditional_branch ( ptr< pi_pi a__pi_pi__psp,
ptr< pi_pi a__pi_pi__nsp,
ulint  a__pi_pi__level,
ptr< pi_preg a__pi_conditional_branch__condition 
) [protected]

Generated constructor for class pi_conditional_branch.

Generated constructor for class pi_conditional_branch.

Author:
lsg

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

00205         : pi_branch(a__pi_pi__psp,
00206                 a__pi_pi__nsp,
00207                 a__pi_pi__level), condition(checked(a__pi_conditional_branch__condition))
00208 {}


Member Function Documentation

ptr< pi_preg > lestes::backend_v2::intercode::pi_conditional_branch::condition_get (  )  const

The method condition_get returns the value of the field pi_conditional_branch::condition.

Returns:
The value of pi_conditional_branch::condition.
Author:
lsg

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

References condition.

00184 {
00185         return condition;
00186 }

void lestes::backend_v2::intercode::pi_conditional_branch::condition_set ( const ptr< pi_preg > &  x  ) 

The method condition_set sets the field pi_conditional_branch::condition to the given value.

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

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

References condition.

00193 {
00194         pi_conditional_branch::condition = x;
00195 }

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

Implements lestes::backend_v2::intercode::pi_branch.

Implemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

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

Implements lestes::backend_v2::intercode::pi_branch.

Implemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

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

Implements lestes::backend_v2::intercode::pi_branch.

Implemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

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

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::pi_branch.

Reimplemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

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

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

Referenced by lestes::backend_v2::intercode::pi_cb_single_address_target::reflection_get(), and lestes::backend_v2::intercode::pi_cb_single_label_target::reflection_get().

00211 {
00212         if (!reflection) {
00213                 typedef class_reflection::field_metadata md;
00214                 typedef class_reflection::field_metadata_list mdlist;
00215                 ptr<mdlist> mdl = mdlist::create();
00216                 mdl->push_back( md::create( "condition", "pi_preg" ) );
00217                 reflection = reflection_list::create( pi_branch::reflection_get() );
00218                 reflection->push_back( class_reflection::create( "pi_conditional_branch", mdl ) );
00219         }
00220         return reflection;
00221 }

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

for purposes of dumping

Reimplemented from lestes::backend_v2::intercode::pi_branch.

Reimplemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

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

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

Referenced by lestes::backend_v2::intercode::pi_cb_single_address_target::field_values_get(), and lestes::backend_v2::intercode::pi_cb_single_label_target::field_values_get().

00224 {
00225         ptr < field_list_list > result = pi_branch::field_values_get();
00226         result->push_back( value_list::create() );
00227         result->back()->push_back( this->condition );
00228         return result;
00229 }

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

Marking routine for class pi_conditional_branch.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::intercode::pi_branch.

Reimplemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

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

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

Referenced by lestes::backend_v2::intercode::pi_cb_single_address_target::gc_mark(), and lestes::backend_v2::intercode::pi_cb_single_label_target::gc_mark().

00237 {
00238         pi_branch::gc_mark();
00239 }


Member Data Documentation

srp< pi_preg > lestes::backend_v2::intercode::pi_conditional_branch::condition [private]

Pseudoregister where result of a pi_cmp pseudoinstruction is stored.

According to flags stored in this pseudoregister it is decided which branch is followed.

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

Referenced by condition_get(), and condition_set().

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

Reimplemented from lestes::backend_v2::intercode::pi_branch.

Reimplemented in lestes::backend_v2::intercode::pi_cb_single_label_target, lestes::backend_v2::intercode::pi_cb_single_address_target, lestes::backend_v2::intercode::pi_bt, lestes::backend_v2::intercode::pi_bf, lestes::backend_v2::intercode::pi_bg, lestes::backend_v2::intercode::pi_bl, lestes::backend_v2::intercode::pi_be, lestes::backend_v2::intercode::pi_bng, lestes::backend_v2::intercode::pi_bnl, lestes::backend_v2::intercode::pi_bne, lestes::backend_v2::intercode::pi_ibg, lestes::backend_v2::intercode::pi_ibl, lestes::backend_v2::intercode::pi_ibe, lestes::backend_v2::intercode::pi_ibng, lestes::backend_v2::intercode::pi_ibnl, and lestes::backend_v2::intercode::pi_ibne.

Definition at line 348 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:51 2007 for lestes by doxygen 1.5.1-20070107