| 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 "src/v8.h" | 5 #include "src/v8.h" |
| 6 | 6 |
| 7 #if V8_TARGET_ARCH_ARM64 | 7 #if V8_TARGET_ARCH_ARM64 |
| 8 | 8 |
| 9 #include "src/code-stubs.h" | 9 #include "src/code-stubs.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 1157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1168 | 1168 |
| 1169 __ EnumLengthUntagged(x1, x0); | 1169 __ EnumLengthUntagged(x1, x0); |
| 1170 __ Cbz(x1, &no_descriptors); | 1170 __ Cbz(x1, &no_descriptors); |
| 1171 | 1171 |
| 1172 __ LoadInstanceDescriptors(x0, x2); | 1172 __ LoadInstanceDescriptors(x0, x2); |
| 1173 __ Ldr(x2, FieldMemOperand(x2, DescriptorArray::kEnumCacheOffset)); | 1173 __ Ldr(x2, FieldMemOperand(x2, DescriptorArray::kEnumCacheOffset)); |
| 1174 __ Ldr(x2, | 1174 __ Ldr(x2, |
| 1175 FieldMemOperand(x2, DescriptorArray::kEnumCacheBridgeCacheOffset)); | 1175 FieldMemOperand(x2, DescriptorArray::kEnumCacheBridgeCacheOffset)); |
| 1176 | 1176 |
| 1177 // Set up the four remaining stack slots. | 1177 // Set up the four remaining stack slots. |
| 1178 __ Push(x0); // Map. | 1178 __ Push(x0, x2); // Map, enumeration cache. |
| 1179 __ Mov(x0, Smi::FromInt(0)); | 1179 __ SmiTagAndPush(x1, xzr); // Enum cache length, zero (both as smis). |
| 1180 // Push enumeration cache, enumeration cache length (as smi) and zero. | |
| 1181 __ SmiTag(x1); | |
| 1182 __ Push(x2, x1, x0); | |
| 1183 __ B(&loop); | 1180 __ B(&loop); |
| 1184 | 1181 |
| 1185 __ Bind(&no_descriptors); | 1182 __ Bind(&no_descriptors); |
| 1186 __ Drop(1); | 1183 __ Drop(1); |
| 1187 __ B(&exit); | 1184 __ B(&exit); |
| 1188 | 1185 |
| 1189 // We got a fixed array in register x0. Iterate through that. | 1186 // We got a fixed array in register x0. Iterate through that. |
| 1190 __ Bind(&fixed_array); | 1187 __ Bind(&fixed_array); |
| 1191 | 1188 |
| 1192 __ LoadObject(x1, FeedbackVector()); | 1189 __ LoadObject(x1, FeedbackVector()); |
| (...skipping 3703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4896 return previous_; | 4893 return previous_; |
| 4897 } | 4894 } |
| 4898 | 4895 |
| 4899 | 4896 |
| 4900 #undef __ | 4897 #undef __ |
| 4901 | 4898 |
| 4902 | 4899 |
| 4903 } } // namespace v8::internal | 4900 } } // namespace v8::internal |
| 4904 | 4901 |
| 4905 #endif // V8_TARGET_ARCH_ARM64 | 4902 #endif // V8_TARGET_ARCH_ARM64 |
| OLD | NEW |