| 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 449 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 460 BytecodeArray::kConstantPoolOffset); | 460 BytecodeArray::kConstantPoolOffset); |
| 461 return LoadFixedArrayElement(constant_pool, index); | 461 return LoadFixedArrayElement(constant_pool, index); |
| 462 } | 462 } |
| 463 | 463 |
| 464 Node* InterpreterAssembler::LoadAndUntagConstantPoolEntry(Node* index) { | 464 Node* InterpreterAssembler::LoadAndUntagConstantPoolEntry(Node* index) { |
| 465 return SmiUntag(LoadConstantPoolEntry(index)); | 465 return SmiUntag(LoadConstantPoolEntry(index)); |
| 466 } | 466 } |
| 467 | 467 |
| 468 Node* InterpreterAssembler::LoadTypeFeedbackVector() { | 468 Node* InterpreterAssembler::LoadTypeFeedbackVector() { |
| 469 Node* function = LoadRegister(Register::function_closure()); | 469 Node* function = LoadRegister(Register::function_closure()); |
| 470 Node* literals = LoadObjectField(function, JSFunction::kLiteralsOffset); | 470 Node* vector = LoadObjectField(function, JSFunction::kFeedbackVectorOffset); |
| 471 Node* vector = | |
| 472 LoadObjectField(literals, LiteralsArray::kFeedbackVectorOffset); | |
| 473 return vector; | 471 return vector; |
| 474 } | 472 } |
| 475 | 473 |
| 476 void InterpreterAssembler::CallPrologue() { | 474 void InterpreterAssembler::CallPrologue() { |
| 477 StoreRegister(SmiTag(BytecodeOffset()), Register::bytecode_offset()); | 475 StoreRegister(SmiTag(BytecodeOffset()), Register::bytecode_offset()); |
| 478 | 476 |
| 479 if (FLAG_debug_code && !disable_stack_check_across_call_) { | 477 if (FLAG_debug_code && !disable_stack_check_across_call_) { |
| 480 DCHECK(stack_pointer_before_call_ == nullptr); | 478 DCHECK(stack_pointer_before_call_ == nullptr); |
| 481 stack_pointer_before_call_ = LoadStackPointer(); | 479 stack_pointer_before_call_ = LoadStackPointer(); |
| 482 } | 480 } |
| (...skipping 880 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1363 Goto(&loop); | 1361 Goto(&loop); |
| 1364 } | 1362 } |
| 1365 Bind(&done_loop); | 1363 Bind(&done_loop); |
| 1366 | 1364 |
| 1367 return array; | 1365 return array; |
| 1368 } | 1366 } |
| 1369 | 1367 |
| 1370 } // namespace interpreter | 1368 } // namespace interpreter |
| 1371 } // namespace internal | 1369 } // namespace internal |
| 1372 } // namespace v8 | 1370 } // namespace v8 |
| OLD | NEW |