| 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 |