LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
target::ia32::Cpu Class Reference

Describes IA-32's registers. More...

#include <cpu.hh>

Inheritance diagram for target::ia32::Cpu:
Collaboration diagram for target::ia32::Cpu:

Public Member Functions

virtual size_t word_size_get () const override
 Word size.
virtual const temp::Tempfp_reg () const override
 Frame pointer.
virtual const temp::Tempsp_reg () const
 Stack pointer.
virtual const temp::Tempresult_reg () const override
 Result register.
std::ostream & dump (std::ostream &ostr) const
 Describing a CPU.
Ctor & dtor.
 Cpu ()
 Construct a Cpu (default).
Descriptors of this architecture.
virtual size_t nb_regs () const
 The number of registers.
virtual const temp::TempMaptempmap_get () const
 Mapping from tc pseudos to hard registers.
virtual const
temp::temp_list_type
argument_regs () const
 Arguments-dedicated registers.
virtual const temp::temp_set_typecaller_save_regs () const
 Caller save registers.
virtual const temp::temp_set_typecallee_save_regs () const
 Callee save registers.
virtual const temp::temp_set_typespecial_regs () const
 Special registers (e.g., $fp, $sp, $zero etc.).
virtual temp::temp_set_type registers_get () const
 The whole register set.

Protected Member Functions

Register registers.
virtual void argument_reg (const std::string &name)
 Argument dedicated register.
virtual void caller_save_reg (const std::string &name)
 Caller save register.
virtual void callee_save_reg (const std::string &name)
 Callee save register.
virtual void special_reg (const temp::Temp &t)
 Special registers, unavailable for register allocaction.

Protected Attributes

Register classes.
temp::temp_set_type callee_save_registers_
 Callee save registers.
temp::temp_set_type caller_save_registers_
 Caller save registers.
temp::temp_list_type argument_registers_
 Argument registers.
temp::temp_set_type special_registers_
 Remaining registers.
std::unique_ptr< temp::TempMaptempmap_
 Mapping from pseudos to hard registers.

Detailed Description

Describes IA-32's registers.

Constructor & Destructor Documentation

target::ia32::Cpu::Cpu ( )

Construct a Cpu (default).

Reimplemented from target::Cpu.

References target::Cpu::caller_save_reg(), fp_reg(), result_reg(), sp_reg(), and target::Cpu::special_reg().

Member Function Documentation

void target::Cpu::argument_reg ( const std::string &  name)
protectedvirtualinherited

Argument dedicated register.

References target::Cpu::argument_registers_.

Referenced by target::mips::Cpu::Cpu().

const temp::temp_list_type & target::Cpu::argument_regs ( ) const
virtualinherited

Arguments-dedicated registers.

References target::Cpu::argument_registers_.

void target::Cpu::callee_save_reg ( const std::string &  name)
protectedvirtualinherited

Callee save register.

References target::Cpu::callee_save_registers_.

Referenced by target::mips::Cpu::Cpu().

const temp::temp_set_type & target::Cpu::callee_save_regs ( ) const
virtualinherited

Callee save registers.

References target::Cpu::callee_save_registers_.

void target::Cpu::caller_save_reg ( const std::string &  name)
protectedvirtualinherited

Caller save register.

References target::Cpu::caller_save_registers_.

Referenced by Cpu(), and target::mips::Cpu::Cpu().

const temp::temp_set_type & target::Cpu::caller_save_regs ( ) const
virtualinherited

Caller save registers.

References target::Cpu::caller_save_registers_.

const temp::Temp & target::ia32::Cpu::fp_reg ( ) const
overridevirtual

Frame pointer.

Implements target::Cpu.

Referenced by Cpu().

size_t target::Cpu::nb_regs ( ) const
virtualinherited
temp::temp_set_type target::Cpu::registers_get ( ) const
virtualinherited
const temp::Temp & target::ia32::Cpu::result_reg ( ) const
overridevirtual

Result register.

Implements target::Cpu.

Referenced by Cpu().

const temp::Temp & target::ia32::Cpu::sp_reg ( ) const
virtual

Stack pointer.

Referenced by Cpu().

void target::Cpu::special_reg ( const temp::Temp t)
protectedvirtualinherited

Special registers, unavailable for register allocaction.

References target::Cpu::special_registers_.

Referenced by Cpu(), and target::mips::Cpu::Cpu().

const temp::temp_set_type & target::Cpu::special_regs ( ) const
virtualinherited

Special registers (e.g., $fp, $sp, $zero etc.).

References target::Cpu::special_registers_.

const temp::TempMap & target::Cpu::tempmap_get ( ) const
virtualinherited

Mapping from tc pseudos to hard registers.

References target::Cpu::tempmap_.

size_t target::ia32::Cpu::word_size_get ( ) const
overridevirtual

Word size.

Implements target::Cpu.

Member Data Documentation

temp::temp_list_type target::Cpu::argument_registers_
protectedinherited
temp::temp_set_type target::Cpu::callee_save_registers_
protectedinherited
temp::temp_set_type target::Cpu::caller_save_registers_
protectedinherited
temp::temp_set_type target::Cpu::special_registers_
protectedinherited
std::unique_ptr<temp::TempMap> target::Cpu::tempmap_
protectedinherited

Mapping from pseudos to hard registers.

Referenced by target::mips::Cpu::Cpu(), target::Cpu::dump(), and target::Cpu::tempmap_get().


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