Chromium Code Reviews| Index: src/a64/stub-cache-a64.cc |
| diff --git a/src/a64/stub-cache-a64.cc b/src/a64/stub-cache-a64.cc |
| index 291da65d44f4113e2c9ff9f226a766571238237a..0d1ecd2d4e83caf51aa6ac9a15b1be3b2fd8750c 100644 |
| --- a/src/a64/stub-cache-a64.cc |
| +++ b/src/a64/stub-cache-a64.cc |
| @@ -461,16 +461,15 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm, |
| // TODO(verwaest): Share this code as a code stub. |
| SmiCheck smi_check = representation.IsTagged() |
| ? INLINE_SMI_CHECK : OMIT_SMI_CHECK; |
| + Register prop_reg = |
| + (FLAG_track_double_fields && representation.IsDouble()) ? storage_reg |
|
ulan
2014/03/20 10:39:37
why FLAG_track_double_fields?
|
| + : value_reg; |
| if (index < 0) { |
| // Set the property straight into the object. |
| int offset = object->map()->instance_size() + (index * kPointerSize); |
| // TODO(jbramley): This construct appears in several places in this |
| // function. Try to clean it up, perhaps using a result_reg. |
| - if (representation.IsDouble()) { |
| - __ Str(storage_reg, FieldMemOperand(receiver_reg, offset)); |
| - } else { |
| - __ Str(value_reg, FieldMemOperand(receiver_reg, offset)); |
| - } |
| + __ Str(prop_reg, FieldMemOperand(receiver_reg, offset)); |
| if (!representation.IsSmi()) { |
| // Update the write barrier for the array address. |
| @@ -492,11 +491,7 @@ void StoreStubCompiler::GenerateStoreTransition(MacroAssembler* masm, |
| // Get the properties array |
| __ Ldr(scratch1, |
| FieldMemOperand(receiver_reg, JSObject::kPropertiesOffset)); |
| - if (representation.IsDouble()) { |
| - __ Str(storage_reg, FieldMemOperand(scratch1, offset)); |
| - } else { |
| - __ Str(value_reg, FieldMemOperand(scratch1, offset)); |
| - } |
| + __ Str(prop_reg, FieldMemOperand(scratch1, offset)); |
| if (!representation.IsSmi()) { |
| // Update the write barrier for the array address. |