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* vector = LoadObjectField(function, JSFunction::kFeedbackVectorOffset); | 470 Node* cell = LoadObjectField(function, JSFunction::kFeedbackVectorOffset); |
| 471 Node* vector = LoadObjectField(cell, Cell::kValueOffset); |
471 return vector; | 472 return vector; |
472 } | 473 } |
473 | 474 |
474 void InterpreterAssembler::CallPrologue() { | 475 void InterpreterAssembler::CallPrologue() { |
475 StoreRegister(SmiTag(BytecodeOffset()), Register::bytecode_offset()); | 476 StoreRegister(SmiTag(BytecodeOffset()), Register::bytecode_offset()); |
476 | 477 |
477 if (FLAG_debug_code && !disable_stack_check_across_call_) { | 478 if (FLAG_debug_code && !disable_stack_check_across_call_) { |
478 DCHECK(stack_pointer_before_call_ == nullptr); | 479 DCHECK(stack_pointer_before_call_ == nullptr); |
479 stack_pointer_before_call_ = LoadStackPointer(); | 480 stack_pointer_before_call_ = LoadStackPointer(); |
480 } | 481 } |
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1360 Goto(&loop); | 1361 Goto(&loop); |
1361 } | 1362 } |
1362 Bind(&done_loop); | 1363 Bind(&done_loop); |
1363 | 1364 |
1364 return array; | 1365 return array; |
1365 } | 1366 } |
1366 | 1367 |
1367 } // namespace interpreter | 1368 } // namespace interpreter |
1368 } // namespace internal | 1369 } // namespace internal |
1369 } // namespace v8 | 1370 } // namespace v8 |
OLD | NEW |