| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/crankshaft/mips64/lithium-codegen-mips64.h" | 5 #include "src/crankshaft/mips64/lithium-codegen-mips64.h" |
| 6 | 6 |
| 7 #include "src/code-factory.h" | 7 #include "src/code-factory.h" |
| 8 #include "src/code-stubs.h" | 8 #include "src/code-stubs.h" |
| 9 #include "src/crankshaft/hydrogen-osr.h" | 9 #include "src/crankshaft/hydrogen-osr.h" |
| 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" | 10 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h" |
| (...skipping 4343 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4354 } else { | 4354 } else { |
| 4355 // We should never get here at runtime because there is a smi check on | 4355 // We should never get here at runtime because there is a smi check on |
| 4356 // the key before this point. | 4356 // the key before this point. |
| 4357 __ stop("expected smi"); | 4357 __ stop("expected smi"); |
| 4358 } | 4358 } |
| 4359 } else { | 4359 } else { |
| 4360 __ mov(a3, ToRegister(key)); | 4360 __ mov(a3, ToRegister(key)); |
| 4361 __ SmiTag(a3); | 4361 __ SmiTag(a3); |
| 4362 } | 4362 } |
| 4363 | 4363 |
| 4364 GrowArrayElementsStub stub(isolate(), instr->hydrogen()->is_js_array(), | 4364 GrowArrayElementsStub stub(isolate(), instr->hydrogen()->kind()); |
| 4365 instr->hydrogen()->kind()); | |
| 4366 __ mov(a0, result); | 4365 __ mov(a0, result); |
| 4367 __ CallStub(&stub); | 4366 __ CallStub(&stub); |
| 4368 RecordSafepointWithLazyDeopt( | 4367 RecordSafepointWithLazyDeopt( |
| 4369 instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS); | 4368 instr, RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS); |
| 4370 __ StoreToSafepointRegisterSlot(result, result); | 4369 __ StoreToSafepointRegisterSlot(result, result); |
| 4371 } | 4370 } |
| 4372 | 4371 |
| 4373 // Deopt on smi, which means the elements array changed to dictionary mode. | 4372 // Deopt on smi, which means the elements array changed to dictionary mode. |
| 4374 __ SmiTst(result, at); | 4373 __ SmiTst(result, at); |
| 4375 DeoptimizeIf(eq, instr, DeoptimizeReason::kSmi, at, Operand(zero_reg)); | 4374 DeoptimizeIf(eq, instr, DeoptimizeReason::kSmi, at, Operand(zero_reg)); |
| (...skipping 1370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5746 __ ld(result, FieldMemOperand(scratch, | 5745 __ ld(result, FieldMemOperand(scratch, |
| 5747 FixedArray::kHeaderSize - kPointerSize)); | 5746 FixedArray::kHeaderSize - kPointerSize)); |
| 5748 __ bind(deferred->exit()); | 5747 __ bind(deferred->exit()); |
| 5749 __ bind(&done); | 5748 __ bind(&done); |
| 5750 } | 5749 } |
| 5751 | 5750 |
| 5752 #undef __ | 5751 #undef __ |
| 5753 | 5752 |
| 5754 } // namespace internal | 5753 } // namespace internal |
| 5755 } // namespace v8 | 5754 } // namespace v8 |
| OLD | NEW |