LRDE Tiger Compiler
1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
|
Describes IA-32's registers. More...
#include <cpu.hh>
Public Member Functions | |
virtual size_t | word_size_get () const override |
Word size. | |
virtual const temp::Temp & | fp_reg () const override |
Frame pointer. | |
virtual const temp::Temp & | sp_reg () const |
Stack pointer. | |
virtual const temp::Temp & | result_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::TempMap & | tempmap_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_type & | caller_save_regs () const |
Caller save registers. | |
virtual const temp::temp_set_type & | callee_save_regs () const |
Callee save registers. | |
virtual const temp::temp_set_type & | special_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::TempMap > | tempmap_ |
Mapping from pseudos to hard registers. |
Describes IA-32's registers.
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().
|
protectedvirtualinherited |
Argument dedicated register.
References target::Cpu::argument_registers_.
Referenced by target::mips::Cpu::Cpu().
|
virtualinherited |
Arguments-dedicated registers.
References target::Cpu::argument_registers_.
|
protectedvirtualinherited |
Callee save register.
References target::Cpu::callee_save_registers_.
Referenced by target::mips::Cpu::Cpu().
|
virtualinherited |
Callee save registers.
References target::Cpu::callee_save_registers_.
|
protectedvirtualinherited |
Caller save register.
References target::Cpu::caller_save_registers_.
Referenced by Cpu(), and target::mips::Cpu::Cpu().
|
virtualinherited |
Caller save registers.
References target::Cpu::caller_save_registers_.
|
inherited |
Describing a CPU.
References target::Cpu::argument_registers_, target::Cpu::callee_save_registers_, target::Cpu::caller_save_registers_, misc::decendl(), misc::incendl(), target::Cpu::nb_regs(), REGS_PRINT, target::Cpu::special_registers_, and target::Cpu::tempmap_.
Referenced by target::operator<<().
|
overridevirtual |
|
virtualinherited |
The number of registers.
References target::Cpu::argument_registers_, target::Cpu::callee_save_registers_, target::Cpu::caller_save_registers_, and target::Cpu::special_registers_.
Referenced by target::Cpu::dump().
|
virtualinherited |
The whole register set.
References target::Cpu::argument_registers_, target::Cpu::callee_save_registers_, target::Cpu::caller_save_registers_, and target::Cpu::special_registers_.
|
overridevirtual |
|
virtual |
Stack pointer.
Referenced by Cpu().
|
protectedvirtualinherited |
Special registers, unavailable for register allocaction.
References target::Cpu::special_registers_.
Referenced by Cpu(), and target::mips::Cpu::Cpu().
|
virtualinherited |
Special registers (e.g., $fp, $sp, $zero etc.).
References target::Cpu::special_registers_.
|
virtualinherited |
Mapping from tc pseudos to hard registers.
References target::Cpu::tempmap_.
|
overridevirtual |
Word size.
Implements target::Cpu.
|
protectedinherited |
Argument registers.
Referenced by target::Cpu::argument_reg(), target::Cpu::argument_regs(), target::Cpu::dump(), target::Cpu::nb_regs(), and target::Cpu::registers_get().
|
protectedinherited |
Callee save registers.
Referenced by target::Cpu::callee_save_reg(), target::Cpu::callee_save_regs(), target::Cpu::dump(), target::Cpu::nb_regs(), and target::Cpu::registers_get().
|
protectedinherited |
Caller save registers.
Referenced by target::Cpu::caller_save_reg(), target::Cpu::caller_save_regs(), target::Cpu::dump(), target::Cpu::nb_regs(), and target::Cpu::registers_get().
|
protectedinherited |
Remaining registers.
Referenced by target::Cpu::dump(), target::Cpu::nb_regs(), target::Cpu::registers_get(), target::Cpu::special_reg(), and target::Cpu::special_regs().
|
protectedinherited |
Mapping from pseudos to hard registers.
Referenced by target::mips::Cpu::Cpu(), target::Cpu::dump(), and target::Cpu::tempmap_get().