Index: src/hydrogen-instructions.h |
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h |
index 685a5e883cd4085e231cd2d2b2f99c9a8f863dde..9e51c7e5fbef08a209caae2d583e6877e5664431 100644 |
--- a/src/hydrogen-instructions.h |
+++ b/src/hydrogen-instructions.h |
@@ -5105,6 +5105,10 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> { |
SetOperandAt(1, size); |
} |
+ InstanceType instance_type() const { |
+ return instance_type_; |
+ } |
+ |
virtual void HandleSideEffectDominator(GVNFlag side_effect, |
HValue* dominator) V8_OVERRIDE; |
@@ -5126,7 +5130,9 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> { |
HType type, |
PretenureFlag pretenure_flag, |
InstanceType instance_type) |
- : HTemplateInstruction<2>(type) { |
+ : HTemplateInstruction<2>(type), |
+ instance_type_(instance_type), |
+ clear_next_map_word_(false) { |
SetOperandAt(0, context); |
SetOperandAt(1, size); |
set_representation(Representation::Tagged()); |
@@ -5134,10 +5140,10 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> { |
SetGVNFlag(kChangesNewSpacePromotion); |
SetGVNFlag(kDependsOnNewSpacePromotion); |
flags_ = pretenure_flag == TENURED |
- ? (Heap::TargetSpaceId(instance_type) == OLD_POINTER_SPACE |
+ ? (Heap::TargetSpaceId(instance_type_) == OLD_POINTER_SPACE |
? ALLOCATE_IN_OLD_POINTER_SPACE : ALLOCATE_IN_OLD_DATA_SPACE) |
: ALLOCATE_IN_NEW_SPACE; |
- if (instance_type == FIXED_DOUBLE_ARRAY_TYPE) { |
+ if (instance_type_ == FIXED_DOUBLE_ARRAY_TYPE) { |
flags_ = static_cast<HAllocate::Flags>(flags_ | |
ALLOCATE_DOUBLE_ALIGNED); |
} |
@@ -5145,6 +5151,8 @@ class HAllocate V8_FINAL : public HTemplateInstruction<2> { |
Flags flags_; |
Handle<Map> known_initial_map_; |
+ InstanceType instance_type_; |
+ bool clear_next_map_word_; |
}; |