C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Register Class Reference

#include <register.h>

List of all members.

Public Member Functions

 Register (Reg_type type=reg_unknown)
 Register (unsigned int n, Reg_type rt)
 Register (const Register &r)
bool isValid () const
unsigned int num () const
void num (unsigned int n)
Reg_type type () const
void type (Reg_type t)
Register & makeInvalid ()
Register & makeGPR ()
Register & makeFPR ()
Register & makeStackPtr ()
Register & makeFramePtr ()
void setType (typeNode *the_type)
Register & operator= (const Register &rightR)
Register & operator= (unsigned int val)
bool operator== (const Register &rightR) const
bool operator!= (const Register &rightR) const
bool operator< (const Register &rightR) const
string to_string (bool wantPrefixAdd=true, bool wantPrefixRemove=false) const

Static Public Member Functions

Register getRegSp ()
Register getRegFp ()
Register getRegRetValFixed ()
Register getRegRetValFloat ()
bool getRegRetVal (typeNode *the_type, Register &reg)

Private Attributes

unsigned int _num
Reg_type _type

Friends

class LirInst


Constructor & Destructor Documentation

Register::Register (  Reg_type    type = reg_unknown )  [inline]
 

Definition at line 79 of file register.h.

References type().

Register::Register (  unsigned int    n,
Reg_type    rt
)  [inline]
 

Definition at line 86 of file register.h.

Register::Register (  const Register &    r )  [inline]
 

Definition at line 93 of file register.h.


Member Function Documentation

Register Register::getRegFp (    )  [static]
 

Definition at line 118 of file register.cc.

References CBZ::ArchInfo, and arch_info::get_reg_fp().

Referenced by briggs_reg_alloc::genSpillCode(), lir_gen_walker::load_stack_value(), lir_gen_walker::load_stack_var(), briggs_reg_alloc::loadSymReg(), and lir_gen_walker::store_stack().

bool Register::getRegRetVal (  typeNode *    the_type,
Register &    reg
)  [static]
 

Definition at line 149 of file register.cc.

References CBZFAIL, getRegRetValFixed(), getRegRetValFloat(), typeNode::is_float(), typeNode::is_integer(), typeNode::is_pointer(), typeNode::is_void(), and Node::typ().

Referenced by lir_gen_walker::gen_call_assignment(), and lir_gen_walker::gen_local_decl().

Register Register::getRegRetValFixed (    )  [static]
 

Definition at line 125 of file register.cc.

References CBZ::ArchInfo, and arch_info::get_reg_retval_fixed().

Referenced by asm_gen_walker::doCallerSave(), and getRegRetVal().

Register Register::getRegRetValFloat (    )  [static]
 

Definition at line 137 of file register.cc.

References CBZ::ArchInfo, and arch_info::get_reg_retval_float().

Referenced by asm_gen_walker::doCallerSave(), and getRegRetVal().

Register Register::getRegSp (    )  [static]
 

Definition at line 111 of file register.cc.

References CBZ::ArchInfo, and arch_info::get_reg_sp().

Referenced by lir_gen_walker::gen_call().

bool Register::isValid (    )  const [inline]
 

Definition at line 100 of file register.h.

References reg_unknown.

Referenced by LirInst::get_dest(), LirInst::has_dest(), and briggs_reg_alloc::makeWebs().

Register& Register::makeFPR (    )  [inline]
 

Definition at line 132 of file register.h.

References reg_fpr.

Referenced by setType().

Register& Register::makeFramePtr (    )  [inline]
 

Definition at line 143 of file register.h.

References reg_frame_ptr.

Register& Register::makeGPR (    )  [inline]
 

Definition at line 127 of file register.h.

References reg_gpr.

Referenced by LIR::BitwiseNOT(), LIR::GetEffectiveAddress(), LIR::GetGlobalAddress(), and setType().

Register& Register::makeInvalid (    )  [inline]
 

Definition at line 122 of file register.h.

References reg_unknown.

Register& Register::makeStackPtr (    )  [inline]
 

Definition at line 137 of file register.h.

References reg_stack_ptr.

void Register::num (  unsigned int    n )  [inline]
 

Definition at line 108 of file register.h.

unsigned int Register::num (    )  const [inline]
 

Definition at line 104 of file register.h.

Referenced by briggs_reg_alloc::coalesceRegisters(), lir_flow_walker::computeRegisterLiveness(), briggs_reg_alloc::computeSpillCosts(), asm_gen_walker::doCalleeSave(), asm_gen_walker::doCallerSave(), briggs_reg_alloc::genSpillCode(), arch_info::get_reg_name(), arch_info::get_register(), dummy_reg_alloc::get_rreg(), dummy_reg_alloc::get_vreg(), briggs_reg_alloc::interfere(), dummy_reg_alloc::is_real_reg(), briggs_reg_alloc::isSymReg(), briggs_reg_alloc::liveAt(), briggs_reg_alloc::makeDuChains(), briggs_reg_alloc::makeWebs(), and briggs_reg_alloc::nonStore().

bool Register::operator!= (  const Register &    rightR )  const [inline]
 

Definition at line 175 of file register.h.

References _num, and _type.

bool Register::operator< (  const Register &    rightR )  const [inline]
 

Definition at line 181 of file register.h.

References _num.

Register& Register::operator= (  unsigned int    val )  [inline]
 

Definition at line 160 of file register.h.

Register& Register::operator= (  const Register &    rightR )  [inline]
 

Definition at line 154 of file register.h.

References _num, and _type.

bool Register::operator== (  const Register &    rightR )  const [inline]
 

Definition at line 167 of file register.h.

References _num, and _type.

void Register::setType (  typeNode *    the_type ) 
 

Definition at line 42 of file register.cc.

References CBZFAIL, typeNode::is_char(), typeNode::is_float(), typeNode::is_int(), typeNode::is_pointer(), makeFPR(), makeGPR(), and Node::typ().

Referenced by storage_alloc::assign_register(), LIR::ConvertType(), LIR::Load(), LIR::LoadImmediate(), LIR::LoadStatic(), LIR::make_simple(), and LIR::Neg().

string Register::to_string (  bool    wantPrefixAdd = true,
bool    wantPrefixRemove = false
)  const
 

Definition at line 56 of file register.cc.

References CBZ::ArchInfo, reg_fpr, reg_frame_ptr, reg_gpr, reg_stack_ptr, and cbz_util::string_format().

Referenced by briggs_reg_alloc::buildAdjMatrix(), asm_gen_walker::createTempForRegSave(), LIR::DeclareLocal(), dummy_reg_alloc::fix_allocated_virtual(), arch_info::make_template_replacements(), reg_or_const::to_string(), and LirInst::to_string().

void Register::type (  Reg_type    t )  [inline]
 

Definition at line 116 of file register.h.

Reg_type Register::type (    )  const [inline]
 

Definition at line 112 of file register.h.

References Reg_type.

Referenced by storage_alloc::assign_arg_register(), asm_gen_walker::createTempForRegSave(), arch_info::get_register(), dummy_reg_alloc::get_rreg(), Symbol::getLirVt(), and Register().


Friends And Related Function Documentation

friend class LirInst [friend]
 

Definition at line 66 of file register.h.


Member Data Documentation

unsigned int Register::_num [private]
 

Definition at line 71 of file register.h.

Referenced by operator!=(), operator<(), operator=(), and operator==().

Reg_type Register::_type [private]
 

Definition at line 74 of file register.h.

Referenced by operator!=(), operator=(), and operator==().


The documentation for this class was generated from the following files:

Generated on August 27, 2003
Back to the C-Breeze home page