Index: src/IceTargetLoweringARM32.h |
diff --git a/src/IceTargetLoweringARM32.h b/src/IceTargetLoweringARM32.h |
index 00f1483264d714d80b78d1c15eda0f1ad6a461af..282a625185211e00bcbbc590e99dfa694816707b 100644 |
--- a/src/IceTargetLoweringARM32.h |
+++ b/src/IceTargetLoweringARM32.h |
@@ -78,8 +78,9 @@ public: |
bool doBranchOpt(Inst *I, const CfgNode *NextNode) override; |
SizeT getNumRegisters() const override { return RegARM32::Reg_NUM; } |
- Variable *getPhysicalRegister(SizeT RegNum, Type Ty = IceType_void) override; |
- IceString getRegName(SizeT RegNum, Type Ty) const override; |
+ Variable *getPhysicalRegister(RegNumT RegNum, |
+ Type Ty = IceType_void) override; |
+ IceString getRegName(RegNumT RegNum, Type Ty) const override; |
llvm::SmallBitVector getRegisterSet(RegSetMask Include, |
RegSetMask Exclude) const override; |
const llvm::SmallBitVector & |
@@ -94,17 +95,18 @@ public: |
assert(RC < RC_Target); |
return TypeToRegisterSetUnfiltered[RC]; |
} |
- const llvm::SmallBitVector &getAliasesForRegister(SizeT Reg) const override { |
+ const llvm::SmallBitVector & |
+ getAliasesForRegister(RegNumT Reg) const override { |
return RegisterAliases[Reg]; |
} |
bool hasFramePointer() const override { return UsesFramePointer; } |
void setHasFramePointer() override { UsesFramePointer = true; } |
- SizeT getStackReg() const override { return RegARM32::Reg_sp; } |
- SizeT getFrameReg() const override { return RegARM32::Reg_fp; } |
- SizeT getFrameOrStackReg() const override { |
+ RegNumT getStackReg() const override { return RegARM32::Reg_sp; } |
+ RegNumT getFrameReg() const override { return RegARM32::Reg_fp; } |
+ RegNumT getFrameOrStackReg() const override { |
return UsesFramePointer ? getFrameReg() : getStackReg(); |
} |
- int32_t getReservedTmpReg() const { return RegARM32::Reg_ip; } |
+ RegNumT getReservedTmpReg() const { return RegARM32::Reg_ip; } |
size_t typeWidthInBytesOnStack(Type Ty) const override { |
// Round up to the next multiple of 4 bytes. In particular, i1, i8, and i16 |
@@ -164,10 +166,10 @@ public: |
}; |
using LegalMask = uint32_t; |
- Operand *legalizeUndef(Operand *From, int32_t RegNum = Variable::NoRegister); |
+ Operand *legalizeUndef(Operand *From, RegNumT RegNum = RegNumT::NoRegister); |
Operand *legalize(Operand *From, LegalMask Allowed = Legal_Default, |
- int32_t RegNum = Variable::NoRegister); |
- Variable *legalizeToReg(Operand *From, int32_t RegNum = Variable::NoRegister); |
+ RegNumT RegNum = RegNumT::NoRegister); |
+ Variable *legalizeToReg(Operand *From, RegNumT RegNum = RegNumT::NoRegister); |
OperandARM32ShAmtImm *shAmtImm(uint32_t ShAmtImm) const { |
assert(ShAmtImm < 32); |
@@ -260,17 +262,17 @@ protected: |
OperandARM32Mem *formMemoryOperand(Operand *Ptr, Type Ty); |
Variable64On32 *makeI64RegPair(); |
- Variable *makeReg(Type Ty, int32_t RegNum = Variable::NoRegister); |
+ Variable *makeReg(Type Ty, RegNumT RegNum = RegNumT::NoRegister); |
static Type stackSlotType(); |
- Variable *copyToReg(Operand *Src, int32_t RegNum = Variable::NoRegister); |
+ Variable *copyToReg(Operand *Src, RegNumT RegNum = RegNumT::NoRegister); |
void alignRegisterPow2(Variable *Reg, uint32_t Align, |
- int32_t TmpRegNum = Variable::NoRegister); |
+ RegNumT TmpRegNum = RegNumT::NoRegister); |
/// Returns a vector in a register with the given constant entries. |
- Variable *makeVectorOfZeros(Type Ty, int32_t RegNum = Variable::NoRegister); |
+ Variable *makeVectorOfZeros(Type Ty, RegNumT RegNum = RegNumT::NoRegister); |
void |
- makeRandomRegisterPermutation(llvm::SmallVectorImpl<int32_t> &Permutation, |
+ makeRandomRegisterPermutation(llvm::SmallVectorImpl<RegNumT> &Permutation, |
const llvm::SmallBitVector &ExcludeRegisters, |
uint64_t Salt) const override; |
@@ -993,7 +995,7 @@ protected: |
private: |
/// Creates a new Base register centered around [Base, +/- Offset]. |
Variable *newBaseRegister(Variable *Base, int32_t Offset, |
- int32_t ScratchRegNum); |
+ RegNumT ScratchRegNum); |
/// Creates a new, legal OperandARM32Mem for accessing Base + Offset. |
/// The returned mem operand is a legal operand for accessing memory that is |
@@ -1060,11 +1062,11 @@ protected: |
/// type, and false otherwise. If it returns true, Reg is set to the |
/// appropriate register number. Note that, when Ty == IceType_i64, Reg will |
/// be an I64 register pair. |
- bool argInGPR(Type Ty, int32_t *Reg); |
+ bool argInGPR(Type Ty, RegNumT *Reg); |
/// argInVFP is to floating-point/vector types what argInGPR is for integer |
/// types. |
- bool argInVFP(Type Ty, int32_t *Reg); |
+ bool argInVFP(Type Ty, RegNumT *Reg); |
private: |
void discardUnavailableGPRsAndTheirAliases(CfgVector<SizeT> *Regs); |