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-assembler.h" | 5 #include "src/interpreter/interpreter-assembler.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <ostream> | 8 #include <ostream> |
9 | 9 |
10 #include "src/code-factory.h" | 10 #include "src/code-factory.h" |
(...skipping 832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
843 Node* function_table = ExternalConstant( | 843 Node* function_table = ExternalConstant( |
844 ExternalReference::runtime_function_table_address(isolate())); | 844 ExternalReference::runtime_function_table_address(isolate())); |
845 Node* function_offset = | 845 Node* function_offset = |
846 Int32Mul(function_id, Int32Constant(sizeof(Runtime::Function))); | 846 Int32Mul(function_id, Int32Constant(sizeof(Runtime::Function))); |
847 Node* function = | 847 Node* function = |
848 IntPtrAdd(function_table, ChangeUint32ToWord(function_offset)); | 848 IntPtrAdd(function_table, ChangeUint32ToWord(function_offset)); |
849 Node* function_entry = | 849 Node* function_entry = |
850 Load(MachineType::Pointer(), function, | 850 Load(MachineType::Pointer(), function, |
851 IntPtrConstant(offsetof(Runtime::Function, entry))); | 851 IntPtrConstant(offsetof(Runtime::Function, entry))); |
852 | 852 |
853 return CallStub(callable.descriptor(), code_target, context, arg_count, | 853 return CallStubR(callable.descriptor(), result_size, code_target, context, |
854 first_arg, function_entry, result_size); | 854 arg_count, first_arg, function_entry); |
855 } | 855 } |
856 | 856 |
857 void InterpreterAssembler::UpdateInterruptBudget(Node* weight) { | 857 void InterpreterAssembler::UpdateInterruptBudget(Node* weight) { |
858 // TODO(rmcilroy): It might be worthwhile to only update the budget for | 858 // TODO(rmcilroy): It might be worthwhile to only update the budget for |
859 // backwards branches. Those are distinguishable by the {JumpLoop} bytecode. | 859 // backwards branches. Those are distinguishable by the {JumpLoop} bytecode. |
860 | 860 |
861 Label ok(this), interrupt_check(this, Label::kDeferred), end(this); | 861 Label ok(this), interrupt_check(this, Label::kDeferred), end(this); |
862 Node* budget_offset = | 862 Node* budget_offset = |
863 IntPtrConstant(BytecodeArray::kInterruptBudgetOffset - kHeapObjectTag); | 863 IntPtrConstant(BytecodeArray::kInterruptBudgetOffset - kHeapObjectTag); |
864 | 864 |
(...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1306 Goto(&loop); | 1306 Goto(&loop); |
1307 } | 1307 } |
1308 Bind(&done_loop); | 1308 Bind(&done_loop); |
1309 | 1309 |
1310 return array; | 1310 return array; |
1311 } | 1311 } |
1312 | 1312 |
1313 } // namespace interpreter | 1313 } // namespace interpreter |
1314 } // namespace internal | 1314 } // namespace internal |
1315 } // namespace v8 | 1315 } // namespace v8 |
OLD | NEW |