1472N/A * or visit www.oracle.com if you need additional information or have any
1879N/A#include "precompiled.hpp"
1879N/A#include "code/codeCache.hpp"
1879N/A#include "code/compiledIC.hpp"
2677N/A#include "code/dependencies.hpp"
1879N/A#include "code/nmethod.hpp"
1879N/A#include "code/scopeDesc.hpp"
1879N/A#include "compiler/abstractCompiler.hpp"
2252N/A#include "compiler/compileBroker.hpp"
1879N/A#include "compiler/compileLog.hpp"
1879N/A#include "compiler/compilerOracle.hpp"
1879N/A#include "compiler/disassembler.hpp"
1879N/A#include "interpreter/bytecode.hpp"
1879N/A#include "oops/methodDataOop.hpp"
1879N/A#include "prims/jvmtiRedefineClassesTrace.hpp"
2076N/A#include "prims/jvmtiImpl.hpp"
1879N/A#include "runtime/sharedRuntime.hpp"
1879N/A#include "runtime/sweeper.hpp"
1879N/A#include "utilities/dtrace.hpp"
1879N/A#include "utilities/events.hpp"
1879N/A#include "utilities/xmlstream.hpp"
1879N/A#include "shark/sharkCompiler.hpp"
0N/A#ifdef DTRACE_ENABLED
1155N/A if (compiler() == NULL || method() == NULL) return false; // can happen during debug printing
0N/A if (is_native_method()) return false;
1155N/A if (compiler() == NULL || method() == NULL) return false; // can happen during debug printing
0N/A if (is_native_method()) return false;
1612N/A if (is_native_method()) return false;
0N/A if (nmethod_count == 0) return;
0N/A if (native_nmethod_count == 0) return;
0N/A / pc_desc_queries);
0N/A return handler_at(i);
0N/A if (!approximate)
0N/A for (int i = 0; i < cache_size; i++)
0N/A for (int i = 0; i < cache_size; i++) {
1682N/A consts_size() +
1668N/A insts_size() +
0N/A scopes_data_size() +
0N/A scopes_pcs_size() +
4012N/A _has_wide_vectors = 0;
1564N/A _lock_count = 0;
1646N/A _oops_are_stale = false;
1564N/A#ifdef HAVE_DTRACE_H
1564N/A _trap_offset = 0;
2252N/A int compile_id,
0N/A int vep_offset,
0N/A int frame_complete,
0N/A int frame_size,
116N/A#ifdef HAVE_DTRACE_H
116N/A int vep_offset,
116N/A int trap_offset,
116N/A int frame_complete,
116N/A int frame_size) {
0N/A int compile_id,
0N/A int orig_pc_offset,
0N/A int comp_level
0N/A int nmethod_size,
2252N/A int compile_id,
0N/A int frame_size,
0N/A _exception_offset = 0;
0N/A _deoptimize_offset = 0;
0N/A _orig_pc_offset = 0;
0N/A if (PrintNativeNMethods) {
0N/A print_code();
0N/A if (PrintRelocations) {
116N/A#ifdef HAVE_DTRACE_H
116N/A int nmethod_size,
116N/A int frame_size)
116N/A _exception_offset = 0;
116N/A _deoptimize_offset = 0;
116N/A _orig_pc_offset = 0;
116N/A if (PrintNMethods) {
116N/A print_code();
116N/A if (PrintRelocations) {
0N/A int nmethod_size,
0N/A int compile_id,
0N/A int orig_pc_offset,
0N/A int frame_size,
0N/A int comp_level
0N/A _handler_table_offset = _dependencies_offset + round_to(dependencies->size_in_bytes (), oopSize);
0N/A _nul_chk_table_offset = _handler_table_offset + round_to(handler_table->size_in_bytes(), oopSize);
0N/A _nmethod_end_offset = _nul_chk_table_offset + round_to(nul_chk_table->size_in_bytes(), oopSize);
0N/A if (printnmethods || PrintDebugInfo || PrintRelocations || PrintDependencies || PrintExceptionHandlers) {
1703N/A if (TieredCompilation) {
3932N/A if (WizardMode) {
0N/A if (printmethod) {
0N/A print_code();
0N/A if (PrintDebugInfo) {
0N/A print_scopes();
0N/A if (PrintRelocations) {
0N/A if (PrintDependencies) {
0N/A if (PrintExceptionHandlers) {
1703N/A if (!is_compiled_by_c2()) return;
0N/A // There is a benign race here. See comments in methodDataOop.hpp.
941N/A if (is_osr_method()) {
0N/A if (LogCompilation) {
1564N/A // Make sure neither the nmethod nor the method is flushed in case of a safepoint in code below.
1109N/A if (is_osr_method()) {
1646N/A _oops_are_stale = true;
0N/A if (TraceCreateZombies) {
0N/A tty->print_cr("nmethod <" INTPTR_FORMAT "> code made %s", this, (state == not_entrant) ? "not entrant" : "zombie");
0N/A assert(is_marked_for_reclamation() || (is_osr_method() && is_unloaded()), "must be marked for reclamation");
0N/A if (PrintMethodFlushing) {
1202N/A tty->print_cr("*flushing nmethod %3d/" INTPTR_FORMAT ". Live blobs:" UINT32_FORMAT "/Free CodeCache:" SIZE_FORMAT "Kb",
989N/A if (on_scavenge_root_list()) {
1202N/A if (is_speculatively_disconnected()) {
0N/A if (!has_flushed_dependencies()) {
1536N/A return _jmethod_id;
1497N/A if (unload_reported()) {
0N/A if (is_not_entrant()) {
0N/A // to no longer be true. See jvmtiExport.hpp for details.
0N/A if (a_class_was_redefined) {
0N/A unloading_occurred = true;
0N/A if (unloading_occurred) {
0N/A if (is_not_entrant()) {
994N/A if (!do_strong_roots_only) {
989N/A assert(_oops_do_mark_nmethods == NULL, "must not call oops_do_marking_prologue twice in a row");
989N/A assert(_oops_do_mark_nmethods != NULL, "must not call oops_do_marking_epilogue twice in a row");
989N/A _detected_scavenge_root = true;
2474N/A tty->print_cr(""PTR_FORMAT"[offset=%d] detected scavengable oop "PTR_FORMAT" (found at "PTR_FORMAT")",