Index: src/x64/lithium-x64.cc |
diff --git a/src/x64/lithium-x64.cc b/src/x64/lithium-x64.cc |
index 20fe5cfaaa626dcb9ffdc238857a0b09ec3e7374..b6f8483d66ab60a20abe0144a427e1ed16c66dde 100644 |
--- a/src/x64/lithium-x64.cc |
+++ b/src/x64/lithium-x64.cc |
@@ -357,6 +357,17 @@ void LCallNew::PrintDataTo(StringStream* stream) { |
} |
+void LCallNewArray::PrintDataTo(StringStream* stream) { |
+ stream->Add("= "); |
+ constructor()->PrintTo(stream); |
+ stream->Add(" #%d / ", arity()); |
+ ASSERT(hydrogen()->property_cell()->value()->IsSmi()); |
+ ElementsKind kind = static_cast<ElementsKind>( |
+ Smi::cast(hydrogen()->property_cell()->value())->value()); |
+ stream->Add(" (%s) ", ElementsKindToString(kind)); |
+} |
+ |
+ |
void LAccessArgumentsAt::PrintDataTo(StringStream* stream) { |
arguments()->PrintTo(stream); |
@@ -1134,6 +1145,14 @@ LInstruction* LChunkBuilder::DoCallNew(HCallNew* instr) { |
} |
+LInstruction* LChunkBuilder::DoCallNewArray(HCallNewArray* instr) { |
+ LOperand* constructor = UseFixed(instr->constructor(), rdi); |
+ argument_count_ -= instr->argument_count(); |
+ LCallNewArray* result = new(zone()) LCallNewArray(constructor); |
+ return MarkAsCall(DefineFixed(result, rax), instr); |
+} |
+ |
+ |
LInstruction* LChunkBuilder::DoCallFunction(HCallFunction* instr) { |
LOperand* function = UseFixed(instr->function(), rdi); |
argument_count_ -= instr->argument_count(); |