Index: src/x64/lithium-codegen-x64.cc |
diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc |
index 109c25ad5e41a4867af4a924615343495304161f..a0b4ac953a98b3f81b5ce632e7fa8abcbcd3d08e 100644 |
--- a/src/x64/lithium-codegen-x64.cc |
+++ b/src/x64/lithium-codegen-x64.cc |
@@ -2700,7 +2700,8 @@ void LCodeGen::DoStoreContextSlot(LStoreContextSlot* instr) { |
void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) { |
- int offset = instr->hydrogen()->offset(); |
+ HObjectAccess access = instr->hydrogen()->access(); |
+ int offset = access.offset(); |
Register object = ToRegister(instr->object()); |
if (FLAG_track_double_fields && |
instr->hydrogen()->representation().IsDouble()) { |
@@ -2710,7 +2711,7 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) { |
} |
Register result = ToRegister(instr->result()); |
- if (instr->hydrogen()->is_in_object()) { |
+ if (access.IsInobject()) { |
__ movq(result, FieldOperand(object, offset)); |
} else { |
__ movq(result, FieldOperand(object, JSObject::kPropertiesOffset)); |
@@ -3931,7 +3932,8 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
Register object = ToRegister(instr->object()); |
- int offset = instr->offset(); |
+ HObjectAccess access = instr->hydrogen()->access(); |
+ int offset = access.offset(); |
Handle<Map> transition = instr->transition(); |
@@ -3957,7 +3959,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
} |
} else if (FLAG_track_double_fields && representation.IsDouble()) { |
ASSERT(transition.is_null()); |
- ASSERT(instr->is_in_object()); |
+ ASSERT(access.IsInobject()); |
ASSERT(!instr->hydrogen()->NeedsWriteBarrier()); |
XMMRegister value = ToDoubleRegister(instr->value()); |
__ movsd(FieldOperand(object, offset), value); |
@@ -3991,7 +3993,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
type.IsHeapObject() ? OMIT_SMI_CHECK : INLINE_SMI_CHECK; |
Register write_register = object; |
- if (!instr->is_in_object()) { |
+ if (!access.IsInobject()) { |
write_register = ToRegister(instr->temp()); |
__ movq(write_register, FieldOperand(object, JSObject::kPropertiesOffset)); |
} |
@@ -4012,7 +4014,7 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
if (instr->hydrogen()->NeedsWriteBarrier()) { |
Register value = ToRegister(instr->value()); |
- Register temp = instr->is_in_object() ? ToRegister(instr->temp()) : object; |
+ Register temp = access.IsInobject() ? ToRegister(instr->temp()) : object; |
// Update the write barrier for the object for in-object properties. |
__ RecordWriteField(write_register, |
offset, |