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

Side by Side Diff: src/interpreter/bytecode-generator.cc

Issue 1385623002: [Interpreter]: Add support for strict mode load / store ICs. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 2 months 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
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/interpreter/bytecode-generator.h" 5 #include "src/interpreter/bytecode-generator.h"
6 6
7 #include <stack> 7 #include <stack>
8 8
9 #include "src/compiler.h" 9 #include "src/compiler.h"
10 #include "src/interpreter/control-flow-builders.h" 10 #include "src/interpreter/control-flow-builders.h"
(...skipping 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 Token::Value op = binop->op(); 663 Token::Value op = binop->op();
664 Expression* left = binop->left(); 664 Expression* left = binop->left();
665 Expression* right = binop->right(); 665 Expression* right = binop->right();
666 666
667 TemporaryRegisterScope temporary_register_scope(&builder_); 667 TemporaryRegisterScope temporary_register_scope(&builder_);
668 Register temporary = temporary_register_scope.NewRegister(); 668 Register temporary = temporary_register_scope.NewRegister();
669 669
670 Visit(left); 670 Visit(left);
671 builder()->StoreAccumulatorInRegister(temporary); 671 builder()->StoreAccumulatorInRegister(temporary);
672 Visit(right); 672 Visit(right);
673 builder()->BinaryOperation(op, temporary); 673 builder()->BinaryOperation(op, temporary, language_mode());
674 } 674 }
675 675
676 676
677 LanguageMode BytecodeGenerator::language_mode() const { 677 LanguageMode BytecodeGenerator::language_mode() const {
678 return info()->language_mode(); 678 return info()->language_mode();
679 } 679 }
680 680
681 681
682 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const { 682 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const {
683 return info()->feedback_vector()->GetIndex(slot); 683 return info()->feedback_vector()->GetIndex(slot);
684 } 684 }
685 685
686 } // namespace interpreter 686 } // namespace interpreter
687 } // namespace internal 687 } // namespace internal
688 } // namespace v8 688 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698