Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Side by Side Diff: src/IceRegistersARM32.h

Issue 1571433004: Implements include/exclude register lists for translation. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Fix nits. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===- subzero/src/IceRegistersARM32.h - Register information ---*- C++ -*-===// 1 //===- subzero/src/IceRegistersARM32.h - Register information ---*- C++ -*-===//
2 // 2 //
3 // The Subzero Code Generator 3 // The Subzero Code Generator
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 /// 9 ///
10 /// \file 10 /// \file
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 { \ 139 { \
140 name, encode, cc_arg, scratch, preserved, stackptr, frameptr, isGPR, \ 140 name, encode, cc_arg, scratch, preserved, stackptr, frameptr, isGPR, \
141 isInt, isI64Pair, isFP32, isFP64, isVec128, \ 141 isInt, isI64Pair, isFP32, isFP64, isVec128, \
142 (SizeOf alias_init).size(), alias_init \ 142 (SizeOf alias_init).size(), alias_init \
143 } \ 143 } \
144 , 144 ,
145 REGARM32_TABLE 145 REGARM32_TABLE
146 #undef X 146 #undef X
147 }; 147 };
148 148
149 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
150 RegClass_GP,
151 RegClass_GPPair,
152 RegClass_S,
153 RegClass_D,
154 RegClass_Q,
155 RegClass_Other,
156 // Defines the number of RegClass'es
157 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.
158 };
159
149 static inline void assertRegisterDefined(int32_t RegNum) { 160 static inline void assertRegisterDefined(int32_t RegNum) {
150 (void)RegNum; 161 (void)RegNum;
151 assert(RegNum >= 0); 162 assert(RegNum >= 0);
152 assert(RegNum < Reg_NUM); 163 assert(RegNum < Reg_NUM);
153 } 164 }
154 165
166 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
167 assert(RegNum >= 0);
168 assert(RegNum < Reg_NUM);
169 if (Table[RegNum].IsGPR)
170 return RegClass_GP;
171 if (Table[RegNum].IsI64Pair)
172 return RegClass_GPPair;
173 if (Table[RegNum].IsFP32)
174 return RegClass_S;
175 if (Table[RegNum].IsFP64)
176 return RegClass_D;
177 if (Table[RegNum].IsVec128)
178 return RegClass_Q;
179 return RegClass_Other;
180 }
181
155 static inline bool isGPRegister(int32_t RegNum) { 182 static inline bool isGPRegister(int32_t RegNum) {
156 assertRegisterDefined(RegNum); 183 assertRegisterDefined(RegNum);
157 return Table[RegNum].IsGPR; 184 return Table[RegNum].IsGPR;
158 } 185 }
159 186
160 static constexpr SizeT getNumGPRegs() { 187 static constexpr SizeT getNumGPRegs() {
161 return 0 188 return 0
162 #define X(val, encode, name, cc_arg, scratch, preserved, stackptr, frameptr, \ 189 #define X(val, encode, name, cc_arg, scratch, preserved, stackptr, frameptr, \
163 isGPR, isInt, isI64Pair, isFP32, isFP64, isVec128, alias_init) \ 190 isGPR, isInt, isI64Pair, isFP32, isFP64, isVec128, alias_init) \
164 +(isGPR) 191 +(isGPR)
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 } 295 }
269 }; 296 };
270 297
271 // Extend enum RegClass with ARM32-specific register classes (if any). 298 // Extend enum RegClass with ARM32-specific register classes (if any).
272 enum RegClassARM32 : uint8_t { RCARM32_NUM = RC_Target }; 299 enum RegClassARM32 : uint8_t { RCARM32_NUM = RC_Target };
273 300
274 } // end of namespace ARM32 301 } // end of namespace ARM32
275 } // end of namespace Ice 302 } // end of namespace Ice
276 303
277 #endif // SUBZERO_SRC_ICEREGISTERSARM32_H 304 #endif // SUBZERO_SRC_ICEREGISTERSARM32_H
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698