summaryrefslogtreecommitdiffstats
path: root/compiler/dex/mir_method_info.h
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/dex/mir_method_info.h')
-rw-r--r--compiler/dex/mir_method_info.h8
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);