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

Side by Side Diff: src/code-stubs-hydrogen.cc

Issue 2593033002: [ics]: Remove deprecated support for patching LoadICs and StoreICs (Closed)
Patch Set: Remove more dead code Created 3 years, 12 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.cc ('k') | src/counters.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 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/code-stubs.h" 5 #include "src/code-stubs.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/code-factory.h" 10 #include "src/code-factory.h"
(...skipping 358 matching lines...) Expand 10 before | Expand all | Expand 10 after
369 HValue* key = builder.BeginBody(start, argc, Token::LT); 369 HValue* key = builder.BeginBody(start, argc, Token::LT);
370 { 370 {
371 HValue* argument = Add<HAccessArgumentsAt>(argument_elements, argc, key); 371 HValue* argument = Add<HAccessArgumentsAt>(argument_elements, argc, key);
372 HValue* index = AddUncasted<HAdd>(key, length); 372 HValue* index = AddUncasted<HAdd>(key, length);
373 AddElementAccess(elements, index, argument, object, nullptr, kind, STORE); 373 AddElementAccess(elements, index, argument, object, nullptr, kind, STORE);
374 } 374 }
375 builder.EndBody(); 375 builder.EndBody();
376 return new_length; 376 return new_length;
377 } 377 }
378 378
379 template <>
380 HValue* CodeStubGraphBuilder<LoadFastElementStub>::BuildCodeStub() {
381 LoadKeyedHoleMode hole_mode = casted_stub()->convert_hole_to_undefined()
382 ? CONVERT_HOLE_TO_UNDEFINED
383 : NEVER_RETURN_HOLE;
384
385 HInstruction* load = BuildUncheckedMonomorphicElementAccess(
386 GetParameter(Descriptor::kReceiver), GetParameter(Descriptor::kName),
387 NULL, casted_stub()->is_js_array(), casted_stub()->elements_kind(), LOAD,
388 hole_mode, STANDARD_STORE);
389 return load;
390 }
391
392
393 Handle<Code> LoadFastElementStub::GenerateCode() {
394 return DoGenerateCode(this);
395 }
396
397
398 HLoadNamedField* CodeStubGraphBuilderBase::BuildLoadNamedField( 379 HLoadNamedField* CodeStubGraphBuilderBase::BuildLoadNamedField(
399 HValue* object, FieldIndex index) { 380 HValue* object, FieldIndex index) {
400 Representation representation = index.is_double() 381 Representation representation = index.is_double()
401 ? Representation::Double() 382 ? Representation::Double()
402 : Representation::Tagged(); 383 : Representation::Tagged();
403 int offset = index.offset(); 384 int offset = index.offset();
404 HObjectAccess access = index.is_inobject() 385 HObjectAccess access = index.is_inobject()
405 ? HObjectAccess::ForObservableJSObjectOffset(offset, representation) 386 ? HObjectAccess::ForObservableJSObjectOffset(offset, representation)
406 : HObjectAccess::ForBackingStoreOffset(offset, representation); 387 : HObjectAccess::ForBackingStoreOffset(offset, representation);
407 if (index.is_double() && 388 if (index.is_double() &&
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after
792 if_true.If<HBranch>(GetParameter(Descriptor::kArgument), stub->hints()); 773 if_true.If<HBranch>(GetParameter(Descriptor::kArgument), stub->hints());
793 if_true.Then(); 774 if_true.Then();
794 if_true.Return(graph()->GetConstantTrue()); 775 if_true.Return(graph()->GetConstantTrue());
795 if_true.Else(); 776 if_true.Else();
796 if_true.End(); 777 if_true.End();
797 return graph()->GetConstantFalse(); 778 return graph()->GetConstantFalse();
798 } 779 }
799 780
800 Handle<Code> ToBooleanICStub::GenerateCode() { return DoGenerateCode(this); } 781 Handle<Code> ToBooleanICStub::GenerateCode() { return DoGenerateCode(this); }
801 782
802 template <>
803 HValue* CodeStubGraphBuilder<LoadDictionaryElementStub>::BuildCodeStub() {
804 HValue* receiver = GetParameter(Descriptor::kReceiver);
805 HValue* key = GetParameter(Descriptor::kName);
806
807 Add<HCheckSmi>(key);
808
809 HValue* elements = AddLoadElements(receiver);
810
811 HValue* hash = BuildElementIndexHash(key);
812
813 return BuildUncheckedDictionaryElementLoad(receiver, elements, key, hash);
814 }
815
816
817 Handle<Code> LoadDictionaryElementStub::GenerateCode() {
818 return DoGenerateCode(this);
819 }
820
821 } // namespace internal 783 } // namespace internal
822 } // namespace v8 784 } // namespace v8
OLDNEW
« no previous file with comments | « src/code-stubs.cc ('k') | src/counters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698