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 1374 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1385 | 1385 |
1386 bool is_native() const { return NativeBit::decode(raw_ptr()->kind_tag_); } | 1386 bool is_native() const { return NativeBit::decode(raw_ptr()->kind_tag_); } |
1387 void set_is_native(bool value) const; | 1387 void set_is_native(bool value) const; |
1388 | 1388 |
1389 bool is_abstract() const { return AbstractBit::decode(raw_ptr()->kind_tag_); } | 1389 bool is_abstract() const { return AbstractBit::decode(raw_ptr()->kind_tag_); } |
1390 void set_is_abstract(bool value) const; | 1390 void set_is_abstract(bool value) const; |
1391 | 1391 |
1392 bool IsInlineable() const; | 1392 bool IsInlineable() const; |
1393 void set_is_inlinable(bool value) const; | 1393 void set_is_inlinable(bool value) const; |
1394 | 1394 |
| 1395 bool is_visible() const { |
| 1396 return VisibleBit::decode(raw_ptr()->kind_tag_); |
| 1397 } |
| 1398 void set_is_visible(bool value) const; |
| 1399 |
1395 enum IntrinsicKind { | 1400 enum IntrinsicKind { |
1396 kUnknownIntrinsic = 0, // Initial value. | 1401 kUnknownIntrinsic = 0, // Initial value. |
1397 kIsIntrinsic, | 1402 kIsIntrinsic, |
1398 kIsNotIntrinsic, | 1403 kIsNotIntrinsic, |
1399 }; | 1404 }; |
1400 | 1405 |
1401 IntrinsicKind intrinsic_kind() const { | 1406 IntrinsicKind intrinsic_kind() const { |
1402 return IntrinsicKindBits::decode(raw_ptr()->kind_tag_); | 1407 return IntrinsicKindBits::decode(raw_ptr()->kind_tag_); |
1403 } | 1408 } |
1404 void set_intrinsic_kind(IntrinsicKind value) const; | 1409 void set_intrinsic_kind(IntrinsicKind value) const; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1540 private: | 1545 private: |
1541 enum KindTagBits { | 1546 enum KindTagBits { |
1542 kStaticBit = 0, | 1547 kStaticBit = 0, |
1543 kConstBit = 1, | 1548 kConstBit = 1, |
1544 kOptimizableBit = 2, | 1549 kOptimizableBit = 2, |
1545 kInlinableBit = 3, | 1550 kInlinableBit = 3, |
1546 kHasFinallyBit = 4, | 1551 kHasFinallyBit = 4, |
1547 kNativeBit = 5, | 1552 kNativeBit = 5, |
1548 kAbstractBit = 6, | 1553 kAbstractBit = 6, |
1549 kExternalBit = 7, | 1554 kExternalBit = 7, |
1550 kIntrinsicTagBit = 8, | 1555 kVisibleBit = 8, |
| 1556 kIntrinsicTagBit = 9, |
1551 kIntrinsicTagSize = 2, | 1557 kIntrinsicTagSize = 2, |
1552 kKindTagBit = 10, | 1558 kKindTagBit = 11, |
1553 kKindTagSize = 4, | 1559 kKindTagSize = 4, |
1554 }; | 1560 }; |
1555 class StaticBit : public BitField<bool, kStaticBit, 1> {}; | 1561 class StaticBit : public BitField<bool, kStaticBit, 1> {}; |
1556 class ConstBit : public BitField<bool, kConstBit, 1> {}; | 1562 class ConstBit : public BitField<bool, kConstBit, 1> {}; |
1557 class OptimizableBit : public BitField<bool, kOptimizableBit, 1> {}; | 1563 class OptimizableBit : public BitField<bool, kOptimizableBit, 1> {}; |
1558 class InlinableBit : public BitField<bool, kInlinableBit, 1> {}; | 1564 class InlinableBit : public BitField<bool, kInlinableBit, 1> {}; |
1559 class HasFinallyBit : public BitField<bool, kHasFinallyBit, 1> {}; | 1565 class HasFinallyBit : public BitField<bool, kHasFinallyBit, 1> {}; |
1560 class NativeBit : public BitField<bool, kNativeBit, 1> {}; | 1566 class NativeBit : public BitField<bool, kNativeBit, 1> {}; |
1561 class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; | 1567 class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; |
1562 class ExternalBit : public BitField<bool, kExternalBit, 1> {}; | 1568 class ExternalBit : public BitField<bool, kExternalBit, 1> {}; |
| 1569 class VisibleBit : public BitField<bool, kVisibleBit, 1> {}; |
1563 class IntrinsicKindBits : | 1570 class IntrinsicKindBits : |
1564 public BitField<Function::IntrinsicKind, | 1571 public BitField<Function::IntrinsicKind, |
1565 kIntrinsicTagBit, kIntrinsicTagSize> {}; // NOLINT | 1572 kIntrinsicTagBit, kIntrinsicTagSize> {}; // NOLINT |
1566 class KindBits : | 1573 class KindBits : |
1567 public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT | 1574 public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT |
1568 | 1575 |
1569 void set_name(const String& value) const; | 1576 void set_name(const String& value) const; |
1570 void set_kind(RawFunction::Kind value) const; | 1577 void set_kind(RawFunction::Kind value) const; |
1571 void set_is_static(bool value) const; | 1578 void set_is_static(bool value) const; |
1572 void set_is_const(bool value) const; | 1579 void set_is_const(bool value) const; |
(...skipping 4702 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 |