lestes::md::instructions::pi_pi2ge_pi Class Reference

#include <pi_pi2ge_pi.g.hh>

Inheritance diagram for lestes::md::instructions::pi_pi2ge_pi:

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

Public Member Functions

ptr< ::lestes::backend_v2::intercode::ge_spfirst_sp_get () const
 The method first_sp_get returns the value of the field pi_pi2ge_pi::first_sp.
void first_sp_set (const ptr< ::lestes::backend_v2::intercode::ge_sp > &)
 The method first_sp_set sets the field pi_pi2ge_pi::first_sp to the given value.
ptr< ::lestes::backend_v2::intercode::ge_splast_sp_get () const
 The method last_sp_get returns the value of the field pi_pi2ge_pi::last_sp.
void last_sp_set (const ptr< ::lestes::backend_v2::intercode::ge_sp > &)
 The method last_sp_set sets the field pi_pi2ge_pi::last_sp to the given value.
ptr< ::lestes::backend_v2::intercode::ge_operand_regpreserved_reg_edi_get () const
 The method preserved_reg_edi_get returns the value of the field pi_pi2ge_pi::preserved_reg_edi.
void preserved_reg_edi_set (const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &)
 The method preserved_reg_edi_set sets the field pi_pi2ge_pi::preserved_reg_edi to the given value.
ptr< ::lestes::backend_v2::intercode::ge_operand_regpreserved_reg_esi_get () const
 The method preserved_reg_esi_get returns the value of the field pi_pi2ge_pi::preserved_reg_esi.
void preserved_reg_esi_set (const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &)
 The method preserved_reg_esi_set sets the field pi_pi2ge_pi::preserved_reg_esi to the given value.
ptr< ::lestes::backend_v2::intercode::ge_operand_regpreserved_reg_ebx_get () const
 The method preserved_reg_ebx_get returns the value of the field pi_pi2ge_pi::preserved_reg_ebx.
void preserved_reg_ebx_set (const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &)
 The method preserved_reg_ebx_set sets the field pi_pi2ge_pi::preserved_reg_ebx to the given value.
ptr< ::lestes::backend_v2::intercode::ge_operandget_stack_pointer (ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > pi)
void restore_stack (ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > pi, ptr< ::lestes::backend_v2::intercode::ge_call > ge, ptr< ::lestes::backend_v2::intercode::ge_operand > stack_pointer, ulint argc, ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > output)
void push_operands (ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > pi, ptr< ::lestes::backend_v2::intercode::ge_operand > &stack_pointer, ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > output)
void push_operand (ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call > pi, ptr< ::lestes::backend_v2::intercode::pi_operand > op, ptr< ::lestes::backend_v2::intercode::ge_operand > &stack_pointer, ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > output)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sp (ptr< ::lestes::backend_v2::intercode::pi_sp >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_add (ptr< ::lestes::backend_v2::intercode::pi_add >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sub (ptr< ::lestes::backend_v2::intercode::pi_sub >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_mul (ptr< ::lestes::backend_v2::intercode::pi_mul >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_div (ptr< ::lestes::backend_v2::intercode::pi_div >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_divrni (ptr< ::lestes::backend_v2::intercode::pi_divrni >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_divrpi (ptr< ::lestes::backend_v2::intercode::pi_divrpi >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_divrz (ptr< ::lestes::backend_v2::intercode::pi_divrz >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_mod (ptr< ::lestes::backend_v2::intercode::pi_mod >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_rem (ptr< ::lestes::backend_v2::intercode::pi_rem >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_neg (ptr< ::lestes::backend_v2::intercode::pi_neg >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_gat (ptr< ::lestes::backend_v2::intercode::pi_gat >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_shl (ptr< ::lestes::backend_v2::intercode::pi_shl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_shr (ptr< ::lestes::backend_v2::intercode::pi_shr >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sal (ptr< ::lestes::backend_v2::intercode::pi_sal >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sar (ptr< ::lestes::backend_v2::intercode::pi_sar >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_band (ptr< ::lestes::backend_v2::intercode::pi_band >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bor (ptr< ::lestes::backend_v2::intercode::pi_bor >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bxor (ptr< ::lestes::backend_v2::intercode::pi_bxor >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bnot (ptr< ::lestes::backend_v2::intercode::pi_bnot >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_land (ptr< ::lestes::backend_v2::intercode::pi_land >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_lor (ptr< ::lestes::backend_v2::intercode::pi_lor >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_lxor (ptr< ::lestes::backend_v2::intercode::pi_lxor >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_lnot (ptr< ::lestes::backend_v2::intercode::pi_lnot >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_cvt (ptr< ::lestes::backend_v2::intercode::pi_cvt >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_cmp (ptr< ::lestes::backend_v2::intercode::pi_cmp >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_mov (ptr< ::lestes::backend_v2::intercode::pi_mov >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ld (ptr< ::lestes::backend_v2::intercode::pi_ld >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_lda (ptr< ::lestes::backend_v2::intercode::pi_lda >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ldi (ptr< ::lestes::backend_v2::intercode::pi_ldi >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ldp (ptr< ::lestes::backend_v2::intercode::pi_ldp >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ldv (ptr< ::lestes::backend_v2::intercode::pi_ldv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ldpv (ptr< ::lestes::backend_v2::intercode::pi_ldpv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_st (ptr< ::lestes::backend_v2::intercode::pi_st >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sti (ptr< ::lestes::backend_v2::intercode::pi_sti >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_stp (ptr< ::lestes::backend_v2::intercode::pi_stp >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_stv (ptr< ::lestes::backend_v2::intercode::pi_stv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_stiv (ptr< ::lestes::backend_v2::intercode::pi_stiv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_stpv (ptr< ::lestes::backend_v2::intercode::pi_stpv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_call (ptr< ::lestes::backend_v2::intercode::pi_call >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_icall (ptr< ::lestes::backend_v2::intercode::pi_icall >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_callv (ptr< ::lestes::backend_v2::intercode::pi_callv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_icallv (ptr< ::lestes::backend_v2::intercode::pi_icallv >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ba (ptr< ::lestes::backend_v2::intercode::pi_ba >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bn (ptr< ::lestes::backend_v2::intercode::pi_bn >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bt (ptr< ::lestes::backend_v2::intercode::pi_bt >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bf (ptr< ::lestes::backend_v2::intercode::pi_bf >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bm (ptr< ::lestes::backend_v2::intercode::pi_bm >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bg (ptr< ::lestes::backend_v2::intercode::pi_bg >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bl (ptr< ::lestes::backend_v2::intercode::pi_bl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_be (ptr< ::lestes::backend_v2::intercode::pi_be >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bng (ptr< ::lestes::backend_v2::intercode::pi_bng >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bnl (ptr< ::lestes::backend_v2::intercode::pi_bnl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_bne (ptr< ::lestes::backend_v2::intercode::pi_bne >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_iba (ptr< ::lestes::backend_v2::intercode::pi_iba >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibn (ptr< ::lestes::backend_v2::intercode::pi_ibn >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibm (ptr< ::lestes::backend_v2::intercode::pi_ibm >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibg (ptr< ::lestes::backend_v2::intercode::pi_ibg >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibl (ptr< ::lestes::backend_v2::intercode::pi_ibl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibe (ptr< ::lestes::backend_v2::intercode::pi_ibe >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibng (ptr< ::lestes::backend_v2::intercode::pi_ibng >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibnl (ptr< ::lestes::backend_v2::intercode::pi_ibnl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_ibne (ptr< ::lestes::backend_v2::intercode::pi_ibne >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_leave (ptr< ::lestes::backend_v2::intercode::pi_leave >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sbg (ptr< ::lestes::backend_v2::intercode::pi_sbg >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sbl (ptr< ::lestes::backend_v2::intercode::pi_sbl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sbe (ptr< ::lestes::backend_v2::intercode::pi_sbe >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sbng (ptr< ::lestes::backend_v2::intercode::pi_sbng >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sbnl (ptr< ::lestes::backend_v2::intercode::pi_sbnl >)
virtual ptr< vector< srp<
::lestes::backend_v2::intercode::ge_pi > > > 
visit_pi_sbne (ptr< ::lestes::backend_v2::intercode::pi_sbne >)
virtual bool targetmachine__is_instruction_consistent (ptr< ::lestes::md::instructions::tm_instr_base > instr_version, ptr< ::lestes::backend_v2::intercode::pi_pi > pi)
 Function that allows target-machine dependent instruction consistency verification.
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Static Public Member Functions

static ptr< pi_pi2ge_picreate (ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > a__pi_pi2ge_pi_base__pi_operands_getter, ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > a__pi_pi2ge_pi_base__pi_id_getter, ptr< ::lestes::md::instructions::pi_operand2ge_operand > a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > a__pi_pi2ge_pi_base__pi_sp2ge_sp, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > a__pi_pi2ge_pi_base__pi_op2count, ptr< ::lestes::backend_v2::intercode::ge_sp > a__pi_pi2ge_pi__first_sp, ptr< ::lestes::backend_v2::intercode::ge_sp > a__pi_pi2ge_pi__last_sp, ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__pi_pi2ge_pi__preserved_reg_edi, ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__pi_pi2ge_pi__preserved_reg_esi, ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__pi_pi2ge_pi__preserved_reg_ebx)
 First generated factory method for class pi_pi2ge_pi.
static ptr< pi_pi2ge_picreate (ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > a__pi_pi2ge_pi_base__pi_op2count)
 Second generated factory method for class pi_pi2ge_pi.

Protected Member Functions

 pi_pi2ge_pi (ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands > a__pi_pi2ge_pi_base__pi_operands_getter, ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id > a__pi_pi2ge_pi_base__pi_id_getter, ptr< ::lestes::md::instructions::pi_operand2ge_operand > a__pi_pi2ge_pi_base__pi_op2ge_op_convertor, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > > a__pi_pi2ge_pi_base__pi_sp2ge_sp, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > > a__pi_pi2ge_pi_base__pi_op2count, ptr< ::lestes::backend_v2::intercode::ge_sp > a__pi_pi2ge_pi__first_sp, ptr< ::lestes::backend_v2::intercode::ge_sp > a__pi_pi2ge_pi__last_sp, ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__pi_pi2ge_pi__preserved_reg_edi, ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__pi_pi2ge_pi__preserved_reg_esi, ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__pi_pi2ge_pi__preserved_reg_ebx)
 Generated constructor for class pi_pi2ge_pi.
virtual void gc_mark ()
 Marking routine for class pi_pi2ge_pi.

Private Attributes

srp< ::lestes::backend_v2::intercode::ge_spfirst_sp
 The first sequencepoint of the currently processed function.
srp< ::lestes::backend_v2::intercode::ge_splast_sp
 The last sequencepoint of the currently processed function.
srp< ::lestes::backend_v2::intercode::ge_operand_regpreserved_reg_edi
 An operand that hold edi register that should be pushed to the stack before any use of edi within the currently processed function.
srp< ::lestes::backend_v2::intercode::ge_operand_regpreserved_reg_esi
 An operand that hold esi register that should be pushed to the stack before any use of esi within the currently processed function.
srp< ::lestes::backend_v2::intercode::ge_operand_regpreserved_reg_ebx
 An operand that hold ebx register that should be pushed to the stack before any use of ebx within the currently processed function.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Definition at line 101 of file pi_pi2ge_pi.g.hh.


Constructor & Destructor Documentation

lestes::md::instructions::pi_pi2ge_pi::pi_pi2ge_pi ( ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands a__pi_pi2ge_pi_base__pi_operands_getter,
ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id a__pi_pi2ge_pi_base__pi_id_getter,
ptr< ::lestes::md::instructions::pi_operand2ge_operand a__pi_pi2ge_pi_base__pi_op2ge_op_convertor,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > >  a__pi_pi2ge_pi_base__pi_sp2ge_sp,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > >  a__pi_pi2ge_pi_base__pi_op2count,
ptr< ::lestes::backend_v2::intercode::ge_sp a__pi_pi2ge_pi__first_sp,
ptr< ::lestes::backend_v2::intercode::ge_sp a__pi_pi2ge_pi__last_sp,
ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__pi_pi2ge_pi__preserved_reg_edi,
ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__pi_pi2ge_pi__preserved_reg_esi,
ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__pi_pi2ge_pi__preserved_reg_ebx 
) [protected]

Generated constructor for class pi_pi2ge_pi.

Generated constructor for class pi_pi2ge_pi.

Author:
lsg

Definition at line 155 of file pi_pi2ge_pi.g.cc.

Referenced by create().

00165         : pi_pi2ge_pi_base(a__pi_pi2ge_pi_base__pi_operands_getter,
00166                 a__pi_pi2ge_pi_base__pi_id_getter,
00167                 a__pi_pi2ge_pi_base__pi_op2ge_op_convertor,
00168                 a__pi_pi2ge_pi_base__pi_sp2ge_sp,
00169                 a__pi_pi2ge_pi_base__pi_op2count), first_sp(a__pi_pi2ge_pi__first_sp), last_sp(a__pi_pi2ge_pi__last_sp), preserved_reg_edi(a__pi_pi2ge_pi__preserved_reg_edi), preserved_reg_esi(a__pi_pi2ge_pi__preserved_reg_esi), preserved_reg_ebx(a__pi_pi2ge_pi__preserved_reg_ebx)
00170 {}


Member Function Documentation

ptr<::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::first_sp_get (  )  const

The method first_sp_get returns the value of the field pi_pi2ge_pi::first_sp.

Returns:
The value of pi_pi2ge_pi::first_sp.
Author:
lsg

Definition at line 29 of file pi_pi2ge_pi.g.cc.

References first_sp.

00030 {
00031         return first_sp;
00032 }

void lestes::md::instructions::pi_pi2ge_pi::first_sp_set ( const ptr< ::lestes::backend_v2::intercode::ge_sp > &  x  ) 

The method first_sp_set sets the field pi_pi2ge_pi::first_sp to the given value.

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

Definition at line 38 of file pi_pi2ge_pi.g.cc.

References first_sp.

Referenced by visit_pi_sp().

00039 {
00040         pi_pi2ge_pi::first_sp = x;
00041 }

ptr<::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::last_sp_get (  )  const

The method last_sp_get returns the value of the field pi_pi2ge_pi::last_sp.

Returns:
The value of pi_pi2ge_pi::last_sp.
Author:
lsg

Definition at line 47 of file pi_pi2ge_pi.g.cc.

References last_sp.

Referenced by visit_pi_leave().

00048 {
00049         return last_sp;
00050 }

void lestes::md::instructions::pi_pi2ge_pi::last_sp_set ( const ptr< ::lestes::backend_v2::intercode::ge_sp > &  x  ) 

The method last_sp_set sets the field pi_pi2ge_pi::last_sp to the given value.

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

Definition at line 56 of file pi_pi2ge_pi.g.cc.

References last_sp.

Referenced by visit_pi_sp().

00057 {
00058         pi_pi2ge_pi::last_sp = x;
00059 }

ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_edi_get (  )  const

The method preserved_reg_edi_get returns the value of the field pi_pi2ge_pi::preserved_reg_edi.

Returns:
The value of pi_pi2ge_pi::preserved_reg_edi.
Author:
lsg

Definition at line 65 of file pi_pi2ge_pi.g.cc.

References preserved_reg_edi.

00066 {
00067         return preserved_reg_edi;
00068 }

void lestes::md::instructions::pi_pi2ge_pi::preserved_reg_edi_set ( const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &  x  ) 

The method preserved_reg_edi_set sets the field pi_pi2ge_pi::preserved_reg_edi to the given value.

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

Definition at line 74 of file pi_pi2ge_pi.g.cc.

References preserved_reg_edi.

00075 {
00076         pi_pi2ge_pi::preserved_reg_edi = x;
00077 }

ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_esi_get (  )  const

The method preserved_reg_esi_get returns the value of the field pi_pi2ge_pi::preserved_reg_esi.

Returns:
The value of pi_pi2ge_pi::preserved_reg_esi.
Author:
lsg

Definition at line 83 of file pi_pi2ge_pi.g.cc.

References preserved_reg_esi.

00084 {
00085         return preserved_reg_esi;
00086 }

void lestes::md::instructions::pi_pi2ge_pi::preserved_reg_esi_set ( const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &  x  ) 

The method preserved_reg_esi_set sets the field pi_pi2ge_pi::preserved_reg_esi to the given value.

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

Definition at line 92 of file pi_pi2ge_pi.g.cc.

References preserved_reg_esi.

00093 {
00094         pi_pi2ge_pi::preserved_reg_esi = x;
00095 }

ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_ebx_get (  )  const

The method preserved_reg_ebx_get returns the value of the field pi_pi2ge_pi::preserved_reg_ebx.

Returns:
The value of pi_pi2ge_pi::preserved_reg_ebx.
Author:
lsg

Definition at line 101 of file pi_pi2ge_pi.g.cc.

References preserved_reg_ebx.

00102 {
00103         return preserved_reg_ebx;
00104 }

void lestes::md::instructions::pi_pi2ge_pi::preserved_reg_ebx_set ( const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &  x  ) 

The method preserved_reg_ebx_set sets the field pi_pi2ge_pi::preserved_reg_ebx to the given value.

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

Definition at line 110 of file pi_pi2ge_pi.g.cc.

References preserved_reg_ebx.

00111 {
00112         pi_pi2ge_pi::preserved_reg_ebx = x;
00113 }

ptr< ::lestes::backend_v2::intercode::ge_operand > lestes::md::instructions::pi_pi2ge_pi::get_stack_pointer ( ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call pi  ) 

Referenced by visit_pi_call(), and visit_pi_callv().

void lestes::md::instructions::pi_pi2ge_pi::restore_stack ( ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call pi,
ptr< ::lestes::backend_v2::intercode::ge_call ge,
ptr< ::lestes::backend_v2::intercode::ge_operand stack_pointer,
ulint  argc,
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  output 
)

Referenced by visit_pi_call(), and visit_pi_callv().

void lestes::md::instructions::pi_pi2ge_pi::push_operands ( ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call pi,
ptr< ::lestes::backend_v2::intercode::ge_operand > &  stack_pointer,
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  output 
)

Referenced by visit_pi_call(), and visit_pi_callv().

void lestes::md::instructions::pi_pi2ge_pi::push_operand ( ptr< ::lestes::backend_v2::intercode::pi_abstract_function_call pi,
ptr< ::lestes::backend_v2::intercode::pi_operand op,
ptr< ::lestes::backend_v2::intercode::ge_operand > &  stack_pointer,
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  output 
)

Referenced by visit_pi_call().

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sp ( ptr< ::lestes::backend_v2::intercode::pi_sp  )  [virtual]

Definition at line 100 of file pi_pi2ge_pi.cc.

References lestes::md::types::DT_INT_32U, first_sp_set(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_EPILOGUE__1, lestes::md::instructions::INSTRUCTION_LEAVE__1, lestes::md::instructions::INSTRUCTION_PROLOGUE__1, lestes::md::instructions::INSTRUCTION_RET__1, last_sp_set(), lestes::md::instructions::pi_pi2ge_pi_base::pi_sp2ge_sp_get(), preserved_reg_ebx, preserved_reg_edi, and preserved_reg_esi.

00100                                                                                            {
00101         
00102         ptr< ge_pi_vector__type > output = ge_pi_vector__type::create();
00103         
00104         ptr<ge_sp> ge = ge_sp::create(NULL,pi);
00105         
00106         //Find the first and the last sequencepoint of the processed function.
00107         if ( !pi->psp_get() ) {
00108                 /*
00109                         The first sequencepoint. Prepend function prologue.     
00110                 */
00111                 ptr<ge_sp> extra_sp = ge_sp::create(NULL,pi);
00112                 output->push_back(extra_sp);
00113                 
00114                 ptr<ge_pi> ge_prologue = ge_pi::create(tm_instr::instance(INSTRUCTION_PROLOGUE__1),pi);
00115                 ge_prologue->dependencies_get()->insert(extra_sp);
00116                 output->push_back(ge_prologue);
00117                 
00118                 /*
00119                         Preserved registers.
00120                         They are the first operands of the function, so they get required registers.
00121                         If the register allocator allocates these register to someone else, they are
00122                         spilled-out (preserved) and loaded back at the end of the function.
00123                 */
00124                 ptr<tm_data_type_base> type_32u = tm_dt_simple::instance(DT_INT_32U);
00125                 preserved_reg_edi = ge_operand_reg::create(type_32u,ge_prologue,NULL);
00126                 ge_prologue->operands_output_get()->push_back(preserved_reg_edi);
00127                 preserved_reg_esi = ge_operand_reg::create(type_32u,ge_prologue,NULL);
00128                 ge_prologue->operands_output_get()->push_back(preserved_reg_esi);
00129                 preserved_reg_ebx = ge_operand_reg::create(type_32u,ge_prologue,NULL);
00130                 ge_prologue->operands_output_get()->push_back(preserved_reg_ebx);
00131                 
00132                 ge->dependencies_get()->insert(extra_sp);
00133                 ge->dependencies_get()->insert(ge_prologue);
00134                 output->push_back(ge);
00135                 
00136                 first_sp_set(ge);
00137         } else if ( !pi->nsp_get() ) {
00138                 /*
00139                         The last sequencepoint. Append function epilogue.       
00140                 */
00141                 last_sp_set(ge);
00142                 output->push_back(ge);
00143                 
00144                 ptr<ge_pi> ge_epilogue = ge_pi::create(tm_instr::instance(INSTRUCTION_EPILOGUE__1),pi);
00145                 ge_epilogue->dependencies_get()->insert(ge);
00146                 ge_epilogue->operands_input_get()->push_back(preserved_reg_edi);
00147                 ge_epilogue->operands_input_get()->push_back(preserved_reg_esi);
00148                 ge_epilogue->operands_input_get()->push_back(preserved_reg_ebx);
00149                 output->push_back(ge_epilogue);
00150                 
00151                 ptr<ge_pi> ge_leave = ge_pi::create(tm_instr::instance(INSTRUCTION_LEAVE__1),pi);
00152                 ge_leave->dependencies_get()->insert(ge_epilogue);
00153                 output->push_back(ge_leave);
00154                 
00155                 ptr<ge_pi> ge_ret = ge_pi::create(tm_instr::instance(INSTRUCTION_RET__1),pi);
00156                 ge_ret->dependencies_get()->insert(ge_leave);
00157                 output->push_back(ge_ret);
00158                 
00159                 ptr<ge_sp> extra_sp = ge_sp::create(NULL,pi);
00160                 extra_sp->dependencies_get()->insert(ge);
00161                 extra_sp->dependencies_get()->insert(ge_epilogue);
00162                 extra_sp->dependencies_get()->insert(ge_leave);
00163                 extra_sp->dependencies_get()->insert(ge_ret);
00164                 output->push_back(extra_sp);
00165         } else {        
00166                 output->push_back(ge);
00167         }
00168         
00169         pi_sp2ge_sp_get()->insert(::std::pair<srp<pi_sp>,srp<ge_sp> >(pi,ge));
00170         
00171         return output;
00172 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_add ( ptr< ::lestes::backend_v2::intercode::pi_add  )  [virtual]

Definition at line 14 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_ADD_1.

00014                                                                                                                           {
00015         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00016         ptr< pi_pi2ge_pi_template > pat;
00017 
00018         pat = pi_pi2ge_pi_template::instance(TEM_ADD_1);
00019         out = convert(pi,pat);
00020          
00021         if ( out ) {
00022                 return out;
00023         }
00024 
00025         lassert(false);
00026 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sub ( ptr< ::lestes::backend_v2::intercode::pi_sub  )  [virtual]

Definition at line 28 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SUB_1.

00028                                                                                                                           {
00029         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00030         ptr< pi_pi2ge_pi_template > pat;
00031 
00032         pat = pi_pi2ge_pi_template::instance(TEM_SUB_1);
00033         out = convert(pi,pat);
00034          
00035         if ( out ) {
00036                 return out;
00037         }
00038 
00039         lassert(false);
00040 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_mul ( ptr< ::lestes::backend_v2::intercode::pi_mul  )  [virtual]

Definition at line 42 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_MUL_1, and lestes::md::instructions::TEM_MUL_2.

00042                                                                                                                           {
00043         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00044         ptr< pi_pi2ge_pi_template > pat;
00045 
00046         pat = pi_pi2ge_pi_template::instance(TEM_MUL_1);
00047         out = convert(pi,pat);
00048          
00049         if ( out ) {
00050                 return out;
00051         }
00052 
00053         pat = pi_pi2ge_pi_template::instance(TEM_MUL_2);
00054         out = convert(pi,pat);
00055          
00056         if ( out ) {
00057                 return out;
00058         }
00059 
00060         lassert(false);
00061 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_div ( ptr< ::lestes::backend_v2::intercode::pi_div  )  [virtual]

Definition at line 63 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_DIV_1, lestes::md::instructions::TEM_DIV_2, and lestes::md::instructions::TEM_DIV_3.

00063                                                                                                                           {
00064         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00065         ptr< pi_pi2ge_pi_template > pat;
00066 
00067         pat = pi_pi2ge_pi_template::instance(TEM_DIV_1);
00068         out = convert(pi,pat);
00069          
00070         if ( out ) {
00071                 return out;
00072         }
00073 
00074         pat = pi_pi2ge_pi_template::instance(TEM_DIV_2);
00075         out = convert(pi,pat);
00076          
00077         if ( out ) {
00078                 return out;
00079         }
00080 
00081         pat = pi_pi2ge_pi_template::instance(TEM_DIV_3);
00082         out = convert(pi,pat);
00083          
00084         if ( out ) {
00085                 return out;
00086         }
00087 
00088         lassert(false);
00089 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_divrni ( ptr< ::lestes::backend_v2::intercode::pi_divrni  )  [virtual]

Definition at line 496 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00496                                                                                                 {
00497         lassert2(false,msg_not_implemented_yet);
00498 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_divrpi ( ptr< ::lestes::backend_v2::intercode::pi_divrpi  )  [virtual]

Definition at line 500 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00500                                                                                                 {
00501         lassert2(false,msg_not_implemented_yet);
00502 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_divrz ( ptr< ::lestes::backend_v2::intercode::pi_divrz  )  [virtual]

Definition at line 504 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00504                                                                                               {
00505         lassert2(false,msg_not_implemented_yet);
00506 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_mod ( ptr< ::lestes::backend_v2::intercode::pi_mod  )  [virtual]

Definition at line 91 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_MOD_1, lestes::md::instructions::TEM_MOD_2, and lestes::md::instructions::TEM_MOD_3.

00091                                                                                                                           {
00092         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00093         ptr< pi_pi2ge_pi_template > pat;
00094 
00095         pat = pi_pi2ge_pi_template::instance(TEM_MOD_1);
00096         out = convert(pi,pat);
00097          
00098         if ( out ) {
00099                 return out;
00100         }
00101 
00102         pat = pi_pi2ge_pi_template::instance(TEM_MOD_2);
00103         out = convert(pi,pat);
00104          
00105         if ( out ) {
00106                 return out;
00107         }
00108 
00109         pat = pi_pi2ge_pi_template::instance(TEM_MOD_3);
00110         out = convert(pi,pat);
00111          
00112         if ( out ) {
00113                 return out;
00114         }
00115 
00116         lassert(false);
00117 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_rem ( ptr< ::lestes::backend_v2::intercode::pi_rem  )  [virtual]

Definition at line 119 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_REM_1, lestes::md::instructions::TEM_REM_2, and lestes::md::instructions::TEM_REM_3.

00119                                                                                                                           {
00120         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00121         ptr< pi_pi2ge_pi_template > pat;
00122 
00123         pat = pi_pi2ge_pi_template::instance(TEM_REM_1);
00124         out = convert(pi,pat);
00125          
00126         if ( out ) {
00127                 return out;
00128         }
00129 
00130         pat = pi_pi2ge_pi_template::instance(TEM_REM_2);
00131         out = convert(pi,pat);
00132          
00133         if ( out ) {
00134                 return out;
00135         }
00136 
00137         pat = pi_pi2ge_pi_template::instance(TEM_REM_3);
00138         out = convert(pi,pat);
00139          
00140         if ( out ) {
00141                 return out;
00142         }
00143 
00144         lassert(false);
00145 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_neg ( ptr< ::lestes::backend_v2::intercode::pi_neg  )  [virtual]

Definition at line 147 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_NEG_1.

00147                                                                                                                           {
00148         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00149         ptr< pi_pi2ge_pi_template > pat;
00150 
00151         pat = pi_pi2ge_pi_template::instance(TEM_NEG_1);
00152         out = convert(pi,pat);
00153          
00154         if ( out ) {
00155                 return out;
00156         }
00157 
00158         lassert(false);
00159 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_gat ( ptr< ::lestes::backend_v2::intercode::pi_gat  )  [virtual]

Definition at line 161 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_GAT_1.

00161                                                                                                                           {
00162         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00163         ptr< pi_pi2ge_pi_template > pat;
00164 
00165         pat = pi_pi2ge_pi_template::instance(TEM_GAT_1);
00166         out = convert(pi,pat);
00167          
00168         if ( out ) {
00169                 return out;
00170         }
00171 
00172         lassert(false);
00173 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_shl ( ptr< ::lestes::backend_v2::intercode::pi_shl  )  [virtual]

Definition at line 175 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SHL_1.

00175                                                                                                                           {
00176         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00177         ptr< pi_pi2ge_pi_template > pat;
00178 
00179         pat = pi_pi2ge_pi_template::instance(TEM_SHL_1);
00180         out = convert(pi,pat);
00181          
00182         if ( out ) {
00183                 return out;
00184         }
00185 
00186         lassert(false);
00187 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_shr ( ptr< ::lestes::backend_v2::intercode::pi_shr  )  [virtual]

Definition at line 189 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SHR_1.

00189                                                                                                                           {
00190         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00191         ptr< pi_pi2ge_pi_template > pat;
00192 
00193         pat = pi_pi2ge_pi_template::instance(TEM_SHR_1);
00194         out = convert(pi,pat);
00195          
00196         if ( out ) {
00197                 return out;
00198         }
00199 
00200         lassert(false);
00201 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sal ( ptr< ::lestes::backend_v2::intercode::pi_sal  )  [virtual]

Definition at line 203 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SAL_1.

00203                                                                                                                           {
00204         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00205         ptr< pi_pi2ge_pi_template > pat;
00206 
00207         pat = pi_pi2ge_pi_template::instance(TEM_SAL_1);
00208         out = convert(pi,pat);
00209          
00210         if ( out ) {
00211                 return out;
00212         }
00213 
00214         lassert(false);
00215 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sar ( ptr< ::lestes::backend_v2::intercode::pi_sar  )  [virtual]

Definition at line 217 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SAR_1.

00217                                                                                                                           {
00218         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00219         ptr< pi_pi2ge_pi_template > pat;
00220 
00221         pat = pi_pi2ge_pi_template::instance(TEM_SAR_1);
00222         out = convert(pi,pat);
00223          
00224         if ( out ) {
00225                 return out;
00226         }
00227 
00228         lassert(false);
00229 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_band ( ptr< ::lestes::backend_v2::intercode::pi_band  )  [virtual]

Definition at line 231 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BAND_1.

00231                                                                                                                             {
00232         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00233         ptr< pi_pi2ge_pi_template > pat;
00234 
00235         pat = pi_pi2ge_pi_template::instance(TEM_BAND_1);
00236         out = convert(pi,pat);
00237          
00238         if ( out ) {
00239                 return out;
00240         }
00241 
00242         lassert(false);
00243 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bor ( ptr< ::lestes::backend_v2::intercode::pi_bor  )  [virtual]

Definition at line 245 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BOR_1.

00245                                                                                                                           {
00246         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00247         ptr< pi_pi2ge_pi_template > pat;
00248 
00249         pat = pi_pi2ge_pi_template::instance(TEM_BOR_1);
00250         out = convert(pi,pat);
00251          
00252         if ( out ) {
00253                 return out;
00254         }
00255 
00256         lassert(false);
00257 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bxor ( ptr< ::lestes::backend_v2::intercode::pi_bxor  )  [virtual]

Definition at line 259 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BXOR_1.

00259                                                                                                                             {
00260         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00261         ptr< pi_pi2ge_pi_template > pat;
00262 
00263         pat = pi_pi2ge_pi_template::instance(TEM_BXOR_1);
00264         out = convert(pi,pat);
00265          
00266         if ( out ) {
00267                 return out;
00268         }
00269 
00270         lassert(false);
00271 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bnot ( ptr< ::lestes::backend_v2::intercode::pi_bnot  )  [virtual]

Definition at line 273 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNOT_1.

00273                                                                                                                             {
00274         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00275         ptr< pi_pi2ge_pi_template > pat;
00276 
00277         pat = pi_pi2ge_pi_template::instance(TEM_BNOT_1);
00278         out = convert(pi,pat);
00279          
00280         if ( out ) {
00281                 return out;
00282         }
00283 
00284         lassert(false);
00285 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_land ( ptr< ::lestes::backend_v2::intercode::pi_land  )  [virtual]

Definition at line 287 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LAND_1.

00287                                                                                                                             {
00288         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00289         ptr< pi_pi2ge_pi_template > pat;
00290 
00291         pat = pi_pi2ge_pi_template::instance(TEM_LAND_1);
00292         out = convert(pi,pat);
00293          
00294         if ( out ) {
00295                 return out;
00296         }
00297 
00298         lassert(false);
00299 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lor ( ptr< ::lestes::backend_v2::intercode::pi_lor  )  [virtual]

Definition at line 301 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LOR_1.

00301                                                                                                                           {
00302         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00303         ptr< pi_pi2ge_pi_template > pat;
00304 
00305         pat = pi_pi2ge_pi_template::instance(TEM_LOR_1);
00306         out = convert(pi,pat);
00307          
00308         if ( out ) {
00309                 return out;
00310         }
00311 
00312         lassert(false);
00313 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lxor ( ptr< ::lestes::backend_v2::intercode::pi_lxor  )  [virtual]

Definition at line 315 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LXOR_1.

00315                                                                                                                             {
00316         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00317         ptr< pi_pi2ge_pi_template > pat;
00318 
00319         pat = pi_pi2ge_pi_template::instance(TEM_LXOR_1);
00320         out = convert(pi,pat);
00321          
00322         if ( out ) {
00323                 return out;
00324         }
00325 
00326         lassert(false);
00327 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lnot ( ptr< ::lestes::backend_v2::intercode::pi_lnot  )  [virtual]

Definition at line 329 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LNOT_1.

00329                                                                                                                             {
00330         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00331         ptr< pi_pi2ge_pi_template > pat;
00332 
00333         pat = pi_pi2ge_pi_template::instance(TEM_LNOT_1);
00334         out = convert(pi,pat);
00335          
00336         if ( out ) {
00337                 return out;
00338         }
00339 
00340         lassert(false);
00341 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_cvt ( ptr< ::lestes::backend_v2::intercode::pi_cvt  )  [virtual]

Definition at line 343 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, lestes::md::instructions::TEM_CVT_1, lestes::md::instructions::TEM_CVT_2, and lestes::md::instructions::TEM_CVT_3.

00343                                                                                                                           {
00344         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00345         ptr< pi_pi2ge_pi_template > pat;
00346 
00347         pat = pi_pi2ge_pi_template::instance(TEM_CVT_1);
00348         out = convert(pi,pat);
00349          
00350         if ( out ) {
00351                 return out;
00352         }
00353 
00354         pat = pi_pi2ge_pi_template::instance(TEM_CVT_2);
00355         out = convert(pi,pat);
00356          
00357         if ( out ) {
00358                 return out;
00359         }
00360 
00361         pat = pi_pi2ge_pi_template::instance(TEM_CVT_3);
00362         out = convert(pi,pat);
00363          
00364         if ( out ) {
00365                 return out;
00366         }
00367 
00368         lassert(false);
00369 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_cmp ( ptr< ::lestes::backend_v2::intercode::pi_cmp  )  [virtual]

Definition at line 553 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_CMP_1.

00553                                                                                                                           {
00554         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00555         ptr< pi_pi2ge_pi_template > pat;
00556 
00557         pat = pi_pi2ge_pi_template::instance(TEM_CMP_1);
00558         out = convert(pi,pat);
00559          
00560         if ( out ) {
00561                 return out;
00562         }
00563 
00564         lassert(false);
00565 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_mov ( ptr< ::lestes::backend_v2::intercode::pi_mov  )  [virtual]

Definition at line 371 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_MOV_1.

00371                                                                                                                           {
00372         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00373         ptr< pi_pi2ge_pi_template > pat;
00374 
00375         pat = pi_pi2ge_pi_template::instance(TEM_MOV_1);
00376         out = convert(pi,pat);
00377          
00378         if ( out ) {
00379                 return out;
00380         }
00381 
00382         lassert(false);
00383 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ld ( ptr< ::lestes::backend_v2::intercode::pi_ld  )  [virtual]

Definition at line 469 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LD_1.

00469                                                                                                                         {
00470         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00471         ptr< pi_pi2ge_pi_template > pat;
00472 
00473         pat = pi_pi2ge_pi_template::instance(TEM_LD_1);
00474         out = convert(pi,pat);
00475          
00476         if ( out ) {
00477                 return out;
00478         }
00479 
00480         lassert(false);
00481 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_lda ( ptr< ::lestes::backend_v2::intercode::pi_lda  )  [virtual]

Definition at line 539 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDA_1.

00539                                                                                                                           {
00540         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00541         ptr< pi_pi2ge_pi_template > pat;
00542 
00543         pat = pi_pi2ge_pi_template::instance(TEM_LDA_1);
00544         out = convert(pi,pat);
00545          
00546         if ( out ) {
00547                 return out;
00548         }
00549 
00550         lassert(false);
00551 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldi ( ptr< ::lestes::backend_v2::intercode::pi_ldi  )  [virtual]

Definition at line 497 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDI_1.

00497                                                                                                                           {
00498         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00499         ptr< pi_pi2ge_pi_template > pat;
00500 
00501         pat = pi_pi2ge_pi_template::instance(TEM_LDI_1);
00502         out = convert(pi,pat);
00503          
00504         if ( out ) {
00505                 return out;
00506         }
00507 
00508         lassert(false);
00509 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldp ( ptr< ::lestes::backend_v2::intercode::pi_ldp  )  [virtual]

Definition at line 511 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDP_1.

00511                                                                                                                           {
00512         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00513         ptr< pi_pi2ge_pi_template > pat;
00514 
00515         pat = pi_pi2ge_pi_template::instance(TEM_LDP_1);
00516         out = convert(pi,pat);
00517          
00518         if ( out ) {
00519                 return out;
00520         }
00521 
00522         lassert(false);
00523 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldv ( ptr< ::lestes::backend_v2::intercode::pi_ldv  )  [virtual]

Definition at line 483 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDV_1.

00483                                                                                                                           {
00484         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00485         ptr< pi_pi2ge_pi_template > pat;
00486 
00487         pat = pi_pi2ge_pi_template::instance(TEM_LDV_1);
00488         out = convert(pi,pat);
00489          
00490         if ( out ) {
00491                 return out;
00492         }
00493 
00494         lassert(false);
00495 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ldpv ( ptr< ::lestes::backend_v2::intercode::pi_ldpv  )  [virtual]

Definition at line 525 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_LDPV_1.

00525                                                                                                                             {
00526         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00527         ptr< pi_pi2ge_pi_template > pat;
00528 
00529         pat = pi_pi2ge_pi_template::instance(TEM_LDPV_1);
00530         out = convert(pi,pat);
00531          
00532         if ( out ) {
00533                 return out;
00534         }
00535 
00536         lassert(false);
00537 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_st ( ptr< ::lestes::backend_v2::intercode::pi_st  )  [virtual]

Definition at line 385 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_ST_1.

00385                                                                                                                         {
00386         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00387         ptr< pi_pi2ge_pi_template > pat;
00388 
00389         pat = pi_pi2ge_pi_template::instance(TEM_ST_1);
00390         out = convert(pi,pat);
00391          
00392         if ( out ) {
00393                 return out;
00394         }
00395 
00396         lassert(false);
00397 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sti ( ptr< ::lestes::backend_v2::intercode::pi_sti  )  [virtual]

Definition at line 413 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STI_1.

00413                                                                                                                           {
00414         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00415         ptr< pi_pi2ge_pi_template > pat;
00416 
00417         pat = pi_pi2ge_pi_template::instance(TEM_STI_1);
00418         out = convert(pi,pat);
00419          
00420         if ( out ) {
00421                 return out;
00422         }
00423 
00424         lassert(false);
00425 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stp ( ptr< ::lestes::backend_v2::intercode::pi_stp  )  [virtual]

Definition at line 441 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STP_1.

00441                                                                                                                           {
00442         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00443         ptr< pi_pi2ge_pi_template > pat;
00444 
00445         pat = pi_pi2ge_pi_template::instance(TEM_STP_1);
00446         out = convert(pi,pat);
00447          
00448         if ( out ) {
00449                 return out;
00450         }
00451 
00452         lassert(false);
00453 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stv ( ptr< ::lestes::backend_v2::intercode::pi_stv  )  [virtual]

Definition at line 399 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STV_1.

00399                                                                                                                           {
00400         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00401         ptr< pi_pi2ge_pi_template > pat;
00402 
00403         pat = pi_pi2ge_pi_template::instance(TEM_STV_1);
00404         out = convert(pi,pat);
00405          
00406         if ( out ) {
00407                 return out;
00408         }
00409 
00410         lassert(false);
00411 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stiv ( ptr< ::lestes::backend_v2::intercode::pi_stiv  )  [virtual]

Definition at line 427 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STIV_1.

00427                                                                                                                             {
00428         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00429         ptr< pi_pi2ge_pi_template > pat;
00430 
00431         pat = pi_pi2ge_pi_template::instance(TEM_STIV_1);
00432         out = convert(pi,pat);
00433          
00434         if ( out ) {
00435                 return out;
00436         }
00437 
00438         lassert(false);
00439 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_stpv ( ptr< ::lestes::backend_v2::intercode::pi_stpv  )  [virtual]

Definition at line 455 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_STPV_1.

00455                                                                                                                             {
00456         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00457         ptr< pi_pi2ge_pi_template > pat;
00458 
00459         pat = pi_pi2ge_pi_template::instance(TEM_STPV_1);
00460         out = convert(pi,pat);
00461          
00462         if ( out ) {
00463                 return out;
00464         }
00465 
00466         lassert(false);
00467 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_call ( ptr< ::lestes::backend_v2::intercode::pi_call  )  [virtual]

Definition at line 189 of file pi_pi2ge_pi.cc.

References lestes::md::types::DT_INT_32U, lestes::msg::eolog, get_stack_pointer(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_CALL__1, lestes::md::instructions::pi_pi2ge_pi_base::pi_op2ge_op_convertor_get(), push_operand(), push_operands(), and restore_stack().

00189                                                                                                {
00190         log << "visit_pi_call - start\n" << eolog;
00191         
00192         ptr< ge_pi_vector__type > output = ge_pi_vector__type::create();
00193         
00194         ptr<ge_operand> stack_pointer = get_stack_pointer(pi);
00195         
00196         ptr<ge_call> ge = ge_call::create(tm_instr::instance(INSTRUCTION_CALL__1),pi,pi->f_get());
00197         
00198         //non-preserved registers
00199         ptr<ge_operand> reg_eax = pi_op2ge_op_convertor_get()->convert(pi->rv_get());
00200         reg_eax->origin_set(ge);
00201         ge->operands_output_get()->push_back(reg_eax);
00202         
00203         ptr<tm_data_type_base> type_32u = tm_dt_simple::instance(DT_INT_32U);
00204         ptr<ge_operand> reg_ecx = ge_operand_reg::create(type_32u,ge,NULL);
00205         ge->operands_output_get()->push_back(reg_ecx);
00206         
00207         ptr<ge_operand> reg_edx = ge_operand_reg::create(type_32u,ge,NULL);
00208         ge->operands_output_get()->push_back(reg_edx);
00209         
00210         int pushed_args = 0;
00211         
00212         //push arguments
00213         push_operands(pi,stack_pointer,output);
00214 
00215         if ( !pi->type_get()->return_reg_get() ) {      
00216                 //push destination for return value
00217                 push_operand(pi,pi->rv_get(),stack_pointer,output);
00218                 ++pushed_args;
00219         }
00220 
00221         //call  
00222         if ( output->size()>0 ) {
00223                 ptr<ge_pi> last = (*output)[output->size() - 1];
00224                 ge->dependencies_get()->insert(last);
00225         }
00226         output->push_back(ge);
00227         
00228         pushed_args += pi->args_get()->size();
00229         
00230         //generate code that restores original value of stack pointer.
00231         restore_stack(pi,ge,stack_pointer,pushed_args,output);
00232         
00233         log << "visit_pi_call - end\n" << eolog;
00234         
00235         return output;
00236 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_icall ( ptr< ::lestes::backend_v2::intercode::pi_icall  )  [virtual]

Definition at line 448 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00448                                                                                                {
00449         lassert2(false,msg_not_implemented_yet);
00450 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_callv ( ptr< ::lestes::backend_v2::intercode::pi_callv  )  [virtual]

Definition at line 405 of file pi_pi2ge_pi.cc.

References lestes::md::types::DT_INT_32U, get_stack_pointer(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_CALL__1, push_operands(), and restore_stack().

00405                                                                                                  {
00406         log << "visit_pi_callv - start\n" << eolog;
00407         
00408         ptr< ge_pi_vector__type > output = ge_pi_vector__type::create();
00409         
00410         ptr<ge_operand> stack_pointer = get_stack_pointer(pi);
00411         
00412         ptr<ge_call> ge = ge_call::create(tm_instr::instance(INSTRUCTION_CALL__1),pi,pi->f_get());
00413         
00414         //non-preserved registers
00415         ptr<tm_data_type_base> type_32u = tm_dt_simple::instance(DT_INT_32U);
00416         ptr<ge_operand> reg_eax = ge_operand_reg::create(type_32u,ge,NULL);
00417         reg_eax->origin_set(ge);
00418         ge->operands_output_get()->push_back(reg_eax);
00419         
00420         ptr<ge_operand> reg_ecx = ge_operand_reg::create(type_32u,ge,NULL);
00421         reg_ecx->origin_set(ge);
00422         ge->operands_output_get()->push_back(reg_ecx);
00423         
00424         ptr<ge_operand> reg_edx = ge_operand_reg::create(type_32u,ge,NULL);
00425         reg_edx->origin_set(ge);
00426         ge->operands_output_get()->push_back(reg_edx);
00427         
00428         //push arguments
00429         push_operands(pi,stack_pointer,output);
00430         
00431         //call  
00432         if ( output->size()>0 ) {
00433                 ptr<ge_pi> last = (*output)[output->size() - 1];
00434                 ge->dependencies_get()->insert(last);
00435         }
00436         output->push_back(ge);
00437         
00438         if ( pi->args_get()->size()>0 ) {
00439                 //generate code that restores original value of stack pointer.
00440                 restore_stack(pi,ge,stack_pointer,pi->args_get()->size(),output);
00441         }
00442         
00443         log << "visit_pi_callv - end\n" << eolog;
00444         
00445         return output;
00446 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_icallv ( ptr< ::lestes::backend_v2::intercode::pi_icallv  )  [virtual]

Definition at line 452 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00452                                                                                                 {
00453         lassert2(false,msg_not_implemented_yet);
00454 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ba ( ptr< ::lestes::backend_v2::intercode::pi_ba  )  [virtual]

Definition at line 567 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BA_1.

00567                                                                                                                         {
00568         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00569         ptr< pi_pi2ge_pi_template > pat;
00570 
00571         pat = pi_pi2ge_pi_template::instance(TEM_BA_1);
00572         out = convert(pi,pat);
00573          
00574         if ( out ) {
00575                 return out;
00576         }
00577 
00578         lassert(false);
00579 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bn ( ptr< ::lestes::backend_v2::intercode::pi_bn  )  [virtual]

Definition at line 581 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BN_1.

00581                                                                                                                         {
00582         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00583         ptr< pi_pi2ge_pi_template > pat;
00584 
00585         pat = pi_pi2ge_pi_template::instance(TEM_BN_1);
00586         out = convert(pi,pat);
00587          
00588         if ( out ) {
00589                 return out;
00590         }
00591 
00592         lassert(false);
00593 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bt ( ptr< ::lestes::backend_v2::intercode::pi_bt  )  [virtual]

Definition at line 595 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BT_1.

00595                                                                                                                         {
00596         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00597         ptr< pi_pi2ge_pi_template > pat;
00598 
00599         pat = pi_pi2ge_pi_template::instance(TEM_BT_1);
00600         out = convert(pi,pat);
00601          
00602         if ( out ) {
00603                 return out;
00604         }
00605 
00606         lassert(false);
00607 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bf ( ptr< ::lestes::backend_v2::intercode::pi_bf  )  [virtual]

Definition at line 609 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BF_1.

00609                                                                                                                         {
00610         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00611         ptr< pi_pi2ge_pi_template > pat;
00612 
00613         pat = pi_pi2ge_pi_template::instance(TEM_BF_1);
00614         out = convert(pi,pat);
00615          
00616         if ( out ) {
00617                 return out;
00618         }
00619 
00620         lassert(false);
00621 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bm ( ptr< ::lestes::backend_v2::intercode::pi_bm  )  [virtual]

Definition at line 492 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00492                                                                                         {
00493         lassert2(false,msg_not_implemented_yet);
00494 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bg ( ptr< ::lestes::backend_v2::intercode::pi_bg  )  [virtual]

Definition at line 623 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BG_1.

00623                                                                                                                         {
00624         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00625         ptr< pi_pi2ge_pi_template > pat;
00626 
00627         pat = pi_pi2ge_pi_template::instance(TEM_BG_1);
00628         out = convert(pi,pat);
00629          
00630         if ( out ) {
00631                 return out;
00632         }
00633 
00634         lassert(false);
00635 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bl ( ptr< ::lestes::backend_v2::intercode::pi_bl  )  [virtual]

Definition at line 637 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BL_1.

00637                                                                                                                         {
00638         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00639         ptr< pi_pi2ge_pi_template > pat;
00640 
00641         pat = pi_pi2ge_pi_template::instance(TEM_BL_1);
00642         out = convert(pi,pat);
00643          
00644         if ( out ) {
00645                 return out;
00646         }
00647 
00648         lassert(false);
00649 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_be ( ptr< ::lestes::backend_v2::intercode::pi_be  )  [virtual]

Definition at line 651 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BE_1.

00651                                                                                                                         {
00652         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00653         ptr< pi_pi2ge_pi_template > pat;
00654 
00655         pat = pi_pi2ge_pi_template::instance(TEM_BE_1);
00656         out = convert(pi,pat);
00657          
00658         if ( out ) {
00659                 return out;
00660         }
00661 
00662         lassert(false);
00663 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bng ( ptr< ::lestes::backend_v2::intercode::pi_bng  )  [virtual]

Definition at line 665 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNG_1.

00665                                                                                                                           {
00666         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00667         ptr< pi_pi2ge_pi_template > pat;
00668 
00669         pat = pi_pi2ge_pi_template::instance(TEM_BNG_1);
00670         out = convert(pi,pat);
00671          
00672         if ( out ) {
00673                 return out;
00674         }
00675 
00676         lassert(false);
00677 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bnl ( ptr< ::lestes::backend_v2::intercode::pi_bnl  )  [virtual]

Definition at line 679 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNL_1.

00679                                                                                                                           {
00680         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00681         ptr< pi_pi2ge_pi_template > pat;
00682 
00683         pat = pi_pi2ge_pi_template::instance(TEM_BNL_1);
00684         out = convert(pi,pat);
00685          
00686         if ( out ) {
00687                 return out;
00688         }
00689 
00690         lassert(false);
00691 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_bne ( ptr< ::lestes::backend_v2::intercode::pi_bne  )  [virtual]

Definition at line 693 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_BNE_1.

00693                                                                                                                           {
00694         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00695         ptr< pi_pi2ge_pi_template > pat;
00696 
00697         pat = pi_pi2ge_pi_template::instance(TEM_BNE_1);
00698         out = convert(pi,pat);
00699          
00700         if ( out ) {
00701                 return out;
00702         }
00703 
00704         lassert(false);
00705 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_iba ( ptr< ::lestes::backend_v2::intercode::pi_iba  )  [virtual]

Definition at line 456 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00456                                                                                           {
00457         lassert2(false,msg_not_implemented_yet);
00458 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibn ( ptr< ::lestes::backend_v2::intercode::pi_ibn  )  [virtual]

Definition at line 460 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00460                                                                                           {
00461         lassert2(false,msg_not_implemented_yet);
00462 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibm ( ptr< ::lestes::backend_v2::intercode::pi_ibm  )  [virtual]

Definition at line 464 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00464                                                                                           {
00465         lassert2(false,msg_not_implemented_yet);
00466 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibg ( ptr< ::lestes::backend_v2::intercode::pi_ibg  )  [virtual]

Definition at line 468 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00468                                                                                           {
00469         lassert2(false,msg_not_implemented_yet);
00470 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibl ( ptr< ::lestes::backend_v2::intercode::pi_ibl  )  [virtual]

Definition at line 472 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00472                                                                                           {
00473         lassert2(false,msg_not_implemented_yet);
00474 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibe ( ptr< ::lestes::backend_v2::intercode::pi_ibe  )  [virtual]

Definition at line 476 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00476                                                                                           {
00477         lassert2(false,msg_not_implemented_yet);
00478 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibng ( ptr< ::lestes::backend_v2::intercode::pi_ibng  )  [virtual]

Definition at line 480 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00480                                                                                             {
00481         lassert2(false,msg_not_implemented_yet);
00482 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibnl ( ptr< ::lestes::backend_v2::intercode::pi_ibnl  )  [virtual]

Definition at line 484 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00484                                                                                             {
00485         lassert2(false,msg_not_implemented_yet);
00486 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_ibne ( ptr< ::lestes::backend_v2::intercode::pi_ibne  )  [virtual]

Definition at line 488 of file pi_pi2ge_pi.cc.

References lassert2, and lestes::std::msg_not_implemented_yet.

00488                                                                                             {
00489         lassert2(false,msg_not_implemented_yet);
00490 }

ptr< ge_pi_vector__type > lestes::md::instructions::pi_pi2ge_pi::visit_pi_leave ( ptr< ::lestes::backend_v2::intercode::pi_leave  )  [virtual]

Definition at line 175 of file pi_pi2ge_pi.cc.

References create(), lestes::md::instructions::tm_instr::instance(), lestes::md::instructions::INSTRUCTION_JMP__1, and last_sp_get().

00175                                                                                                  {
00176         
00177         //pi_leave is just regular jump that jumps to the last sequencepoint of the current function.
00178         ptr<ge_pi> ge = ge_pi::create(tm_instr::instance(INSTRUCTION_JMP__1),pi);
00179         ge->jmp_targets_set(vector<srp<ge_sp> >::create());
00180         last_sp_get()->is_jmp_target_set(true);
00181         ge->jmp_targets_get()->push_back(last_sp_get());
00182         
00183         ptr< ge_pi_vector__type > output = ge_pi_vector__type::create();
00184         output->push_back(ge);
00185         
00186         return output;
00187 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbg ( ptr< ::lestes::backend_v2::intercode::pi_sbg  )  [virtual]

Definition at line 707 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBG_1.

00707                                                                                                                           {
00708         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00709         ptr< pi_pi2ge_pi_template > pat;
00710 
00711         pat = pi_pi2ge_pi_template::instance(TEM_SBG_1);
00712         out = convert(pi,pat);
00713          
00714         if ( out ) {
00715                 return out;
00716         }
00717 
00718         lassert(false);
00719 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbl ( ptr< ::lestes::backend_v2::intercode::pi_sbl  )  [virtual]

Definition at line 721 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBL_1.

00721                                                                                                                           {
00722         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00723         ptr< pi_pi2ge_pi_template > pat;
00724 
00725         pat = pi_pi2ge_pi_template::instance(TEM_SBL_1);
00726         out = convert(pi,pat);
00727          
00728         if ( out ) {
00729                 return out;
00730         }
00731 
00732         lassert(false);
00733 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbe ( ptr< ::lestes::backend_v2::intercode::pi_sbe  )  [virtual]

Definition at line 735 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBE_1.

00735                                                                                                                           {
00736         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00737         ptr< pi_pi2ge_pi_template > pat;
00738 
00739         pat = pi_pi2ge_pi_template::instance(TEM_SBE_1);
00740         out = convert(pi,pat);
00741          
00742         if ( out ) {
00743                 return out;
00744         }
00745 
00746         lassert(false);
00747 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbng ( ptr< ::lestes::backend_v2::intercode::pi_sbng  )  [virtual]

Definition at line 749 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBNG_1.

00749                                                                                                                             {
00750         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00751         ptr< pi_pi2ge_pi_template > pat;
00752 
00753         pat = pi_pi2ge_pi_template::instance(TEM_SBNG_1);
00754         out = convert(pi,pat);
00755          
00756         if ( out ) {
00757                 return out;
00758         }
00759 
00760         lassert(false);
00761 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbnl ( ptr< ::lestes::backend_v2::intercode::pi_sbnl  )  [virtual]

Definition at line 763 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBNL_1.

00763                                                                                                                             {
00764         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00765         ptr< pi_pi2ge_pi_template > pat;
00766 
00767         pat = pi_pi2ge_pi_template::instance(TEM_SBNL_1);
00768         out = convert(pi,pat);
00769          
00770         if ( out ) {
00771                 return out;
00772         }
00773 
00774         lassert(false);
00775 }

ptr< vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::md::instructions::pi_pi2ge_pi::visit_pi_sbne ( ptr< ::lestes::backend_v2::intercode::pi_sbne  )  [virtual]

Definition at line 777 of file pi_pi2ge_pi.mdg.cc.

References lestes::md::instructions::pi_pi2ge_pi_base::convert(), lestes::md::instructions::pi_pi2ge_pi_template::instance(), lassert, and lestes::md::instructions::TEM_SBNE_1.

00777                                                                                                                             {
00778         ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi> > > out;
00779         ptr< pi_pi2ge_pi_template > pat;
00780 
00781         pat = pi_pi2ge_pi_template::instance(TEM_SBNE_1);
00782         out = convert(pi,pat);
00783          
00784         if ( out ) {
00785                 return out;
00786         }
00787 
00788         lassert(false);
00789 }

virtual bool lestes::md::instructions::pi_pi2ge_pi::targetmachine__is_instruction_consistent ( ptr< ::lestes::md::instructions::tm_instr_base instr_version,
ptr< ::lestes::backend_v2::intercode::pi_pi pi 
) [virtual]

Function that allows target-machine dependent instruction consistency verification.

Implements lestes::md::instructions::pi_pi2ge_pi_base.

ptr< pi_pi2ge_pi > lestes::md::instructions::pi_pi2ge_pi::create ( ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands a__pi_pi2ge_pi_base__pi_operands_getter,
ptr< ::lestes::backend_v2::intercode::visitor_pi_pi2id a__pi_pi2ge_pi_base__pi_id_getter,
ptr< ::lestes::md::instructions::pi_operand2ge_operand a__pi_pi2ge_pi_base__pi_op2ge_op_convertor,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > >  a__pi_pi2ge_pi_base__pi_sp2ge_sp,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > >  a__pi_pi2ge_pi_base__pi_op2count,
ptr< ::lestes::backend_v2::intercode::ge_sp a__pi_pi2ge_pi__first_sp,
ptr< ::lestes::backend_v2::intercode::ge_sp a__pi_pi2ge_pi__last_sp,
ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__pi_pi2ge_pi__preserved_reg_edi,
ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__pi_pi2ge_pi__preserved_reg_esi,
ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__pi_pi2ge_pi__preserved_reg_ebx 
) [static]

First generated factory method for class pi_pi2ge_pi.

This factory method for class pi_pi2ge_pi takes values of all fields as arguments.

Author:
lsg

Definition at line 119 of file pi_pi2ge_pi.g.cc.

References pi_pi2ge_pi().

Referenced by create(), and visit_pi_leave().

00129 {
00130         return ptr< pi_pi2ge_pi > ( new pi_pi2ge_pi(a__pi_pi2ge_pi_base__pi_operands_getter,
00131                 a__pi_pi2ge_pi_base__pi_id_getter,
00132                 a__pi_pi2ge_pi_base__pi_op2ge_op_convertor,
00133                 a__pi_pi2ge_pi_base__pi_sp2ge_sp,
00134                 a__pi_pi2ge_pi_base__pi_op2count,
00135                 a__pi_pi2ge_pi__first_sp,
00136                 a__pi_pi2ge_pi__last_sp,
00137                 a__pi_pi2ge_pi__preserved_reg_edi,
00138                 a__pi_pi2ge_pi__preserved_reg_esi,
00139                 a__pi_pi2ge_pi__preserved_reg_ebx) );
00140 }

ptr< pi_pi2ge_pi > lestes::md::instructions::pi_pi2ge_pi::create ( ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_operand >, ulint > >  a__pi_pi2ge_pi_base__pi_op2count  )  [static]

Second generated factory method for class pi_pi2ge_pi.

This factory method for class pi_pi2ge_pi uses initializers.

Author:
lsg

Definition at line 146 of file pi_pi2ge_pi.g.cc.

References create(), lestes::md::instructions::pi_operand2ge_operand::create(), lestes::backend_v2::intercode::visitor_pi_pi2id::create(), lestes::backend_v2::intercode::visitor_pi_pi2pi_operands::create(), and pi_pi2ge_pi().

00147 {
00148         return ptr< pi_pi2ge_pi > ( new pi_pi2ge_pi(::lestes::backend_v2::intercode::visitor_pi_pi2pi_operands::create(), ::lestes::backend_v2::intercode::visitor_pi_pi2id::create(), ::lestes::md::instructions::pi_operand2ge_operand::create(), ::lestes::std::map< srp< ::lestes::backend_v2::intercode::pi_sp >, srp< ::lestes::backend_v2::intercode::ge_sp > > ::create(), a__pi_pi2ge_pi_base__pi_op2count, NULL, NULL, NULL, NULL, NULL) );
00149 }

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

for purposes of dumping

Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.

Definition at line 172 of file pi_pi2ge_pi.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::md::instructions::pi_pi2ge_pi_base::reflection_get().

00173 {
00174         if (!reflection) {
00175                 typedef class_reflection::field_metadata md;
00176                 typedef class_reflection::field_metadata_list mdlist;
00177                 ptr<mdlist> mdl = mdlist::create();
00178                 mdl->push_back( md::create( "first_sp", "ge_sp" ) );
00179                 mdl->push_back( md::create( "last_sp", "ge_sp" ) );
00180                 mdl->push_back( md::create( "preserved_reg_edi", "ge_operand_reg" ) );
00181                 mdl->push_back( md::create( "preserved_reg_esi", "ge_operand_reg" ) );
00182                 mdl->push_back( md::create( "preserved_reg_ebx", "ge_operand_reg" ) );
00183                 reflection = reflection_list::create( pi_pi2ge_pi_base::reflection_get() );
00184                 reflection->push_back( class_reflection::create( "pi_pi2ge_pi", mdl ) );
00185         }
00186         return reflection;
00187 }

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

for purposes of dumping

Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.

Definition at line 189 of file pi_pi2ge_pi.g.cc.

References lestes::std::list< T >::create(), and lestes::md::instructions::pi_pi2ge_pi_base::field_values_get().

00190 {
00191         ptr < field_list_list > result = pi_pi2ge_pi_base::field_values_get();
00192         result->push_back( value_list::create() );
00193         result->back()->push_back( this->first_sp );
00194         result->push_back( value_list::create() );
00195         result->back()->push_back( this->last_sp );
00196         result->push_back( value_list::create() );
00197         result->back()->push_back( this->preserved_reg_edi );
00198         result->push_back( value_list::create() );
00199         result->back()->push_back( this->preserved_reg_esi );
00200         result->push_back( value_list::create() );
00201         result->back()->push_back( this->preserved_reg_ebx );
00202         return result;
00203 }

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

Marking routine for class pi_pi2ge_pi.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.

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

References lestes::md::instructions::pi_pi2ge_pi_base::gc_mark().

00211 {
00212         pi_pi2ge_pi_base::gc_mark();
00213 }


Member Data Documentation

srp< ::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::first_sp [private]

The first sequencepoint of the currently processed function.

Definition at line 327 of file pi_pi2ge_pi.g.hh.

Referenced by first_sp_get(), and first_sp_set().

srp< ::lestes::backend_v2::intercode::ge_sp > lestes::md::instructions::pi_pi2ge_pi::last_sp [private]

The last sequencepoint of the currently processed function.

Definition at line 329 of file pi_pi2ge_pi.g.hh.

Referenced by last_sp_get(), and last_sp_set().

srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_edi [private]

An operand that hold edi register that should be pushed to the stack before any use of edi within the currently processed function.

Definition at line 331 of file pi_pi2ge_pi.g.hh.

Referenced by preserved_reg_edi_get(), preserved_reg_edi_set(), and visit_pi_sp().

srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_esi [private]

An operand that hold esi register that should be pushed to the stack before any use of esi within the currently processed function.

Definition at line 333 of file pi_pi2ge_pi.g.hh.

Referenced by preserved_reg_esi_get(), preserved_reg_esi_set(), and visit_pi_sp().

srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::md::instructions::pi_pi2ge_pi::preserved_reg_ebx [private]

An operand that hold ebx register that should be pushed to the stack before any use of ebx within the currently processed function.

Definition at line 335 of file pi_pi2ge_pi.g.hh.

Referenced by preserved_reg_ebx_get(), preserved_reg_ebx_set(), and visit_pi_sp().

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

Reimplemented from lestes::md::instructions::pi_pi2ge_pi_base.

Definition at line 336 of file pi_pi2ge_pi.g.hh.

Referenced by reflection_get().


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