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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
8 | 8 |
9 #include "arm64/assembler-arm64.h" | 9 #include "arm64/assembler-arm64.h" |
10 #include "code-stubs.h" | 10 #include "code-stubs.h" |
(...skipping 1003 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1014 __ Ldr(x11, MemOperand(x10)); | 1014 __ Ldr(x11, MemOperand(x10)); |
1015 __ CompareAndBranch(x11, kHoleNanInt64, ne, &fast_double_without_map_check); | 1015 __ CompareAndBranch(x11, kHoleNanInt64, ne, &fast_double_without_map_check); |
1016 __ JumpIfDictionaryInPrototypeChain(receiver, elements_map, x10, slow); | 1016 __ JumpIfDictionaryInPrototypeChain(receiver, elements_map, x10, slow); |
1017 | 1017 |
1018 __ Bind(&fast_double_without_map_check); | 1018 __ Bind(&fast_double_without_map_check); |
1019 __ StoreNumberToDoubleElements(value, | 1019 __ StoreNumberToDoubleElements(value, |
1020 key, | 1020 key, |
1021 elements, | 1021 elements, |
1022 x10, | 1022 x10, |
1023 d0, | 1023 d0, |
1024 d1, | |
1025 &transition_double_elements); | 1024 &transition_double_elements); |
1026 if (increment_length == kIncrementLength) { | 1025 if (increment_length == kIncrementLength) { |
1027 // Add 1 to receiver->length. | 1026 // Add 1 to receiver->length. |
1028 __ Add(x10, key, Smi::FromInt(1)); | 1027 __ Add(x10, key, Smi::FromInt(1)); |
1029 __ Str(x10, FieldMemOperand(receiver, JSArray::kLengthOffset)); | 1028 __ Str(x10, FieldMemOperand(receiver, JSArray::kLengthOffset)); |
1030 } | 1029 } |
1031 __ Ret(); | 1030 __ Ret(); |
1032 | 1031 |
1033 | 1032 |
1034 __ Bind(&transition_smi_elements); | 1033 __ Bind(&transition_smi_elements); |
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1375 ASSERT(to_patch->Mask(TestBranchMask) == TBNZ); | 1374 ASSERT(to_patch->Mask(TestBranchMask) == TBNZ); |
1376 // This is JumpIfSmi(smi_reg, branch_imm). | 1375 // This is JumpIfSmi(smi_reg, branch_imm). |
1377 patcher.tbz(smi_reg, 0, branch_imm); | 1376 patcher.tbz(smi_reg, 0, branch_imm); |
1378 } | 1377 } |
1379 } | 1378 } |
1380 | 1379 |
1381 | 1380 |
1382 } } // namespace v8::internal | 1381 } } // namespace v8::internal |
1383 | 1382 |
1384 #endif // V8_TARGET_ARCH_ARM64 | 1383 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |