Index: src/arm/lithium-arm.cc |
diff --git a/src/arm/lithium-arm.cc b/src/arm/lithium-arm.cc |
index e10068f0091b8fda5e9ad4f2d1c41e5fb0b30d6c..ac05d8bfa038bcbe114085986a4f04bd9169920f 100644 |
--- a/src/arm/lithium-arm.cc |
+++ b/src/arm/lithium-arm.cc |
@@ -290,6 +290,13 @@ void LTypeofIsAndBranch::PrintDataTo(StringStream* stream) { |
} |
+void LSubAllocatedObject::PrintDataTo(StringStream* stream) { |
+ stream->Add(" = "); |
+ base_object()->PrintTo(stream); |
+ stream->Add("+%d", offset()); |
+} |
+ |
+ |
void LCallConstantFunction::PrintDataTo(StringStream* stream) { |
stream->Add("#%d / ", arity()); |
} |
@@ -1017,6 +1024,16 @@ LInstruction* LChunkBuilder::DoPushArgument(HPushArgument* instr) { |
} |
+LInstruction* LChunkBuilder::DoSubAllocatedObject( |
+ HSubAllocatedObject* sub_object) { |
+ bool zero_offset = sub_object->offset() == 0; |
+ LOperand* base_object = UseRegister(sub_object->base_object()); |
+ LSubAllocatedObject* result = |
+ new(zone()) LSubAllocatedObject(base_object); |
+ return zero_offset ? DefineSameAsFirst(result) : DefineAsRegister(result); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoThisFunction(HThisFunction* instr) { |
return instr->HasNoUses() |
? NULL |