| Index: src/IceRegistersARM32.h
|
| diff --git a/src/IceRegistersARM32.h b/src/IceRegistersARM32.h
|
| index 94f45c137557cb8b03329330ccb0ae547ca1ea76..0afee3461396f9abe9901c0a2bddcd3b1c0f8880 100644
|
| --- a/src/IceRegistersARM32.h
|
| +++ b/src/IceRegistersARM32.h
|
| @@ -102,9 +102,13 @@ extern struct RegTableType {
|
| #undef NUM_ALIASES_BITS
|
| } RegTable[Reg_NUM];
|
|
|
| -static inline bool isGPRegister(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline void assertValidRegNum(RegNumT RegNum) {
|
| + (void)RegNum;
|
| + assert(RegNum != RegNumT::NoRegister);
|
| +}
|
| +
|
| +static inline bool isGPRegister(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].IsGPR;
|
| }
|
|
|
| @@ -118,9 +122,8 @@ static constexpr inline SizeT getNumGPRegs() {
|
| ;
|
| }
|
|
|
| -static inline GPRRegister getEncodedGPR(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline GPRRegister getEncodedGPR(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return GPRRegister(RegTable[RegNum].Encoding);
|
| }
|
|
|
| @@ -134,33 +137,28 @@ static constexpr inline SizeT getNumGPRs() {
|
| ;
|
| }
|
|
|
| -static inline bool isGPR(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline bool isGPR(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].IsGPR;
|
| }
|
|
|
| -static inline GPRRegister getI64PairFirstGPRNum(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline GPRRegister getI64PairFirstGPRNum(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return GPRRegister(RegTable[RegNum].Encoding);
|
| }
|
|
|
| -static inline GPRRegister getI64PairSecondGPRNum(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline GPRRegister getI64PairSecondGPRNum(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return GPRRegister(RegTable[RegNum].Encoding + 1);
|
| }
|
|
|
| -static inline bool isI64RegisterPair(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline bool isI64RegisterPair(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].IsI64Pair;
|
| }
|
|
|
| -static inline bool isEncodedSReg(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline bool isEncodedSReg(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].IsFP32;
|
| }
|
|
|
| @@ -174,15 +172,13 @@ static constexpr inline SizeT getNumSRegs() {
|
| ;
|
| }
|
|
|
| -static inline SRegister getEncodedSReg(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline SRegister getEncodedSReg(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return SRegister(RegTable[RegNum].Encoding);
|
| }
|
|
|
| -static inline bool isEncodedDReg(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline bool isEncodedDReg(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].IsFP64;
|
| }
|
|
|
| @@ -196,26 +192,23 @@ static constexpr inline SizeT getNumDRegs() {
|
| ;
|
| }
|
|
|
| -static inline DRegister getEncodedDReg(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline DRegister getEncodedDReg(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return DRegister(RegTable[RegNum].Encoding);
|
| }
|
|
|
| -static inline bool isEncodedQReg(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline bool isEncodedQReg(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].IsVec128;
|
| }
|
|
|
| -static inline QRegister getEncodedQReg(int32_t RegNum) {
|
| +static inline QRegister getEncodedQReg(RegNumT RegNum) {
|
| assert(isEncodedQReg(RegNum));
|
| return QRegister(RegTable[RegNum].Encoding);
|
| }
|
|
|
| -static inline IceString getRegName(int32_t RegNum) {
|
| - assert(RegNum >= 0);
|
| - assert(RegNum < Reg_NUM);
|
| +static inline IceString getRegName(RegNumT RegNum) {
|
| + RegNum.assertIsValid();
|
| return RegTable[RegNum].Name;
|
| }
|
|
|
|
|