| Index: src/arm64/lithium-arm64.cc
|
| diff --git a/src/arm64/lithium-arm64.cc b/src/arm64/lithium-arm64.cc
|
| index 8446edfae79fc88bb074131ffdabcba86a721788..275385857b98e912249307ab5e1cf8965dbc9d31 100644
|
| --- a/src/arm64/lithium-arm64.cc
|
| +++ b/src/arm64/lithium-arm64.cc
|
| @@ -273,6 +273,29 @@ void LStoreContextSlot::PrintDataTo(StringStream* stream) {
|
| }
|
|
|
|
|
| +void LFillElements::PrintDataTo(StringStream* stream) {
|
| + elements()->PrintTo(stream);
|
| + stream->Add("[");
|
| + from()->PrintTo(stream);
|
| + stream->Add("-");
|
| + to()->PrintTo(stream);
|
| + stream->Add("] <- ");
|
| + value()->PrintTo(stream);
|
| +}
|
| +
|
| +
|
| +void LCopyElements::PrintDataTo(StringStream* stream) {
|
| + dst()->PrintTo(stream);
|
| + stream->Add("[0-");
|
| + length()->PrintTo(stream);
|
| + stream->Add("] <- ");
|
| + src()->PrintTo(stream);
|
| + stream->Add("[0-");
|
| + length()->PrintTo(stream);
|
| + stream->Add("]");
|
| +}
|
| +
|
| +
|
| void LStoreKeyedGeneric::PrintDataTo(StringStream* stream) {
|
| object()->PrintTo(stream);
|
| stream->Add("[");
|
| @@ -415,6 +438,13 @@ LOperand* LChunkBuilder::UseRegisterOrConstant(HValue* value) {
|
| }
|
|
|
|
|
| +LOperand* LChunkBuilder::UseRegisterAndClobberOrConstant(HValue* value) {
|
| + return value->IsConstant()
|
| + ? UseConstant(value)
|
| + : UseRegisterAndClobber(value);
|
| +}
|
| +
|
| +
|
| LOperand* LChunkBuilder::UseRegisterOrConstantAtStart(HValue* value) {
|
| return value->IsConstant() ? UseConstant(value) : UseRegisterAtStart(value);
|
| }
|
| @@ -2312,6 +2342,23 @@ LInstruction* LChunkBuilder::DoStoreGlobalCell(HStoreGlobalCell* instr) {
|
| }
|
|
|
|
|
| +LInstruction* LChunkBuilder::DoFillElements(HFillElements* instr) {
|
| + LOperand* elements = UseRegister(instr->elements());
|
| + LOperand* from = UseRegisterOrConstant(instr->from());
|
| + LOperand* to = UseRegisterAndClobberOrConstant(instr->to());
|
| + LOperand* value = UseRegister(instr->value());
|
| + return new(zone()) LFillElements(elements, from, to, value);
|
| +}
|
| +
|
| +
|
| +LInstruction* LChunkBuilder::DoCopyElements(HCopyElements* instr) {
|
| + LOperand* src = UseRegister(instr->src());
|
| + LOperand* dst = UseRegister(instr->dst());
|
| + LOperand* length = UseRegisterAndClobber(instr->length());
|
| + return new(zone()) LCopyElements(src, dst, length);
|
| +}
|
| +
|
| +
|
| LInstruction* LChunkBuilder::DoStoreKeyed(HStoreKeyed* instr) {
|
| LOperand* key = UseRegisterOrConstant(instr->key());
|
| LOperand* temp = NULL;
|
|
|