OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_IC_STATE_H_ | 5 #ifndef V8_IC_STATE_H_ |
6 #define V8_IC_STATE_H_ | 6 #define V8_IC_STATE_H_ |
7 | 7 |
8 #include "src/macro-assembler.h" | 8 #include "src/macro-assembler.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 std::ostream& operator<<(std::ostream& os, const BinaryOpICState& s); | 167 std::ostream& operator<<(std::ostream& os, const BinaryOpICState& s); |
168 | 168 |
169 | 169 |
170 class CompareICState { | 170 class CompareICState { |
171 public: | 171 public: |
172 // The type/state lattice is defined by the following inequations: | 172 // The type/state lattice is defined by the following inequations: |
173 // UNINITIALIZED < ... | 173 // UNINITIALIZED < ... |
174 // ... < GENERIC | 174 // ... < GENERIC |
175 // SMI < NUMBER | 175 // SMI < NUMBER |
176 // INTERNALIZED_STRING < STRING | 176 // INTERNALIZED_STRING < STRING |
| 177 // INTERNALIZED_STRING < UNIQUE_NAME |
177 // KNOWN_OBJECT < OBJECT | 178 // KNOWN_OBJECT < OBJECT |
178 enum State { | 179 enum State { |
179 UNINITIALIZED, | 180 UNINITIALIZED, |
| 181 BOOLEAN, |
180 SMI, | 182 SMI, |
181 NUMBER, | 183 NUMBER, |
182 STRING, | 184 STRING, |
183 INTERNALIZED_STRING, | 185 INTERNALIZED_STRING, |
184 UNIQUE_NAME, // Symbol or InternalizedString | 186 UNIQUE_NAME, // Symbol or InternalizedString |
185 OBJECT, // JSObject | 187 OBJECT, // JSObject |
186 KNOWN_OBJECT, // JSObject with specific map (faster check) | 188 KNOWN_OBJECT, // JSObject with specific map (faster check) |
187 GENERIC | 189 GENERIC |
188 }; | 190 }; |
189 | 191 |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 static const ExtraICState kStrictModeState = STRICT | 265 static const ExtraICState kStrictModeState = STRICT |
264 << LanguageModeState::kShift; | 266 << LanguageModeState::kShift; |
265 | 267 |
266 private: | 268 private: |
267 const ExtraICState state_; | 269 const ExtraICState state_; |
268 }; | 270 }; |
269 } | 271 } |
270 } | 272 } |
271 | 273 |
272 #endif // V8_IC_STATE_H_ | 274 #endif // V8_IC_STATE_H_ |
OLD | NEW |