lestes::md::registers::tm_register_base Class Reference

Class represents target-machine register. More...

#include <tm_register_base.g.hh>

Inheritance diagram for lestes::md::registers::tm_register_base:

Inheritance graph
[legend]
List of all members.

Public Types

typedef ulint id_type

Public Member Functions

tm_register_base::id_type id_get () const
 The method id_get returns the value of the field tm_register_base::id.
void id_set (tm_register_base::id_type)
 The method id_set sets the field tm_register_base::id to the given value.
ulint bitwidth_get () const
 The method bitwidth_get returns the value of the field tm_register_base::bitwidth.
void bitwidth_set (ulint)
 The method bitwidth_set sets the field tm_register_base::bitwidth to the given value.
ptr< ::lestes::std::set<
::lestes::md::types::tm_data_type_base::id_type > > 
compatible_types_get () const
 The method compatible_types_get returns the value of the field tm_register_base::compatible_types.
void compatible_types_set (const ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > &)
 The method compatible_types_set sets the field tm_register_base::compatible_types to the given value.
ptr< ::lestes::std::set< tm_register_base::id_type > > aliases_get () const
 The method aliases_get returns the value of the field tm_register_base::aliases.
void aliases_set (const ptr< ::lestes::std::set< tm_register_base::id_type > > &)
 The method aliases_set sets the field tm_register_base::aliases to the given value.
ptr< ::lestes::std::set< ulint > > move_templates_get () const
 The method move_templates_get returns the value of the field tm_register_base::move_templates.
void move_templates_set (const ptr< ::lestes::std::set< ulint > > &)
 The method move_templates_set sets the field tm_register_base::move_templates to the given value.
lstring asm_output_get () const
 The method asm_output_get returns the value of the field tm_register_base::asm_output.
void asm_output_set (lstring)
 The method asm_output_set sets the field tm_register_base::asm_output to the given value.
ulint flags_get () const
 The method flags_get returns the value of the field tm_register_base::flags.
void flags_set (ulint)
 The method flags_set sets the field tm_register_base::flags to the given value.
bool is_unspillable ()
 Tells whether the current register can't be spilled.
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< tm_register_basecreate (tm_register_base::id_type a__tm_register_base__id, ulint a__tm_register_base__bitwidth, ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types, ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases, ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates, lstring a__tm_register_base__asm_output, ulint a__tm_register_base__flags)
 First generated factory method for class tm_register_base.
static ptr< tm_register_basecreate (tm_register_base::id_type a__tm_register_base__id, ulint a__tm_register_base__bitwidth, ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types, ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases, ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates, lstring a__tm_register_base__asm_output)
 Second generated factory method for class tm_register_base.

Protected Member Functions

 tm_register_base (tm_register_base::id_type a__tm_register_base__id, ulint a__tm_register_base__bitwidth, ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > a__tm_register_base__compatible_types, ptr< ::lestes::std::set< tm_register_base::id_type > > a__tm_register_base__aliases, ptr< ::lestes::std::set< ulint > > a__tm_register_base__move_templates, lstring a__tm_register_base__asm_output, ulint a__tm_register_base__flags)
 Generated constructor for class tm_register_base.
virtual void gc_mark ()
 Marking routine for class tm_register_base.

Private Attributes

tm_register_base::id_type id
 The register's id.
ulint bitwidth
 Bitwidth of the register.
srp< ::lestes::std::set<
::lestes::md::types::tm_data_type_base::id_type > > 
compatible_types
 List of datatypes that can be stored in the register.
srp< ::lestes::std::set< tm_register_base::id_type > > aliases
 List of register ids that represents the same physical register as this one does.
srp< ::lestes::std::set< ulint > > move_templates
 List of instructions that can move value between register->register, mem->register, register->mem. Needed for spillcode generation.
lstring asm_output
 Asm label for the register.
ulint flags
 The register's flags.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Class represents target-machine register.

Note: A concrete derived class is target dependent and it is placed in /target/machine/${TARGET_CPU}/lestes/md/registers/ directory.


Member Typedef Documentation

typedef ulint lestes::md::registers::tm_register_base::id_type


Constructor & Destructor Documentation

lestes::md::registers::tm_register_base::tm_register_base ( tm_register_base::id_type  a__tm_register_base__id,
ulint  a__tm_register_base__bitwidth,
ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > >  a__tm_register_base__compatible_types,
ptr< ::lestes::std::set< tm_register_base::id_type > >  a__tm_register_base__aliases,
ptr< ::lestes::std::set< ulint > >  a__tm_register_base__move_templates,
lstring  a__tm_register_base__asm_output,
ulint  a__tm_register_base__flags 
) [protected]

Generated constructor for class tm_register_base.

Generated constructor for class tm_register_base.

Author:
lsg


Member Function Documentation

tm_register_base::id_type lestes::md::registers::tm_register_base::id_get (  )  const

The method id_get returns the value of the field tm_register_base::id.

Returns:
The value of tm_register_base::id.
Author:
lsg

void lestes::md::registers::tm_register_base::id_set ( tm_register_base::id_type  x  ) 

The method id_set sets the field tm_register_base::id to the given value.

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

ulint lestes::md::registers::tm_register_base::bitwidth_get (  )  const

The method bitwidth_get returns the value of the field tm_register_base::bitwidth.

Returns:
The value of tm_register_base::bitwidth.
Author:
lsg

void lestes::md::registers::tm_register_base::bitwidth_set ( ulint  x  ) 

The method bitwidth_set sets the field tm_register_base::bitwidth to the given value.

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

ptr<::lestes::std::set<::lestes::md::types::tm_data_type_base::id_type > > lestes::md::registers::tm_register_base::compatible_types_get (  )  const

The method compatible_types_get returns the value of the field tm_register_base::compatible_types.

Returns:
The value of tm_register_base::compatible_types.
Author:
lsg

void lestes::md::registers::tm_register_base::compatible_types_set ( const ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > &  x  ) 

The method compatible_types_set sets the field tm_register_base::compatible_types to the given value.

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

ptr<::lestes::std::set< tm_register_base::id_type > > lestes::md::registers::tm_register_base::aliases_get (  )  const

The method aliases_get returns the value of the field tm_register_base::aliases.

Returns:
The value of tm_register_base::aliases.
Author:
lsg

void lestes::md::registers::tm_register_base::aliases_set ( const ptr< ::lestes::std::set< tm_register_base::id_type > > &  x  ) 

The method aliases_set sets the field tm_register_base::aliases to the given value.

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

ptr<::lestes::std::set< ulint > > lestes::md::registers::tm_register_base::move_templates_get (  )  const

The method move_templates_get returns the value of the field tm_register_base::move_templates.

Returns:
The value of tm_register_base::move_templates.
Author:
lsg

void lestes::md::registers::tm_register_base::move_templates_set ( const ptr< ::lestes::std::set< ulint > > &  x  ) 

The method move_templates_set sets the field tm_register_base::move_templates to the given value.

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

lstring lestes::md::registers::tm_register_base::asm_output_get (  )  const

The method asm_output_get returns the value of the field tm_register_base::asm_output.

Returns:
The value of tm_register_base::asm_output.
Author:
lsg

void lestes::md::registers::tm_register_base::asm_output_set ( lstring  x  ) 

The method asm_output_set sets the field tm_register_base::asm_output to the given value.

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

ulint lestes::md::registers::tm_register_base::flags_get (  )  const

The method flags_get returns the value of the field tm_register_base::flags.

Returns:
The value of tm_register_base::flags.
Author:
lsg

void lestes::md::registers::tm_register_base::flags_set ( ulint  x  ) 

The method flags_set sets the field tm_register_base::flags to the given value.

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

bool lestes::md::registers::tm_register_base::is_unspillable (  ) 

Tells whether the current register can't be spilled.

ptr< tm_register_base > lestes::md::registers::tm_register_base::create ( tm_register_base::id_type  a__tm_register_base__id,
ulint  a__tm_register_base__bitwidth,
ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > >  a__tm_register_base__compatible_types,
ptr< ::lestes::std::set< tm_register_base::id_type > >  a__tm_register_base__aliases,
ptr< ::lestes::std::set< ulint > >  a__tm_register_base__move_templates,
lstring  a__tm_register_base__asm_output,
ulint  a__tm_register_base__flags 
) [static]

First generated factory method for class tm_register_base.

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

Author:
lsg

ptr< tm_register_base > lestes::md::registers::tm_register_base::create ( tm_register_base::id_type  a__tm_register_base__id,
ulint  a__tm_register_base__bitwidth,
ptr< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > >  a__tm_register_base__compatible_types,
ptr< ::lestes::std::set< tm_register_base::id_type > >  a__tm_register_base__aliases,
ptr< ::lestes::std::set< ulint > >  a__tm_register_base__move_templates,
lstring  a__tm_register_base__asm_output 
) [static]

Second generated factory method for class tm_register_base.

This factory method for class tm_register_base uses initializers.

Author:
lsg

ptr< object::reflection_list > lestes::md::registers::tm_register_base::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::registers::tm_register.

ptr< object::field_list_list > lestes::md::registers::tm_register_base::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::registers::tm_register.

void lestes::md::registers::tm_register_base::gc_mark ( void   )  [protected, virtual]

Marking routine for class tm_register_base.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

Reimplemented in lestes::md::registers::tm_register.


Member Data Documentation

tm_register_base::id_type lestes::md::registers::tm_register_base::id [private]

The register's id.

ulint lestes::md::registers::tm_register_base::bitwidth [private]

Bitwidth of the register.

srp< ::lestes::std::set< ::lestes::md::types::tm_data_type_base::id_type > > lestes::md::registers::tm_register_base::compatible_types [private]

List of datatypes that can be stored in the register.

srp< ::lestes::std::set< tm_register_base::id_type > > lestes::md::registers::tm_register_base::aliases [private]

List of register ids that represents the same physical register as this one does.

e.g. ia-32 architecture has register ax and eax that represents the same physical register but each has different bitwidth. This is needed within register allocation because these aliases can't be allocated together at one time.

srp< ::lestes::std::set< ulint > > lestes::md::registers::tm_register_base::move_templates [private]

List of instructions that can move value between register->register, mem->register, register->mem. Needed for spillcode generation.

lstring lestes::md::registers::tm_register_base::asm_output [private]

Asm label for the register.

ulint lestes::md::registers::tm_register_base::flags [private]

The register's flags.

ptr< object::reflection_list > lestes::md::registers::tm_register_base::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Reimplemented in lestes::md::registers::tm_register.


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