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/codegen.h" | 9 #include "src/codegen.h" |
10 #include "src/debug/debug.h" | 10 #include "src/debug/debug.h" |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
429 Register unused_props = x10; | 429 Register unused_props = x10; |
430 Register inobject_props = x11; | 430 Register inobject_props = x11; |
431 Register inst_sizes_or_attrs = x11; | 431 Register inst_sizes_or_attrs = x11; |
432 Register prealloc_fields = x10; | 432 Register prealloc_fields = x10; |
433 __ Ldr(inst_sizes_or_attrs, | 433 __ Ldr(inst_sizes_or_attrs, |
434 FieldMemOperand(init_map, Map::kInstanceAttributesOffset)); | 434 FieldMemOperand(init_map, Map::kInstanceAttributesOffset)); |
435 __ Ubfx(unused_props, inst_sizes_or_attrs, | 435 __ Ubfx(unused_props, inst_sizes_or_attrs, |
436 Map::kUnusedPropertyFieldsByte * kBitsPerByte, kBitsPerByte); | 436 Map::kUnusedPropertyFieldsByte * kBitsPerByte, kBitsPerByte); |
437 __ Ldr(inst_sizes_or_attrs, | 437 __ Ldr(inst_sizes_or_attrs, |
438 FieldMemOperand(init_map, Map::kInstanceSizesOffset)); | 438 FieldMemOperand(init_map, Map::kInstanceSizesOffset)); |
439 __ Ubfx(inobject_props, inst_sizes_or_attrs, | 439 __ Ubfx( |
440 Map::kInObjectPropertiesByte * kBitsPerByte, kBitsPerByte); | 440 inobject_props, inst_sizes_or_attrs, |
| 441 Map::kInObjectPropertiesOrConstructorFunctionIndexByte * kBitsPerByte, |
| 442 kBitsPerByte); |
441 __ Sub(prealloc_fields, inobject_props, unused_props); | 443 __ Sub(prealloc_fields, inobject_props, unused_props); |
442 | 444 |
443 // Calculate number of property fields in the object. | 445 // Calculate number of property fields in the object. |
444 Register prop_fields = x6; | 446 Register prop_fields = x6; |
445 __ Sub(prop_fields, obj_size, JSObject::kHeaderSize / kPointerSize); | 447 __ Sub(prop_fields, obj_size, JSObject::kHeaderSize / kPointerSize); |
446 | 448 |
447 if (!is_api_function) { | 449 if (!is_api_function) { |
448 Label no_inobject_slack_tracking; | 450 Label no_inobject_slack_tracking; |
449 | 451 |
450 // Check if slack tracking is enabled. | 452 // Check if slack tracking is enabled. |
(...skipping 1476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1927 } | 1929 } |
1928 } | 1930 } |
1929 | 1931 |
1930 | 1932 |
1931 #undef __ | 1933 #undef __ |
1932 | 1934 |
1933 } // namespace internal | 1935 } // namespace internal |
1934 } // namespace v8 | 1936 } // namespace v8 |
1935 | 1937 |
1936 #endif // V8_TARGET_ARCH_ARM | 1938 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |