OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64_LITHIUM_ARM64_H_ | 5 #ifndef V8_ARM64_LITHIUM_ARM64_H_ |
6 #define V8_ARM64_LITHIUM_ARM64_H_ | 6 #define V8_ARM64_LITHIUM_ARM64_H_ |
7 | 7 |
8 #include "src/hydrogen.h" | 8 #include "src/hydrogen.h" |
9 #include "src/lithium.h" | 9 #include "src/lithium.h" |
10 #include "src/lithium-allocator.h" | 10 #include "src/lithium-allocator.h" |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 V(StoreKeyedGeneric) \ | 158 V(StoreKeyedGeneric) \ |
159 V(StoreNamedField) \ | 159 V(StoreNamedField) \ |
160 V(StoreNamedGeneric) \ | 160 V(StoreNamedGeneric) \ |
161 V(StringAdd) \ | 161 V(StringAdd) \ |
162 V(StringCharCodeAt) \ | 162 V(StringCharCodeAt) \ |
163 V(StringCharFromCode) \ | 163 V(StringCharFromCode) \ |
164 V(StringCompareAndBranch) \ | 164 V(StringCompareAndBranch) \ |
165 V(SubI) \ | 165 V(SubI) \ |
166 V(SubS) \ | 166 V(SubS) \ |
167 V(TaggedToI) \ | 167 V(TaggedToI) \ |
| 168 V(TailCallThroughMegamorphicCache) \ |
168 V(ThisFunction) \ | 169 V(ThisFunction) \ |
169 V(ToFastProperties) \ | 170 V(ToFastProperties) \ |
170 V(TransitionElementsKind) \ | 171 V(TransitionElementsKind) \ |
171 V(TrapAllocationMemento) \ | 172 V(TrapAllocationMemento) \ |
172 V(TruncateDoubleToIntOrSmi) \ | 173 V(TruncateDoubleToIntOrSmi) \ |
173 V(Typeof) \ | 174 V(Typeof) \ |
174 V(TypeofIsAndBranch) \ | 175 V(TypeofIsAndBranch) \ |
175 V(Uint32ToDouble) \ | 176 V(Uint32ToDouble) \ |
176 V(UnknownOSRValue) \ | 177 V(UnknownOSRValue) \ |
177 V(WrapReceiver) | 178 V(WrapReceiver) |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 private: | 318 private: |
318 // Iterator support. | 319 // Iterator support. |
319 virtual int InputCount() FINAL OVERRIDE { return I; } | 320 virtual int InputCount() FINAL OVERRIDE { return I; } |
320 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } | 321 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } |
321 | 322 |
322 virtual int TempCount() FINAL OVERRIDE { return T; } | 323 virtual int TempCount() FINAL OVERRIDE { return T; } |
323 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } | 324 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } |
324 }; | 325 }; |
325 | 326 |
326 | 327 |
| 328 class LTailCallThroughMegamorphicCache FINAL |
| 329 : public LTemplateInstruction<0, 3, 0> { |
| 330 public: |
| 331 explicit LTailCallThroughMegamorphicCache(LOperand* context, |
| 332 LOperand* receiver, |
| 333 LOperand* name) { |
| 334 inputs_[0] = context; |
| 335 inputs_[1] = receiver; |
| 336 inputs_[2] = name; |
| 337 } |
| 338 |
| 339 LOperand* context() { return inputs_[0]; } |
| 340 LOperand* receiver() { return inputs_[1]; } |
| 341 LOperand* name() { return inputs_[2]; } |
| 342 |
| 343 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, |
| 344 "tail-call-through-megamorphic-cache") |
| 345 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) |
| 346 }; |
| 347 |
| 348 |
327 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { | 349 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { |
328 public: | 350 public: |
329 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 351 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { |
330 return false; | 352 return false; |
331 } | 353 } |
332 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") | 354 DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") |
333 }; | 355 }; |
334 | 356 |
335 | 357 |
336 template<int I, int T> | 358 template<int I, int T> |
(...skipping 2922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3259 | 3281 |
3260 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3282 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
3261 }; | 3283 }; |
3262 | 3284 |
3263 #undef DECLARE_HYDROGEN_ACCESSOR | 3285 #undef DECLARE_HYDROGEN_ACCESSOR |
3264 #undef DECLARE_CONCRETE_INSTRUCTION | 3286 #undef DECLARE_CONCRETE_INSTRUCTION |
3265 | 3287 |
3266 } } // namespace v8::internal | 3288 } } // namespace v8::internal |
3267 | 3289 |
3268 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3290 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
OLD | NEW |