Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/compiler/bytecode-graph-builder.cc

Issue 1524803003: [Interpreter] Add support for Load / Store to Lookup slots. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@init_eval_impl
Patch Set: Fixed nits. Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/compiler/interpreter-assembler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
481 const Operator* op = 481 const Operator* op =
482 javascript()->StoreContext(0, iterator.GetIndexOperand(1)); 482 javascript()->StoreContext(0, iterator.GetIndexOperand(1));
483 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0)); 483 Node* context = environment()->LookupRegister(iterator.GetRegisterOperand(0));
484 Node* value = environment()->LookupAccumulator(); 484 Node* value = environment()->LookupAccumulator();
485 Node* node = NewNode(op, context, value); 485 Node* node = NewNode(op, context, value);
486 CHECK(node != nullptr); 486 CHECK(node != nullptr);
487 environment()->BindAccumulator(value); 487 environment()->BindAccumulator(value);
488 } 488 }
489 489
490 490
491 void BytecodeGraphBuilder::VisitLdaLookupSlot(
492 const interpreter::BytecodeArrayIterator& iterator) {
493 UNIMPLEMENTED();
494 }
495
496
497 void BytecodeGraphBuilder::VisitLdaLookupSlotInsideTypeof(
498 const interpreter::BytecodeArrayIterator& iterator) {
499 UNIMPLEMENTED();
500 }
501
502
503 void BytecodeGraphBuilder::VisitStaLookupSlotSloppy(
504 const interpreter::BytecodeArrayIterator& iterator) {
505 UNIMPLEMENTED();
506 }
507
508
509 void BytecodeGraphBuilder::VisitStaLookupSlotStrict(
510 const interpreter::BytecodeArrayIterator& iterator) {
511 UNIMPLEMENTED();
512 }
513
514
491 void BytecodeGraphBuilder::BuildNamedLoad( 515 void BytecodeGraphBuilder::BuildNamedLoad(
492 const interpreter::BytecodeArrayIterator& iterator) { 516 const interpreter::BytecodeArrayIterator& iterator) {
493 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0)); 517 Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
494 Handle<Name> name = 518 Handle<Name> name =
495 Handle<Name>::cast(iterator.GetConstantForIndexOperand(1)); 519 Handle<Name>::cast(iterator.GetConstantForIndexOperand(1));
496 VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2)); 520 VectorSlotPair feedback = CreateVectorSlotPair(iterator.GetIndexOperand(2));
497 521
498 const Operator* op = javascript()->LoadNamed(language_mode(), name, feedback); 522 const Operator* op = javascript()->LoadNamed(language_mode(), name, feedback);
499 Node* node = NewNode(op, object, BuildLoadFeedbackVector()); 523 Node* node = NewNode(op, object, BuildLoadFeedbackVector());
500 AddEmptyFrameStateInputs(node); 524 AddEmptyFrameStateInputs(node);
(...skipping 877 matching lines...) Expand 10 before | Expand all | Expand 10 after
1378 1402
1379 void BytecodeGraphBuilder::UpdateControlDependencyToLeaveFunction(Node* exit) { 1403 void BytecodeGraphBuilder::UpdateControlDependencyToLeaveFunction(Node* exit) {
1380 if (environment()->IsMarkedAsUnreachable()) return; 1404 if (environment()->IsMarkedAsUnreachable()) return;
1381 environment()->MarkAsUnreachable(); 1405 environment()->MarkAsUnreachable();
1382 exit_controls_.push_back(exit); 1406 exit_controls_.push_back(exit);
1383 } 1407 }
1384 1408
1385 } // namespace compiler 1409 } // namespace compiler
1386 } // namespace internal 1410 } // namespace internal
1387 } // namespace v8 1411 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/interpreter-assembler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698