Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(32)

Unified Diff: src/arm64/lithium-codegen-arm64.cc

Issue 324093002: ARM/ARM64: Optimise HLoadNamedField and HStoreNamedField. Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Upload the correct patch (minor diff in hydrogen.h) Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() &&
« no previous file with comments | « src/arm64/lithium-arm64.cc ('k') | src/hydrogen.h » ('j') | src/hydrogen-instructions.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698