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

Side by Side Diff: src/hydrogen-instructions.cc

Issue 1015983003: Disinherit PropertyCell from Cell (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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/hydrogen-instructions.h ('k') | src/ic/arm/handler-compiler-arm.cc » ('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/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/base/bits.h" 7 #include "src/base/bits.h"
8 #include "src/double.h" 8 #include "src/double.h"
9 #include "src/factory.h" 9 #include "src/factory.h"
10 #include "src/hydrogen-infer-representation.h" 10 #include "src/hydrogen-infer-representation.h"
(...skipping 4585 matching lines...) Expand 10 before | Expand all | Expand 10 after
4596 return HObjectAccess(kInobject, offset, representation, name, false, true); 4596 return HObjectAccess(kInobject, offset, representation, name, false, true);
4597 } else { 4597 } else {
4598 // Non-negative property indices are in the properties array. 4598 // Non-negative property indices are in the properties array.
4599 int offset = (index * kPointerSize) + FixedArray::kHeaderSize; 4599 int offset = (index * kPointerSize) + FixedArray::kHeaderSize;
4600 return HObjectAccess(kBackingStore, offset, representation, name, 4600 return HObjectAccess(kBackingStore, offset, representation, name,
4601 false, false); 4601 false, false);
4602 } 4602 }
4603 } 4603 }
4604 4604
4605 4605
4606 HObjectAccess HObjectAccess::ForCellPayload(Isolate* isolate) {
4607 return HObjectAccess(kInobject, Cell::kValueOffset, Representation::Tagged(),
4608 isolate->factory()->cell_value_string());
4609 }
4610
4611
4612 void HObjectAccess::SetGVNFlags(HValue *instr, PropertyAccessType access_type) { 4606 void HObjectAccess::SetGVNFlags(HValue *instr, PropertyAccessType access_type) {
4613 // set the appropriate GVN flags for a given load or store instruction 4607 // set the appropriate GVN flags for a given load or store instruction
4614 if (access_type == STORE) { 4608 if (access_type == STORE) {
4615 // track dominating allocations in order to eliminate write barriers 4609 // track dominating allocations in order to eliminate write barriers
4616 instr->SetDependsOnFlag(::v8::internal::kNewSpacePromotion); 4610 instr->SetDependsOnFlag(::v8::internal::kNewSpacePromotion);
4617 instr->SetFlag(HValue::kTrackSideEffectDominators); 4611 instr->SetFlag(HValue::kTrackSideEffectDominators);
4618 } else { 4612 } else {
4619 // try to GVN loads, but don't hoist above map changes 4613 // try to GVN loads, but don't hoist above map changes
4620 instr->SetFlag(HValue::kUseGVN); 4614 instr->SetFlag(HValue::kUseGVN);
4621 instr->SetDependsOnFlag(::v8::internal::kMaps); 4615 instr->SetDependsOnFlag(::v8::internal::kMaps);
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
4711 break; 4705 break;
4712 case HObjectAccess::kExternalMemory: 4706 case HObjectAccess::kExternalMemory:
4713 os << "[external-memory]"; 4707 os << "[external-memory]";
4714 break; 4708 break;
4715 } 4709 }
4716 4710
4717 return os << "@" << access.offset(); 4711 return os << "@" << access.offset();
4718 } 4712 }
4719 4713
4720 } } // namespace v8::internal 4714 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/hydrogen-instructions.h ('k') | src/ic/arm/handler-compiler-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698