Index: src/arm64/lithium-codegen-arm64.cc |
diff --git a/src/arm64/lithium-codegen-arm64.cc b/src/arm64/lithium-codegen-arm64.cc |
index 1ac579f0f61affe622899924404f0725c5783308..bf13955ccd4de00f18d8b341c3bf6b5959cb7293 100644 |
--- a/src/arm64/lithium-codegen-arm64.cc |
+++ b/src/arm64/lithium-codegen-arm64.cc |
@@ -3683,9 +3683,13 @@ void LCodeGen::DoLoadNamedField(LLoadNamedField* instr) { |
if (access.IsInobject()) { |
source = object; |
} else { |
- // Load the properties array, using result as a scratch register. |
- __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); |
- source = result; |
+ if (instr->object_properties()) { |
+ source = ToRegister(instr->object_properties()); |
+ } else { |
+ // Load the properties array, using result as a scratch register. |
+ __ Ldr(result, FieldMemOperand(object, JSObject::kPropertiesOffset)); |
+ source = result; |
+ } |
} |
if (access.representation().IsSmi() && |
@@ -5393,9 +5397,13 @@ void LCodeGen::DoStoreNamedField(LStoreNamedField* instr) { |
if (access.IsInobject()) { |
destination = object; |
} else { |
- Register temp0 = ToRegister(instr->temp0()); |
- __ Ldr(temp0, FieldMemOperand(object, JSObject::kPropertiesOffset)); |
- destination = temp0; |
+ if (instr->object_properties()) { |
+ destination = ToRegister(instr->object_properties()); |
+ } else { |
+ Register temp0 = ToRegister(instr->temp0()); |
+ __ Ldr(temp0, FieldMemOperand(object, JSObject::kPropertiesOffset)); |
+ destination = temp0; |
+ } |
} |
if (representation.IsSmi() && |