diff options
Diffstat (limited to 'runtime/modifiers.h')
-rw-r--r-- | runtime/modifiers.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/runtime/modifiers.h b/runtime/modifiers.h index 68ab4a4035..4b790a0f03 100644 --- a/runtime/modifiers.h +++ b/runtime/modifiers.h @@ -79,6 +79,11 @@ static constexpr uint32_t kAccMustCountLocks = 0x04000000; // method (ru // virtual call. static constexpr uint32_t kAccSingleImplementation = 0x08000000; // method (runtime) +// Not currently used, except for intrinsic methods where these bits +// are part of the intrinsic ordinal. +static constexpr uint32_t kAccMayBeUnusedBits = 0x70000000; + +// Set by the compiler driver when compiling boot classes with instrinsic methods. static constexpr uint32_t kAccIntrinsic = 0x80000000; // method (runtime) // Special runtime-only flags. @@ -89,8 +94,10 @@ static constexpr uint32_t kAccHasDefaultMethod = 0x40000000; // class/ancestor overrides finalize() static constexpr uint32_t kAccClassIsFinalizable = 0x80000000; -static constexpr uint32_t kAccFlagsNotUsedByIntrinsic = 0x00FFFFFF; -static constexpr uint32_t kAccMaxIntrinsic = 0x7F; +// Continuous sequence of bits used to hold the ordinal of an intrinsic method. Flags +// which overlap are not valid when kAccIntrinsic is set. +static constexpr uint32_t kAccIntrinsicBits = kAccMayBeUnusedBits | kAccSingleImplementation | + kAccMustCountLocks | kAccCompileDontBother | kAccDefaultConflict | kAccPreviouslyWarm; // Valid (meaningful) bits for a field. static constexpr uint32_t kAccValidFieldFlags = kAccPublic | kAccPrivate | kAccProtected | |