Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 009df374d36ad079d5ffebda0979aba3de7a7c97..11cb3684368d589846d5dbaae2d59ff854f94f99 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -292,6 +292,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()); |
} |
@@ -1024,6 +1031,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 |