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

Side by Side Diff: src/full-codegen/full-codegen.cc

Issue 2327103002: [stubs] Port KeyedLoadSloppyArgumentsStub and KeyedStoreSloppyArgumentsStub to TurboFan. (Closed)
Patch Set: Addressing comments Created 4 years, 3 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
« no previous file with comments | « src/code-stubs-hydrogen.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/full-codegen/full-codegen.h" 5 #include "src/full-codegen/full-codegen.h"
6 6
7 #include "src/ast/ast-numbering.h" 7 #include "src/ast/ast-numbering.h"
8 #include "src/ast/ast.h" 8 #include "src/ast/ast.h"
9 #include "src/ast/prettyprinter.h" 9 #include "src/ast/prettyprinter.h"
10 #include "src/ast/scopes.h" 10 #include "src/ast/scopes.h"
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
237 237
238 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { 238 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) {
239 Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code(); 239 Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code();
240 CallIC(ic, id); 240 CallIC(ic, id);
241 } 241 }
242 242
243 void FullCodeGenerator::CallKeyedStoreIC() { 243 void FullCodeGenerator::CallKeyedStoreIC() {
244 Handle<Code> ic = 244 Handle<Code> ic =
245 CodeFactory::KeyedStoreIC(isolate(), language_mode()).code(); 245 CodeFactory::KeyedStoreIC(isolate(), language_mode()).code();
246 CallIC(ic); 246 CallIC(ic);
247 RestoreContext();
247 } 248 }
248 249
249 void FullCodeGenerator::RecordJSReturnSite(Call* call) { 250 void FullCodeGenerator::RecordJSReturnSite(Call* call) {
250 // We record the offset of the function return so we can rebuild the frame 251 // We record the offset of the function return so we can rebuild the frame
251 // if the function was inlined, i.e., this is the return address in the 252 // if the function was inlined, i.e., this is the return address in the
252 // inlined function's frame. 253 // inlined function's frame.
253 // 254 //
254 // The bailout state is ignored. We defensively set it to TOS_REGISTER, which 255 // The bailout state is ignored. We defensively set it to TOS_REGISTER, which
255 // is the real state of the unoptimized code at the return site. 256 // is the real state of the unoptimized code at the return site.
256 PrepareForBailoutForId(call->ReturnId(), BailoutState::TOS_REGISTER); 257 PrepareForBailoutForId(call->ReturnId(), BailoutState::TOS_REGISTER);
(...skipping 829 matching lines...) Expand 10 before | Expand all | Expand 10 after
1086 PushOperand(key->value()); 1087 PushOperand(key->value());
1087 CallRuntimeWithOperands(Runtime::kLoadFromSuper); 1088 CallRuntimeWithOperands(Runtime::kLoadFromSuper);
1088 } 1089 }
1089 1090
1090 void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) { 1091 void FullCodeGenerator::EmitKeyedPropertyLoad(Property* prop) {
1091 SetExpressionPosition(prop); 1092 SetExpressionPosition(prop);
1092 Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate()).code(); 1093 Handle<Code> ic = CodeFactory::KeyedLoadIC(isolate()).code();
1093 __ Move(LoadDescriptor::SlotRegister(), 1094 __ Move(LoadDescriptor::SlotRegister(),
1094 SmiFromSlot(prop->PropertyFeedbackSlot())); 1095 SmiFromSlot(prop->PropertyFeedbackSlot()));
1095 CallIC(ic); 1096 CallIC(ic);
1096 if (FLAG_tf_load_ic_stub) RestoreContext(); 1097 RestoreContext();
1097 } 1098 }
1098 1099
1099 void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) { 1100 void FullCodeGenerator::EmitKeyedSuperPropertyLoad(Property* prop) {
1100 // Stack: receiver, home_object, key. 1101 // Stack: receiver, home_object, key.
1101 SetExpressionPosition(prop); 1102 SetExpressionPosition(prop);
1102 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper); 1103 CallRuntimeWithOperands(Runtime::kLoadKeyedFromSuper);
1103 } 1104 }
1104 1105
1105 void FullCodeGenerator::EmitPropertyKey(LiteralProperty* property, 1106 void FullCodeGenerator::EmitPropertyKey(LiteralProperty* property,
1106 BailoutId bailout_id) { 1107 BailoutId bailout_id) {
(...skipping 906 matching lines...) Expand 10 before | Expand all | Expand 10 after
2013 return info_->has_simple_parameters(); 2014 return info_->has_simple_parameters();
2014 } 2015 }
2015 2016
2016 FunctionLiteral* FullCodeGenerator::literal() const { return info_->literal(); } 2017 FunctionLiteral* FullCodeGenerator::literal() const { return info_->literal(); }
2017 2018
2018 #undef __ 2019 #undef __
2019 2020
2020 2021
2021 } // namespace internal 2022 } // namespace internal
2022 } // namespace v8 2023 } // namespace v8
OLDNEW
« no previous file with comments | « src/code-stubs-hydrogen.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698