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

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

Issue 655163002: Let FastCloneShallowObjectStub work with empty literal objects. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | 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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/bailout-reason.h" 7 #include "src/bailout-reason.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/field-index.h" 9 #include "src/field-index.h"
10 #include "src/hydrogen.h" 10 #include "src/hydrogen.h"
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 IfBuilder checker(this); 409 IfBuilder checker(this);
410 checker.IfNot<HCompareObjectEqAndBranch, HValue*>(allocation_site, 410 checker.IfNot<HCompareObjectEqAndBranch, HValue*>(allocation_site,
411 undefined); 411 undefined);
412 checker.And(); 412 checker.And();
413 413
414 HObjectAccess access = HObjectAccess::ForAllocationSiteOffset( 414 HObjectAccess access = HObjectAccess::ForAllocationSiteOffset(
415 AllocationSite::kTransitionInfoOffset); 415 AllocationSite::kTransitionInfoOffset);
416 HInstruction* boilerplate = Add<HLoadNamedField>( 416 HInstruction* boilerplate = Add<HLoadNamedField>(
417 allocation_site, static_cast<HValue*>(NULL), access); 417 allocation_site, static_cast<HValue*>(NULL), access);
418 418
419 int size = JSObject::kHeaderSize + casted_stub()->length() * kPointerSize; 419 int length = casted_stub()->length();
420 if (length == 0) {
421 // Empty objects have some slack added to them.
422 length = JSObject::kInitialGlobalObjectUnusedPropertiesCount;
423 }
424 int size = JSObject::kHeaderSize + length * kPointerSize;
420 int object_size = size; 425 int object_size = size;
421 if (FLAG_allocation_site_pretenuring) { 426 if (FLAG_allocation_site_pretenuring) {
422 size += AllocationMemento::kSize; 427 size += AllocationMemento::kSize;
423 } 428 }
424 429
425 HValue* boilerplate_map = Add<HLoadNamedField>( 430 HValue* boilerplate_map = Add<HLoadNamedField>(
426 boilerplate, static_cast<HValue*>(NULL), 431 boilerplate, static_cast<HValue*>(NULL),
427 HObjectAccess::ForMap()); 432 HObjectAccess::ForMap());
428 HValue* boilerplate_size = Add<HLoadNamedField>( 433 HValue* boilerplate_size = Add<HLoadNamedField>(
429 boilerplate_map, static_cast<HValue*>(NULL), 434 boilerplate_map, static_cast<HValue*>(NULL),
(...skipping 1584 matching lines...) Expand 10 before | Expand all | Expand 10 after
2014 2019
2015 // Probe the stub cache. 2020 // Probe the stub cache.
2016 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags( 2021 Code::Flags flags = Code::RemoveTypeAndHolderFromFlags(
2017 Code::ComputeHandlerFlags(Code::LOAD_IC)); 2022 Code::ComputeHandlerFlags(Code::LOAD_IC));
2018 Add<HTailCallThroughMegamorphicCache>(receiver, name, flags); 2023 Add<HTailCallThroughMegamorphicCache>(receiver, name, flags);
2019 2024
2020 // We never continue. 2025 // We never continue.
2021 return graph()->GetConstant0(); 2026 return graph()->GetConstant0();
2022 } 2027 }
2023 } } // namespace v8::internal 2028 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698