OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef VM_OBJECT_H_ | 5 #ifndef VM_OBJECT_H_ |
6 #define VM_OBJECT_H_ | 6 #define VM_OBJECT_H_ |
7 | 7 |
8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
10 #include "platform/utils.h" | 10 #include "platform/utils.h" |
(...skipping 1372 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1383 | 1383 |
1384 bool is_native() const { return NativeBit::decode(raw_ptr()->kind_tag_); } | 1384 bool is_native() const { return NativeBit::decode(raw_ptr()->kind_tag_); } |
1385 void set_is_native(bool value) const; | 1385 void set_is_native(bool value) const; |
1386 | 1386 |
1387 bool is_abstract() const { return AbstractBit::decode(raw_ptr()->kind_tag_); } | 1387 bool is_abstract() const { return AbstractBit::decode(raw_ptr()->kind_tag_); } |
1388 void set_is_abstract(bool value) const; | 1388 void set_is_abstract(bool value) const; |
1389 | 1389 |
1390 bool IsInlineable() const; | 1390 bool IsInlineable() const; |
1391 void set_is_inlinable(bool value) const; | 1391 void set_is_inlinable(bool value) const; |
1392 | 1392 |
| 1393 bool is_visible() const { |
| 1394 return VisibleBit::decode(raw_ptr()->kind_tag_); |
| 1395 } |
| 1396 void set_is_visible(bool value) const; |
| 1397 |
1393 enum IntrinsicKind { | 1398 enum IntrinsicKind { |
1394 kUnknownIntrinsic = 0, // Initial value. | 1399 kUnknownIntrinsic = 0, // Initial value. |
1395 kIsIntrinsic, | 1400 kIsIntrinsic, |
1396 kIsNotIntrinsic, | 1401 kIsNotIntrinsic, |
1397 }; | 1402 }; |
1398 | 1403 |
1399 IntrinsicKind intrinsic_kind() const { | 1404 IntrinsicKind intrinsic_kind() const { |
1400 return IntrinsicKindBits::decode(raw_ptr()->kind_tag_); | 1405 return IntrinsicKindBits::decode(raw_ptr()->kind_tag_); |
1401 } | 1406 } |
1402 void set_intrinsic_kind(IntrinsicKind value) const; | 1407 void set_intrinsic_kind(IntrinsicKind value) const; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1538 private: | 1543 private: |
1539 enum KindTagBits { | 1544 enum KindTagBits { |
1540 kStaticBit = 0, | 1545 kStaticBit = 0, |
1541 kConstBit = 1, | 1546 kConstBit = 1, |
1542 kOptimizableBit = 2, | 1547 kOptimizableBit = 2, |
1543 kInlinableBit = 3, | 1548 kInlinableBit = 3, |
1544 kHasFinallyBit = 4, | 1549 kHasFinallyBit = 4, |
1545 kNativeBit = 5, | 1550 kNativeBit = 5, |
1546 kAbstractBit = 6, | 1551 kAbstractBit = 6, |
1547 kExternalBit = 7, | 1552 kExternalBit = 7, |
1548 kIntrinsicTagBit = 8, | 1553 kVisibleBit = 8, |
| 1554 kIntrinsicTagBit = 9, |
1549 kIntrinsicTagSize = 2, | 1555 kIntrinsicTagSize = 2, |
1550 kKindTagBit = 10, | 1556 kKindTagBit = 11, |
1551 kKindTagSize = 4, | 1557 kKindTagSize = 4, |
1552 }; | 1558 }; |
1553 class StaticBit : public BitField<bool, kStaticBit, 1> {}; | 1559 class StaticBit : public BitField<bool, kStaticBit, 1> {}; |
1554 class ConstBit : public BitField<bool, kConstBit, 1> {}; | 1560 class ConstBit : public BitField<bool, kConstBit, 1> {}; |
1555 class OptimizableBit : public BitField<bool, kOptimizableBit, 1> {}; | 1561 class OptimizableBit : public BitField<bool, kOptimizableBit, 1> {}; |
1556 class InlinableBit : public BitField<bool, kInlinableBit, 1> {}; | 1562 class InlinableBit : public BitField<bool, kInlinableBit, 1> {}; |
1557 class HasFinallyBit : public BitField<bool, kHasFinallyBit, 1> {}; | 1563 class HasFinallyBit : public BitField<bool, kHasFinallyBit, 1> {}; |
1558 class NativeBit : public BitField<bool, kNativeBit, 1> {}; | 1564 class NativeBit : public BitField<bool, kNativeBit, 1> {}; |
1559 class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; | 1565 class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; |
1560 class ExternalBit : public BitField<bool, kExternalBit, 1> {}; | 1566 class ExternalBit : public BitField<bool, kExternalBit, 1> {}; |
| 1567 class VisibleBit : public BitField<bool, kVisibleBit, 1> {}; |
1561 class IntrinsicKindBits : | 1568 class IntrinsicKindBits : |
1562 public BitField<Function::IntrinsicKind, | 1569 public BitField<Function::IntrinsicKind, |
1563 kIntrinsicTagBit, kIntrinsicTagSize> {}; // NOLINT | 1570 kIntrinsicTagBit, kIntrinsicTagSize> {}; // NOLINT |
1564 class KindBits : | 1571 class KindBits : |
1565 public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT | 1572 public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT |
1566 | 1573 |
1567 void set_name(const String& value) const; | 1574 void set_name(const String& value) const; |
1568 void set_kind(RawFunction::Kind value) const; | 1575 void set_kind(RawFunction::Kind value) const; |
1569 void set_is_static(bool value) const; | 1576 void set_is_static(bool value) const; |
1570 void set_is_const(bool value) const; | 1577 void set_is_const(bool value) const; |
(...skipping 4704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6275 | 6282 |
6276 | 6283 |
6277 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 6284 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
6278 intptr_t index) { | 6285 intptr_t index) { |
6279 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 6286 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
6280 } | 6287 } |
6281 | 6288 |
6282 } // namespace dart | 6289 } // namespace dart |
6283 | 6290 |
6284 #endif // VM_OBJECT_H_ | 6291 #endif // VM_OBJECT_H_ |
OLD | NEW |