17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 #include "precompiled.hpp"
25 #include "code/relocInfo.hpp"
26 #include "code/nativeInst.hpp"
27 #include "code/nmethod.hpp"
28 #include "gc/z/zHash.inline.hpp"
29 #include "gc/z/zNMethodTable.hpp"
30 #include "logging/log.hpp"
31 #include "memory/allocation.inline.hpp"
32 #include "memory/resourceArea.hpp"
33 #include "oops/oop.inline.hpp"
34 #include "runtime/atomic.hpp"
35 #include "utilities/debug.hpp"
36
37 class ZNMethodWithImmediateOops VALUE_OBJ_CLASS_SPEC {
38 private:
39 nmethod* const _nm;
40 const size_t _nimmediate_oops;
41
42 static size_t header_size();
43
44 ZNMethodWithImmediateOops(nmethod* nm, const GrowableArray<oop*>& immediate_oops);
45
46 public:
47 static ZNMethodWithImmediateOops* create(nmethod* nm, const GrowableArray<oop*>& immediate_oops);
48 static void destroy(ZNMethodWithImmediateOops* nmi);
49
50 nmethod* method() const;
51 size_t immediate_oops_count() const;
52 oop** immediate_oops_begin() const;
53 oop** immediate_oops_begin_safe() const;
54 oop** immediate_oops_end() const;
55 };
56
57 size_t ZNMethodWithImmediateOops::header_size() {
|
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 */
23
24 #include "precompiled.hpp"
25 #include "code/relocInfo.hpp"
26 #include "code/nativeInst.hpp"
27 #include "code/nmethod.hpp"
28 #include "gc/z/zHash.inline.hpp"
29 #include "gc/z/zNMethodTable.hpp"
30 #include "logging/log.hpp"
31 #include "memory/allocation.inline.hpp"
32 #include "memory/resourceArea.hpp"
33 #include "oops/oop.inline.hpp"
34 #include "runtime/atomic.hpp"
35 #include "utilities/debug.hpp"
36
37 class ZNMethodWithImmediateOops {
38 private:
39 nmethod* const _nm;
40 const size_t _nimmediate_oops;
41
42 static size_t header_size();
43
44 ZNMethodWithImmediateOops(nmethod* nm, const GrowableArray<oop*>& immediate_oops);
45
46 public:
47 static ZNMethodWithImmediateOops* create(nmethod* nm, const GrowableArray<oop*>& immediate_oops);
48 static void destroy(ZNMethodWithImmediateOops* nmi);
49
50 nmethod* method() const;
51 size_t immediate_oops_count() const;
52 oop** immediate_oops_begin() const;
53 oop** immediate_oops_begin_safe() const;
54 oop** immediate_oops_end() const;
55 };
56
57 size_t ZNMethodWithImmediateOops::header_size() {
|