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/base/bits.h" | 9 #include "src/base/bits.h" |
10 #include "src/base/division-by-constant.h" | 10 #include "src/base/division-by-constant.h" |
(...skipping 4195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4206 SeededNumberDictionary::kElementsStartOffset)); | 4206 SeededNumberDictionary::kElementsStartOffset)); |
4207 Cmp(key, scratch3); | 4207 Cmp(key, scratch3); |
4208 if (i != (kNumberDictionaryProbes - 1)) { | 4208 if (i != (kNumberDictionaryProbes - 1)) { |
4209 B(eq, &done); | 4209 B(eq, &done); |
4210 } else { | 4210 } else { |
4211 B(ne, miss); | 4211 B(ne, miss); |
4212 } | 4212 } |
4213 } | 4213 } |
4214 | 4214 |
4215 Bind(&done); | 4215 Bind(&done); |
4216 // Check that the value is a normal property. | 4216 // Check that the value is a field property. |
4217 const int kDetailsOffset = | 4217 const int kDetailsOffset = |
4218 SeededNumberDictionary::kElementsStartOffset + 2 * kPointerSize; | 4218 SeededNumberDictionary::kElementsStartOffset + 2 * kPointerSize; |
4219 Ldrsw(scratch1, UntagSmiFieldMemOperand(scratch2, kDetailsOffset)); | 4219 Ldrsw(scratch1, UntagSmiFieldMemOperand(scratch2, kDetailsOffset)); |
| 4220 DCHECK_EQ(FIELD, 0); |
4220 TestAndBranchIfAnySet(scratch1, PropertyDetails::TypeField::kMask, miss); | 4221 TestAndBranchIfAnySet(scratch1, PropertyDetails::TypeField::kMask, miss); |
4221 | 4222 |
4222 // Get the value at the masked, scaled index and return. | 4223 // Get the value at the masked, scaled index and return. |
4223 const int kValueOffset = | 4224 const int kValueOffset = |
4224 SeededNumberDictionary::kElementsStartOffset + kPointerSize; | 4225 SeededNumberDictionary::kElementsStartOffset + kPointerSize; |
4225 Ldr(result, FieldMemOperand(scratch2, kValueOffset)); | 4226 Ldr(result, FieldMemOperand(scratch2, kValueOffset)); |
4226 } | 4227 } |
4227 | 4228 |
4228 | 4229 |
4229 void MacroAssembler::RememberedSetHelper(Register object, // For debug tests. | 4230 void MacroAssembler::RememberedSetHelper(Register object, // For debug tests. |
(...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5388 } | 5389 } |
5389 } | 5390 } |
5390 | 5391 |
5391 | 5392 |
5392 #undef __ | 5393 #undef __ |
5393 | 5394 |
5394 | 5395 |
5395 } } // namespace v8::internal | 5396 } } // namespace v8::internal |
5396 | 5397 |
5397 #endif // V8_TARGET_ARCH_ARM64 | 5398 #endif // V8_TARGET_ARCH_ARM64 |
OLD | NEW |