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 |