| 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() &&
|
|
|