OLD | NEW |
---|---|
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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 #include "src/interpreter/interpreter.h" | 5 #include "src/interpreter/interpreter.h" |
6 | 6 |
7 #include <fstream> | 7 #include <fstream> |
8 #include <memory> | 8 #include <memory> |
9 | 9 |
10 #include "src/ast/prettyprinter.h" | 10 #include "src/ast/prettyprinter.h" |
(...skipping 1608 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1619 | 1619 |
1620 // Call <callable> <receiver> <arg_count> <feedback_slot_id> | 1620 // Call <callable> <receiver> <arg_count> <feedback_slot_id> |
1621 // | 1621 // |
1622 // Call a JSfunction or Callable in |callable| with the |receiver| and | 1622 // Call a JSfunction or Callable in |callable| with the |receiver| and |
1623 // |arg_count| arguments in subsequent registers. Collect type feedback | 1623 // |arg_count| arguments in subsequent registers. Collect type feedback |
1624 // into |feedback_slot_id| | 1624 // into |feedback_slot_id| |
1625 void Interpreter::DoCall(InterpreterAssembler* assembler) { | 1625 void Interpreter::DoCall(InterpreterAssembler* assembler) { |
1626 DoJSCall(assembler, TailCallMode::kDisallow); | 1626 DoJSCall(assembler, TailCallMode::kDisallow); |
1627 } | 1627 } |
1628 | 1628 |
1629 // CallProperty <callable> <receiver> <arg_count> <feedback_slot_id> | |
1630 // | |
1631 // Call a JSfunction or Callable in |callable| with the |receiver| and | |
1632 // |arg_count| arguments in subsequent registers. Collect type feedback | |
1633 // into |feedback_slot_id|. The callable is known to be a named property of the | |
rmcilroy
2016/10/26 16:20:16
drop "named"
Leszek Swirski
2016/10/27 09:08:24
Done.
| |
1634 // receiver. | |
1635 void Interpreter::DoCallProperty(InterpreterAssembler* assembler) { | |
1636 // TODO(leszeks): Look into making the interpreter use the fact that the | |
1637 // receiver is non-null. | |
1638 DoJSCall(assembler, TailCallMode::kDisallow); | |
1639 } | |
1640 | |
1629 // TailCall <callable> <receiver> <arg_count> <feedback_slot_id> | 1641 // TailCall <callable> <receiver> <arg_count> <feedback_slot_id> |
1630 // | 1642 // |
1631 // Tail call a JSfunction or Callable in |callable| with the |receiver| and | 1643 // Tail call a JSfunction or Callable in |callable| with the |receiver| and |
1632 // |arg_count| arguments in subsequent registers. Collect type feedback | 1644 // |arg_count| arguments in subsequent registers. Collect type feedback |
1633 // into |feedback_slot_id| | 1645 // into |feedback_slot_id| |
1634 void Interpreter::DoTailCall(InterpreterAssembler* assembler) { | 1646 void Interpreter::DoTailCall(InterpreterAssembler* assembler) { |
1635 DoJSCall(assembler, TailCallMode::kAllow); | 1647 DoJSCall(assembler, TailCallMode::kAllow); |
1636 } | 1648 } |
1637 | 1649 |
1638 // CallRuntime <function_id> <first_arg> <arg_count> | 1650 // CallRuntime <function_id> <first_arg> <arg_count> |
(...skipping 1007 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2646 __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, | 2658 __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, |
2647 __ SmiTag(new_state)); | 2659 __ SmiTag(new_state)); |
2648 __ SetAccumulator(old_state); | 2660 __ SetAccumulator(old_state); |
2649 | 2661 |
2650 __ Dispatch(); | 2662 __ Dispatch(); |
2651 } | 2663 } |
2652 | 2664 |
2653 } // namespace interpreter | 2665 } // namespace interpreter |
2654 } // namespace internal | 2666 } // namespace internal |
2655 } // namespace v8 | 2667 } // namespace v8 |
OLD | NEW |