< prev index next >

src/hotspot/share/gc/z/zNMethodTableEntry.hpp

Print this page

        

*** 30,47 **** // // NMethod table entry layout // -------------------------- // // 6 ! // 3 3 2 1 0 ! // +--------------------------------------------------------------------+-+-+-+ ! // |11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111|1|1|1| ! // +--------------------------------------------------------------------+-+-+-+ ! // | | | | ! // | 2-2 Non-immediate Oops Flag (1-bits) * | | // | | | ! // | 1-1 Immediate Oops/Unregistered Flag (1-bits) * | // | | // | 0-0 Registered Flag (1-bits) * // | // * 63-3 NMethod Address (61-bits) // --- 30,47 ---- // // NMethod table entry layout // -------------------------- // // 6 ! // 3 2 1 0 ! // +---------------------------------------------------------------------+-+-+ ! // |11111111 11111111 11111111 11111111 11111111 11111111 11111111 111111|1|1| ! // +---------------------------------------------------------------------+-+-+ // | | | ! // | | | ! // | | | ! // | 1-1 Unregistered Flag (1-bits) * | // | | // | 0-0 Registered Flag (1-bits) * // | // * 63-3 NMethod Address (61-bits) //
*** 50,92 **** class ZNMethodTableEntry : public CHeapObj<mtGC> { private: typedef ZBitField<uint64_t, bool, 0, 1> field_registered; typedef ZBitField<uint64_t, bool, 1, 1> field_unregistered; ! typedef ZBitField<uint64_t, bool, 1, 1> field_immediate_oops; ! typedef ZBitField<uint64_t, bool, 2, 1> field_non_immediate_oops; ! typedef ZBitField<uint64_t, nmethod*, 3, 61, 3> field_method; uint64_t _entry; public: explicit ZNMethodTableEntry(bool unregistered = false) : ! _entry(field_unregistered::encode(unregistered) | ! field_registered::encode(false)) {} ! ! ZNMethodTableEntry(nmethod* method, bool non_immediate_oops, bool immediate_oops) : ! _entry(field_method::encode(method) | ! field_non_immediate_oops::encode(non_immediate_oops) | ! field_immediate_oops::encode(immediate_oops) | ! field_registered::encode(true)) {} bool registered() const { return field_registered::decode(_entry); } bool unregistered() const { return field_unregistered::decode(_entry); } - bool immediate_oops() const { - return field_immediate_oops::decode(_entry); - } - - bool non_immediate_oops() const { - return field_non_immediate_oops::decode(_entry); - } - nmethod* method() const { return field_method::decode(_entry); } }; --- 50,82 ---- class ZNMethodTableEntry : public CHeapObj<mtGC> { private: typedef ZBitField<uint64_t, bool, 0, 1> field_registered; typedef ZBitField<uint64_t, bool, 1, 1> field_unregistered; ! typedef ZBitField<uint64_t, nmethod*, 2, 62, 2> field_method; uint64_t _entry; public: explicit ZNMethodTableEntry(bool unregistered = false) : ! _entry(field_registered::encode(false) | ! field_unregistered::encode(unregistered) | ! field_method::encode(NULL)) {} ! ! explicit ZNMethodTableEntry(nmethod* method) : ! _entry(field_registered::encode(true) | ! field_unregistered::encode(false) | ! field_method::encode(method)) {} bool registered() const { return field_registered::decode(_entry); } bool unregistered() const { return field_unregistered::decode(_entry); } nmethod* method() const { return field_method::decode(_entry); } };
< prev index next >