| OLD | NEW | 
|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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_ARM64 | 5 #if V8_TARGET_ARCH_ARM64 | 
| 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/codegen.h" | 9 #include "src/codegen.h" | 
| 10 #include "src/debug/debug.h" | 10 #include "src/debug/debug.h" | 
| (...skipping 1767 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1778     // is already set in the cloned array. | 1778     // is already set in the cloned array. | 
| 1779     if (CompileTimeValue::IsCompileTimeValue(subexpr)) continue; | 1779     if (CompileTimeValue::IsCompileTimeValue(subexpr)) continue; | 
| 1780 | 1780 | 
| 1781     if (!result_saved) { | 1781     if (!result_saved) { | 
| 1782       __ Mov(x1, Smi::FromInt(expr->literal_index())); | 1782       __ Mov(x1, Smi::FromInt(expr->literal_index())); | 
| 1783       __ Push(x0, x1); | 1783       __ Push(x0, x1); | 
| 1784       result_saved = true; | 1784       result_saved = true; | 
| 1785     } | 1785     } | 
| 1786     VisitForAccumulatorValue(subexpr); | 1786     VisitForAccumulatorValue(subexpr); | 
| 1787 | 1787 | 
| 1788     if (has_fast_elements) { | 1788     if (FLAG_vector_stores) { | 
|  | 1789       __ Mov(StoreDescriptor::NameRegister(), Smi::FromInt(array_index)); | 
|  | 1790       __ Peek(StoreDescriptor::ReceiverRegister(), kPointerSize); | 
|  | 1791       EmitLoadStoreICSlot(expr->LiteralFeedbackSlot()); | 
|  | 1792       Handle<Code> ic = | 
|  | 1793           CodeFactory::KeyedStoreIC(isolate(), language_mode()).code(); | 
|  | 1794       CallIC(ic); | 
|  | 1795     } else if (has_fast_elements) { | 
| 1789       int offset = FixedArray::kHeaderSize + (array_index * kPointerSize); | 1796       int offset = FixedArray::kHeaderSize + (array_index * kPointerSize); | 
| 1790       __ Peek(x6, kPointerSize);  // Copy of array literal. | 1797       __ Peek(x6, kPointerSize);  // Copy of array literal. | 
| 1791       __ Ldr(x1, FieldMemOperand(x6, JSObject::kElementsOffset)); | 1798       __ Ldr(x1, FieldMemOperand(x6, JSObject::kElementsOffset)); | 
| 1792       __ Str(result_register(), FieldMemOperand(x1, offset)); | 1799       __ Str(result_register(), FieldMemOperand(x1, offset)); | 
| 1793       // Update the write barrier for the array store. | 1800       // Update the write barrier for the array store. | 
| 1794       __ RecordWriteField(x1, offset, result_register(), x10, | 1801       __ RecordWriteField(x1, offset, result_register(), x10, | 
| 1795                           kLRHasBeenSaved, kDontSaveFPRegs, | 1802                           kLRHasBeenSaved, kDontSaveFPRegs, | 
| 1796                           EMIT_REMEMBERED_SET, INLINE_SMI_CHECK); | 1803                           EMIT_REMEMBERED_SET, INLINE_SMI_CHECK); | 
| 1797     } else { | 1804     } else { | 
| 1798       __ Mov(x3, Smi::FromInt(array_index)); | 1805       __ Mov(x3, Smi::FromInt(array_index)); | 
| (...skipping 3468 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5267   } | 5274   } | 
| 5268 | 5275 | 
| 5269   return INTERRUPT; | 5276   return INTERRUPT; | 
| 5270 } | 5277 } | 
| 5271 | 5278 | 
| 5272 | 5279 | 
| 5273 }  // namespace internal | 5280 }  // namespace internal | 
| 5274 }  // namespace v8 | 5281 }  // namespace v8 | 
| 5275 | 5282 | 
| 5276 #endif  // V8_TARGET_ARCH_ARM64 | 5283 #endif  // V8_TARGET_ARCH_ARM64 | 
| OLD | NEW | 
|---|