diff options
Diffstat (limited to 'compiler/dex/mir_method_info.h')
-rw-r--r-- | compiler/dex/mir_method_info.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/dex/mir_method_info.h b/compiler/dex/mir_method_info.h index f927f1d..efe92f3 100644 --- a/compiler/dex/mir_method_info.h +++ b/compiler/dex/mir_method_info.h @@ -123,6 +123,10 @@ class MirMethodLoweringInfo : public MirMethodInfo { return (flags_ & kFlagFastPath) != 0u; } + bool NeedsClassInitialization() const { + return (flags_ & kFlagNeedsClassInitialization) != 0u; + } + InvokeType GetInvokeType() const { return static_cast<InvokeType>((flags_ >> kBitInvokeTypeBegin) & kInvokeTypeMask); } @@ -158,10 +162,12 @@ class MirMethodLoweringInfo : public MirMethodInfo { kBitInvokeTypeEnd = kBitInvokeTypeBegin + 3, // 3 bits for invoke type. kBitSharpTypeBegin, kBitSharpTypeEnd = kBitSharpTypeBegin + 3, // 3 bits for sharp type. - kMethodLoweringInfoEnd = kBitSharpTypeEnd + kBitNeedsClassInitialization = kBitSharpTypeEnd, + kMethodLoweringInfoEnd }; COMPILE_ASSERT(kMethodLoweringInfoEnd <= 16, too_many_flags); static constexpr uint16_t kFlagFastPath = 1u << kBitFastPath; + static constexpr uint16_t kFlagNeedsClassInitialization = 1u << kBitNeedsClassInitialization; static constexpr uint16_t kInvokeTypeMask = 7u; COMPILE_ASSERT((1u << (kBitInvokeTypeEnd - kBitInvokeTypeBegin)) - 1u == kInvokeTypeMask, assert_invoke_type_bits_ok); |