OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #ifndef V8_LAYOUT_DESCRIPTOR_INL_H_ | 5 #ifndef V8_LAYOUT_DESCRIPTOR_INL_H_ |
6 #define V8_LAYOUT_DESCRIPTOR_INL_H_ | 6 #define V8_LAYOUT_DESCRIPTOR_INL_H_ |
7 | 7 |
8 #include "src/layout-descriptor.h" | 8 #include "src/layout-descriptor.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 | 49 |
50 *layout_word_index = field_index / kNumberOfBits; | 50 *layout_word_index = field_index / kNumberOfBits; |
51 CHECK((!IsSmi() && (*layout_word_index < length())) || | 51 CHECK((!IsSmi() && (*layout_word_index < length())) || |
52 (IsSmi() && (*layout_word_index < 1))); | 52 (IsSmi() && (*layout_word_index < 1))); |
53 | 53 |
54 *layout_bit_index = field_index % kNumberOfBits; | 54 *layout_bit_index = field_index % kNumberOfBits; |
55 return true; | 55 return true; |
56 } | 56 } |
57 | 57 |
58 | 58 |
| 59 LayoutDescriptor* LayoutDescriptor::SetRawData(int field_index) { |
| 60 return SetTagged(field_index, false); |
| 61 } |
| 62 |
| 63 |
59 LayoutDescriptor* LayoutDescriptor::SetTagged(int field_index, bool tagged) { | 64 LayoutDescriptor* LayoutDescriptor::SetTagged(int field_index, bool tagged) { |
60 int layout_word_index; | 65 int layout_word_index; |
61 int layout_bit_index; | 66 int layout_bit_index; |
62 | 67 |
63 if (!GetIndexes(field_index, &layout_word_index, &layout_bit_index)) { | 68 if (!GetIndexes(field_index, &layout_word_index, &layout_bit_index)) { |
64 CHECK(false); | 69 CHECK(false); |
65 return this; | 70 return this; |
66 } | 71 } |
67 uint32_t layout_mask = static_cast<uint32_t>(1) << layout_bit_index; | 72 uint32_t layout_mask = static_cast<uint32_t>(1) << layout_bit_index; |
68 | 73 |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 // Object headers do not contain non-tagged fields. | 247 // Object headers do not contain non-tagged fields. |
243 if (offset_in_bytes < header_size_) return true; | 248 if (offset_in_bytes < header_size_) return true; |
244 int field_index = (offset_in_bytes - header_size_) / kPointerSize; | 249 int field_index = (offset_in_bytes - header_size_) / kPointerSize; |
245 | 250 |
246 return layout_descriptor_->IsTagged(field_index); | 251 return layout_descriptor_->IsTagged(field_index); |
247 } | 252 } |
248 } | 253 } |
249 } // namespace v8::internal | 254 } // namespace v8::internal |
250 | 255 |
251 #endif // V8_LAYOUT_DESCRIPTOR_INL_H_ | 256 #endif // V8_LAYOUT_DESCRIPTOR_INL_H_ |
OLD | NEW |