Index: runtime/vm/intermediate_language_ia32.cc |
diff --git a/runtime/vm/intermediate_language_ia32.cc b/runtime/vm/intermediate_language_ia32.cc |
index aa3c355c52d74049db4012e3e5d401f70f8b701a..34555dc6410020d71ea407e3828af4c95d13ddbe 100644 |
--- a/runtime/vm/intermediate_language_ia32.cc |
+++ b/runtime/vm/intermediate_language_ia32.cc |
@@ -1725,7 +1725,7 @@ LocationSummary* StoreInstanceFieldInstr::MakeLocationSummary(Zone* zone, |
((IsPotentialUnboxedStore()) ? 3 : 0); |
LocationSummary* summary = new(zone) LocationSummary( |
zone, kNumInputs, kNumTemps, |
- ((IsUnboxedStore() && opt && is_potential_unboxed_initialization_) || |
+ ((IsUnboxedStore() && opt && is_initialization()) || |
IsPotentialUnboxedStore()) |
? LocationSummary::kCallOnSlowPath |
: LocationSummary::kNoCall); |
@@ -1787,7 +1787,7 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
Register temp2 = locs()->temp(1).reg(); |
const intptr_t cid = field().UnboxedFieldCid(); |
- if (is_potential_unboxed_initialization_) { |
+ if (is_initialization()) { |
const Class* cls = NULL; |
switch (cid) { |
case kDoubleCid: |
@@ -1935,18 +1935,12 @@ void StoreInstanceFieldInstr::EmitNativeCode(FlowGraphCompiler* compiler) { |
__ StoreIntoObjectNoBarrier( |
instance_reg, |
FieldAddress(instance_reg, offset_in_bytes_), |
- locs()->in(1).constant(), |
- is_object_reference_initialization_ ? |
- Assembler::kEmptyOrSmiOrNull : |
- Assembler::kHeapObjectOrSmi); |
+ locs()->in(1).constant()); |
} else { |
Register value_reg = locs()->in(1).reg(); |
__ StoreIntoObjectNoBarrier(instance_reg, |
FieldAddress(instance_reg, offset_in_bytes_), |
- value_reg, |
- is_object_reference_initialization_ ? |
- Assembler::kEmptyOrSmiOrNull : |
- Assembler::kHeapObjectOrSmi); |
+ value_reg); |
} |
} |
__ Bind(&skip_store); |
@@ -2066,12 +2060,12 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler, |
EDI); // temp |
// Store the type argument field. |
- __ InitializeFieldNoBarrier(EAX, |
+ __ StoreIntoObjectNoBarrier(EAX, |
FieldAddress(EAX, Array::type_arguments_offset()), |
kElemTypeReg); |
// Set the length field. |
- __ InitializeFieldNoBarrier(EAX, |
+ __ StoreIntoObjectNoBarrier(EAX, |
FieldAddress(EAX, Array::length_offset()), |
kLengthReg); |
@@ -2089,13 +2083,13 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler, |
intptr_t current_offset = 0; |
__ movl(EBX, raw_null); |
while (current_offset < array_size) { |
- __ InitializeFieldNoBarrier(EAX, Address(EDI, current_offset), EBX); |
+ __ StoreIntoObjectNoBarrier(EAX, Address(EDI, current_offset), EBX); |
current_offset += kWordSize; |
} |
} else { |
Label init_loop; |
__ Bind(&init_loop); |
- __ InitializeFieldNoBarrier(EAX, Address(EDI, 0), Object::null_object()); |
+ __ StoreIntoObjectNoBarrier(EAX, Address(EDI, 0), Object::null_object()); |
__ addl(EDI, Immediate(kWordSize)); |
__ cmpl(EDI, EBX); |
__ j(BELOW, &init_loop, Assembler::kNearJump); |