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 308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 // Iterator support. | 319 // Iterator support. |
320 virtual int InputCount() FINAL OVERRIDE { return I; } | 320 virtual int InputCount() FINAL OVERRIDE { return I; } |
321 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } | 321 virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } |
322 | 322 |
323 virtual int TempCount() FINAL OVERRIDE { return T; } | 323 virtual int TempCount() FINAL OVERRIDE { return T; } |
324 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } | 324 virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } |
325 }; | 325 }; |
326 | 326 |
327 | 327 |
328 class LTailCallThroughMegamorphicCache FINAL | 328 class LTailCallThroughMegamorphicCache FINAL |
329 : public LTemplateInstruction<0, 3, 0> { | 329 : public LTemplateInstruction<0, 5, 0> { |
330 public: | 330 public: |
331 explicit LTailCallThroughMegamorphicCache(LOperand* context, | 331 LTailCallThroughMegamorphicCache(LOperand* context, LOperand* receiver, |
332 LOperand* receiver, | 332 LOperand* name, LOperand* slot, |
333 LOperand* name) { | 333 LOperand* vector) { |
334 inputs_[0] = context; | 334 inputs_[0] = context; |
335 inputs_[1] = receiver; | 335 inputs_[1] = receiver; |
336 inputs_[2] = name; | 336 inputs_[2] = name; |
| 337 inputs_[3] = slot; |
| 338 inputs_[4] = vector; |
337 } | 339 } |
338 | 340 |
339 LOperand* context() { return inputs_[0]; } | 341 LOperand* context() { return inputs_[0]; } |
340 LOperand* receiver() { return inputs_[1]; } | 342 LOperand* receiver() { return inputs_[1]; } |
341 LOperand* name() { return inputs_[2]; } | 343 LOperand* name() { return inputs_[2]; } |
| 344 LOperand* slot() { return inputs_[3]; } |
| 345 LOperand* vector() { return inputs_[4]; } |
342 | 346 |
343 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, | 347 DECLARE_CONCRETE_INSTRUCTION(TailCallThroughMegamorphicCache, |
344 "tail-call-through-megamorphic-cache") | 348 "tail-call-through-megamorphic-cache") |
345 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) | 349 DECLARE_HYDROGEN_ACCESSOR(TailCallThroughMegamorphicCache) |
346 }; | 350 }; |
347 | 351 |
348 | 352 |
349 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { | 353 class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { |
350 public: | 354 public: |
351 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 355 virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { |
(...skipping 1196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1548 : descriptor_(descriptor), | 1552 : descriptor_(descriptor), |
1549 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { | 1553 inputs_(descriptor.GetRegisterParameterCount() + 1, zone) { |
1550 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); | 1554 DCHECK(descriptor.GetRegisterParameterCount() + 1 == operands.length()); |
1551 inputs_.AddAll(operands, zone); | 1555 inputs_.AddAll(operands, zone); |
1552 } | 1556 } |
1553 | 1557 |
1554 LOperand* target() const { return inputs_[0]; } | 1558 LOperand* target() const { return inputs_[0]; } |
1555 | 1559 |
1556 CallInterfaceDescriptor descriptor() { return descriptor_; } | 1560 CallInterfaceDescriptor descriptor() { return descriptor_; } |
1557 | 1561 |
| 1562 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) |
| 1563 |
1558 private: | 1564 private: |
1559 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") | 1565 DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") |
1560 DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) | |
1561 | 1566 |
1562 virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 1567 virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
1563 | 1568 |
1564 int arity() const { return hydrogen()->argument_count() - 1; } | 1569 int arity() const { return hydrogen()->argument_count() - 1; } |
1565 | 1570 |
1566 CallInterfaceDescriptor descriptor_; | 1571 CallInterfaceDescriptor descriptor_; |
1567 ZoneList<LOperand*> inputs_; | 1572 ZoneList<LOperand*> inputs_; |
1568 | 1573 |
1569 // Iterator support. | 1574 // Iterator support. |
1570 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } | 1575 virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } |
(...skipping 1679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3250 | 3255 |
3251 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); | 3256 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); |
3252 }; | 3257 }; |
3253 | 3258 |
3254 #undef DECLARE_HYDROGEN_ACCESSOR | 3259 #undef DECLARE_HYDROGEN_ACCESSOR |
3255 #undef DECLARE_CONCRETE_INSTRUCTION | 3260 #undef DECLARE_CONCRETE_INSTRUCTION |
3256 | 3261 |
3257 } } // namespace v8::internal | 3262 } } // namespace v8::internal |
3258 | 3263 |
3259 #endif // V8_ARM64_LITHIUM_ARM64_H_ | 3264 #endif // V8_ARM64_LITHIUM_ARM64_H_ |
OLD | NEW |