| 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 #if V8_TARGET_ARCH_MIPS64 | 5 #if V8_TARGET_ARCH_MIPS64 | 
| 6 | 6 | 
| 7 // Note on Mips implementation: | 7 // Note on Mips implementation: | 
| 8 // | 8 // | 
| 9 // The result_register() for mips is the 'v0' register, which is defined | 9 // The result_register() for mips is the 'v0' register, which is defined | 
| 10 // by the ABI to contain function return values. However, the first | 10 // by the ABI to contain function return values. However, the first | 
| (...skipping 1781 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1792     if (CompileTimeValue::IsCompileTimeValue(subexpr)) continue; | 1792     if (CompileTimeValue::IsCompileTimeValue(subexpr)) continue; | 
| 1793 | 1793 | 
| 1794     if (!result_saved) { | 1794     if (!result_saved) { | 
| 1795       __ push(v0);  // array literal | 1795       __ push(v0);  // array literal | 
| 1796       __ Push(Smi::FromInt(expr->literal_index())); | 1796       __ Push(Smi::FromInt(expr->literal_index())); | 
| 1797       result_saved = true; | 1797       result_saved = true; | 
| 1798     } | 1798     } | 
| 1799 | 1799 | 
| 1800     VisitForAccumulatorValue(subexpr); | 1800     VisitForAccumulatorValue(subexpr); | 
| 1801 | 1801 | 
| 1802     if (has_fast_elements) { | 1802     if (FLAG_vector_stores) { | 
|  | 1803       __ li(StoreDescriptor::NameRegister(), | 
|  | 1804             Operand(Smi::FromInt(array_index))); | 
|  | 1805       __ ld(StoreDescriptor::ReceiverRegister(), MemOperand(sp, kPointerSize)); | 
|  | 1806       __ mov(StoreDescriptor::ValueRegister(), result_register()); | 
|  | 1807       EmitLoadStoreICSlot(expr->LiteralFeedbackSlot()); | 
|  | 1808       Handle<Code> ic = | 
|  | 1809           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code(); | 
|  | 1810       CallIC(ic); | 
|  | 1811     } else if (has_fast_elements) { | 
| 1803       int offset = FixedArray::kHeaderSize + (array_index * kPointerSize); | 1812       int offset = FixedArray::kHeaderSize + (array_index * kPointerSize); | 
| 1804       __ ld(a6, MemOperand(sp, kPointerSize));  // Copy of array literal. | 1813       __ ld(a6, MemOperand(sp, kPointerSize));  // Copy of array literal. | 
| 1805       __ ld(a1, FieldMemOperand(a6, JSObject::kElementsOffset)); | 1814       __ ld(a1, FieldMemOperand(a6, JSObject::kElementsOffset)); | 
| 1806       __ sd(result_register(), FieldMemOperand(a1, offset)); | 1815       __ sd(result_register(), FieldMemOperand(a1, offset)); | 
| 1807       // Update the write barrier for the array store. | 1816       // Update the write barrier for the array store. | 
| 1808       __ RecordWriteField(a1, offset, result_register(), a2, | 1817       __ RecordWriteField(a1, offset, result_register(), a2, | 
| 1809                           kRAHasBeenSaved, kDontSaveFPRegs, | 1818                           kRAHasBeenSaved, kDontSaveFPRegs, | 
| 1810                           EMIT_REMEMBERED_SET, INLINE_SMI_CHECK); | 1819                           EMIT_REMEMBERED_SET, INLINE_SMI_CHECK); | 
| 1811     } else { | 1820     } else { | 
| 1812       __ li(a3, Operand(Smi::FromInt(array_index))); | 1821       __ li(a3, Operand(Smi::FromInt(array_index))); | 
| (...skipping 3443 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5256          reinterpret_cast<uint64_t>( | 5265          reinterpret_cast<uint64_t>( | 
| 5257              isolate->builtins()->OsrAfterStackCheck()->entry())); | 5266              isolate->builtins()->OsrAfterStackCheck()->entry())); | 
| 5258   return OSR_AFTER_STACK_CHECK; | 5267   return OSR_AFTER_STACK_CHECK; | 
| 5259 } | 5268 } | 
| 5260 | 5269 | 
| 5261 | 5270 | 
| 5262 }  // namespace internal | 5271 }  // namespace internal | 
| 5263 }  // namespace v8 | 5272 }  // namespace v8 | 
| 5264 | 5273 | 
| 5265 #endif  // V8_TARGET_ARCH_MIPS64 | 5274 #endif  // V8_TARGET_ARCH_MIPS64 | 
| OLD | NEW | 
|---|