Chromium Code Reviews| Index: src/IceRegistersARM32.h |
| diff --git a/src/IceRegistersARM32.h b/src/IceRegistersARM32.h |
| index 31323c250b9d725410133ec4e9094ba2d8512233..3136b38ebdd6a0094002a5e5b3a829ee64bd645c 100644 |
| --- a/src/IceRegistersARM32.h |
| +++ b/src/IceRegistersARM32.h |
| @@ -146,12 +146,39 @@ public: |
| #undef X |
| }; |
| + enum RegClass { |
|
Jim Stichnoth
2016/01/13 16:24:54
FWIW, there is already Ice::RegClass defined in Ic
Karl
2016/01/14 18:27:19
Changed to use TypeToRegisterSet vectors for this
|
| + RegClass_GP, |
| + RegClass_GPPair, |
| + RegClass_S, |
| + RegClass_D, |
| + RegClass_Q, |
| + RegClass_Other, |
| + // Defines the number of RegClass'es |
| + Num_RegClasses |
|
Jim Stichnoth
2016/01/13 16:24:54
Usually this dummy value is named something like R
Karl
2016/01/14 18:27:19
Done.
|
| + }; |
| + |
| static inline void assertRegisterDefined(int32_t RegNum) { |
| (void)RegNum; |
| assert(RegNum >= 0); |
| assert(RegNum < Reg_NUM); |
| } |
| + static RegClass getRegClass(int32_t RegNum) { |
|
Jim Stichnoth
2016/01/13 16:24:54
I'm not sure why some of these functions are "stat
Karl
2016/01/14 18:27:19
The inline's are removed. I left removing class Re
|
| + assert(RegNum >= 0); |
| + assert(RegNum < Reg_NUM); |
| + if (Table[RegNum].IsGPR) |
| + return RegClass_GP; |
| + if (Table[RegNum].IsI64Pair) |
| + return RegClass_GPPair; |
| + if (Table[RegNum].IsFP32) |
| + return RegClass_S; |
| + if (Table[RegNum].IsFP64) |
| + return RegClass_D; |
| + if (Table[RegNum].IsVec128) |
| + return RegClass_Q; |
| + return RegClass_Other; |
| + } |
| + |
| static inline bool isGPRegister(int32_t RegNum) { |
| assertRegisterDefined(RegNum); |
| return Table[RegNum].IsGPR; |