| Index: src/IceTargetLoweringMIPS32.h
|
| diff --git a/src/IceTargetLoweringMIPS32.h b/src/IceTargetLoweringMIPS32.h
|
| index 3cd1687ea0ed1ae1458d946a7299702f00b398f2..a63ca353e7bb3301357238115814258b7c9ab0e9 100644
|
| --- a/src/IceTargetLoweringMIPS32.h
|
| +++ b/src/IceTargetLoweringMIPS32.h
|
| @@ -23,6 +23,9 @@
|
|
|
| namespace Ice {
|
|
|
| +// Extend enum RegClass with MIPS32-specific register classes (if any).
|
| +enum RegClassMIPS32 : uint8_t { RCMIPS32_NUM = RC_Target };
|
| +
|
| class TargetMIPS32 : public TargetLowering {
|
| TargetMIPS32() = delete;
|
| TargetMIPS32(const TargetMIPS32 &) = delete;
|
| @@ -42,8 +45,11 @@ public:
|
| IceString getRegName(SizeT RegNum, Type Ty) const override;
|
| llvm::SmallBitVector getRegisterSet(RegSetMask Include,
|
| RegSetMask Exclude) const override;
|
| - const llvm::SmallBitVector &getRegisterSetForType(Type Ty) const override {
|
| - return TypeToRegisterSet[Ty];
|
| + const llvm::SmallBitVector &
|
| + getRegistersForClass(const Variable *Var) const override {
|
| + RegClass RC = Var->getRegClass();
|
| + assert(RC < RC_Target);
|
| + return TypeToRegisterSet[RC];
|
| }
|
| const llvm::SmallBitVector &getAliasesForRegister(SizeT Reg) const override {
|
| return RegisterAliases[Reg];
|
| @@ -231,7 +237,7 @@ protected:
|
|
|
| bool UsesFramePointer = false;
|
| bool NeedsStackAlignment = false;
|
| - static llvm::SmallBitVector TypeToRegisterSet[IceType_NUM];
|
| + static llvm::SmallBitVector TypeToRegisterSet[RCMIPS32_NUM];
|
| static llvm::SmallBitVector RegisterAliases[RegMIPS32::Reg_NUM];
|
| static llvm::SmallBitVector ScratchRegs;
|
| llvm::SmallBitVector RegsUsed;
|
|
|