diff --git a/include/llvm/Target/MRegisterInfo.h b/include/llvm/Target/MRegisterInfo.h index a28f2c31890..8ec2dde297d 100644 --- a/include/llvm/Target/MRegisterInfo.h +++ b/include/llvm/Target/MRegisterInfo.h @@ -33,10 +33,10 @@ class MachineInstr; /// Registers that this does not apply to simply should set this to null. /// struct MRegisterDesc { - const char *Name; // Assembly language name for the register - const unsigned *AliasSet; // Register Alias Set, described above - unsigned Flags; // Flags identifying register properties (below) - unsigned TSFlags; // Target Specific Flags + const char *Name; // Assembly language name for the register + const unsigned *AliasSet; // Register Alias Set, described above + unsigned char SpillSize; // Size of this register in bytes + unsigned char SpillAlignment; // Alignment of stack slot for this reg }; class TargetRegisterClass { @@ -194,6 +194,18 @@ public: return get(RegNo).Name; } + /// getSpillSize - Return the size required of a stack slot used to spill + /// register into. + unsigned getSpillSize(unsigned RegNo) const { + return get(RegNo).SpillSize; + } + + /// getSpillAlignment - Return the alignment required by a stack slot used to + /// spill register into. + unsigned getSpillAlignment(unsigned RegNo) const { + return get(RegNo).SpillAlignment; + } + /// getNumRegs - Return the number of registers this target has /// (useful for sizing arrays holding per register information) unsigned getNumRegs() const {