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/compiler/bytecode-graph-builder.h" | 5 #include "src/compiler/bytecode-graph-builder.h" |
6 | 6 |
7 #include "src/compiler/linkage.h" | 7 #include "src/compiler/linkage.h" |
8 #include "src/compiler/operator-properties.h" | 8 #include "src/compiler/operator-properties.h" |
9 #include "src/interpreter/bytecode-array-iterator.h" | 9 #include "src/interpreter/bytecode-array-iterator.h" |
10 #include "src/interpreter/bytecodes.h" | 10 #include "src/interpreter/bytecodes.h" |
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
480 const Operator* op = | 480 const Operator* op = |
481 javascript()->StoreContext(0, iterator.GetIndexOperand(1)); | 481 javascript()->StoreContext(0, iterator.GetIndexOperand(1)); |
482 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0)); | 482 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0)); |
483 Node* value = environment()->LookupAccumulator(); | 483 Node* value = environment()->LookupAccumulator(); |
484 Node* node = NewNode(op, context, value); | 484 Node* node = NewNode(op, context, value); |
485 CHECK(node != nullptr); | 485 CHECK(node != nullptr); |
486 environment()->BindAccumulator(value); | 486 environment()->BindAccumulator(value); |
487 } | 487 } |
488 | 488 |
489 | 489 |
| 490 void BytecodeGraphBuilder::VisitLdaLookupSlot( |
| 491 const interpreter::BytecodeArrayIterator& iterator) { |
| 492 UNIMPLEMENTED(); |
| 493 } |
| 494 |
| 495 |
| 496 void BytecodeGraphBuilder::VisitLdaLookupSlotInsideTypeof( |
| 497 const interpreter::BytecodeArrayIterator& iterator) { |
| 498 UNIMPLEMENTED(); |
| 499 } |
| 500 |
| 501 |
| 502 void BytecodeGraphBuilder::VisitStaLookupSlotSloppy( |
| 503 const interpreter::BytecodeArrayIterator& iterator) { |
| 504 UNIMPLEMENTED(); |
| 505 } |
| 506 |
| 507 |
| 508 void BytecodeGraphBuilder::VisitStaLookupSlotStrict( |
| 509 const interpreter::BytecodeArrayIterator& iterator) { |
| 510 UNIMPLEMENTED(); |
| 511 } |
| 512 |
| 513 |
490 void BytecodeGraphBuilder::BuildNamedLoad( | 514 void BytecodeGraphBuilder::BuildNamedLoad( |
491 const interpreter::BytecodeArrayIterator& iterator) { | 515 const interpreter::BytecodeArrayIterator& iterator) { |
492 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0)); | 516 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0)); |
493 Handle<Name> name = | 517 Handle<Name> name = |
494 Handle<Name>::cast(iterator.GetConstantForIndexOperand(1)); | 518 Handle<Name>::cast(iterator.GetConstantForIndexOperand(1)); |
495 VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2)); | 519 VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2)); |
496 | 520 |
497 const Operator* op = javascript()->LoadNamed(language_mode(), name, feedback); | 521 const Operator* op = javascript()->LoadNamed(language_mode(), name, feedback); |
498 Node* node = NewNode(op, object, BuildLoadFeedbackVector()); | 522 Node* node = NewNode(op, object, BuildLoadFeedbackVector()); |
499 AddEmptyFrameStateInputs(node); | 523 AddEmptyFrameStateInputs(node); |
(...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1377 | 1401 |
1378 void BytecodeGraphBuilder::UpdateControlDependencyToLeaveFunction(Node* exit) { | 1402 void BytecodeGraphBuilder::UpdateControlDependencyToLeaveFunction(Node* exit) { |
1379 if (environment()->IsMarkedAsUnreachable()) return; | 1403 if (environment()->IsMarkedAsUnreachable()) return; |
1380 environment()->MarkAsUnreachable(); | 1404 environment()->MarkAsUnreachable(); |
1381 exit_controls_.push_back(exit); | 1405 exit_controls_.push_back(exit); |
1382 } | 1406 } |
1383 | 1407 |
1384 } // namespace compiler | 1408 } // namespace compiler |
1385 } // namespace internal | 1409 } // namespace internal |
1386 } // namespace v8 | 1410 } // namespace v8 |
OLD | NEW |