Chromium Code Reviews| Index: runtime/vm/object.h |
| =================================================================== |
| --- runtime/vm/object.h (revision 14433) |
| +++ runtime/vm/object.h (working copy) |
| @@ -1273,6 +1273,17 @@ |
| bool IsInlineable() const; |
| void set_is_inlinable(bool value) const; |
| + enum IntrinsicKind { |
| + kUnknownIntrinsic, // Initial value. |
|
siva
2012/11/01 23:04:06
kUnknownIntrinsic = 0,
srdjan
2012/11/01 23:08:18
Done.
|
| + kIsIntrinsic, |
| + kIsNotIntrinsic, |
| + }; |
| + |
| + IntrinsicKind intrinsic_kind() const { |
| + return IntrinsicKindBits::decode(raw_ptr()->kind_tag_); |
| + } |
| + void set_intrinsic_kind(IntrinsicKind value) const; |
| + |
| bool HasOptimizedCode() const; |
| // Returns true if the argument counts are valid for calling this function. |
| @@ -1402,15 +1413,17 @@ |
| private: |
| enum KindTagBits { |
| - kStaticBit = 1, |
| - kConstBit, |
| - kOptimizableBit, |
| - kInlinableBit, |
| - kHasFinallyBit, |
| - kNativeBit, |
| - kAbstractBit, |
| - kExternalBit, |
| - kKindTagBit, |
| + kStaticBit = 0, |
| + kConstBit = 1, |
| + kOptimizableBit = 2, |
| + kInlinableBit = 3, |
| + kHasFinallyBit = 4, |
| + kNativeBit = 5, |
| + kAbstractBit = 6, |
| + kExternalBit = 7, |
| + kIntrinsicTagBit = 8, |
| + kIntrinsicTagSize = 2, |
| + kKindTagBit = 10, |
| kKindTagSize = 4, |
| }; |
| class StaticBit : public BitField<bool, kStaticBit, 1> {}; |
| @@ -1421,6 +1434,9 @@ |
| class NativeBit : public BitField<bool, kNativeBit, 1> {}; |
| class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; |
| class ExternalBit : public BitField<bool, kExternalBit, 1> {}; |
| + class IntrinsicKindBits : |
| + public BitField<Function::IntrinsicKind, |
| + kIntrinsicTagBit, kIntrinsicTagSize> {}; // NOLINT |
| class KindBits : |
| public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT |