src/share/vm/compiler/disassembler.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
webrev Cdiff src/share/vm/compiler/disassembler.cpp
src/share/vm/compiler/disassembler.cpp
Print this page
*** 1,7 ****
/*
! * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 28,38 ****
#include "compiler/disassembler.hpp"
#include "gc/shared/cardTableModRefBS.hpp"
#include "gc/shared/collectedHeap.hpp"
#include "memory/resourceArea.hpp"
#include "oops/oop.inline.hpp"
- #include "runtime/fprofiler.hpp"
#include "runtime/handles.inline.hpp"
#include "runtime/os.hpp"
#include "runtime/stubCodeGenerator.hpp"
#include "runtime/stubRoutines.hpp"
#include CPU_HEADER(depChecker)
--- 28,37 ----
*** 161,171 ****
char _option_buf[512];
char _print_raw;
bool _print_pc;
bool _print_bytes;
address _cur_insn;
- int _total_ticks;
int _bytes_per_line; // arch-specific formatting option
static bool match(const char* event, const char* tag) {
size_t taglen = strlen(tag);
if (strncmp(event, tag, taglen) != 0)
--- 160,169 ----
*** 211,242 ****
print_insn_bytes(pc0, pc);
if (_nm != NULL) {
_nm->print_code_comment_on(st, COMMENT_COLUMN, pc0, pc);
// this calls reloc_string_for which calls oop::print_value_on
}
-
- // Output pc bucket ticks if we have any
- if (total_ticks() != 0) {
- address bucket_pc = FlatProfiler::bucket_start_for(pc);
- if (bucket_pc != NULL && bucket_pc > pc0 && bucket_pc <= pc) {
- int bucket_count = FlatProfiler::bucket_count_for(pc0);
- if (bucket_count != 0) {
- st->bol();
- st->print_cr("%3.1f%% [%d]", bucket_count*100.0/total_ticks(), bucket_count);
- }
- }
- }
// follow each complete insn by a nice newline
st->cr();
}
address handle_event(const char* event, address arg);
outputStream* output() { return _output; }
address cur_insn() { return _cur_insn; }
- int total_ticks() { return _total_ticks; }
- void set_total_ticks(int n) { _total_ticks = n; }
const char* options() { return _option_buf; }
};
decode_env::decode_env(CodeBlob* code, outputStream* output, CodeStrings c) {
memset(this, 0, sizeof(*this)); // Beware, this zeroes bits of fields.
--- 209,226 ----
*** 559,582 ****
}
}
#endif
env.output()->print_cr(" [" PTR_FORMAT ", " PTR_FORMAT "] " JLONG_FORMAT " bytes", p2i(p), p2i(end), ((jlong)(end - p)));
- // If there has been profiling, print the buckets.
- if (FlatProfiler::bucket_start_for(p) != NULL) {
- unsigned char* p1 = p;
- int total_bucket_count = 0;
- while (p1 < end) {
- unsigned char* p0 = p1;
- p1 += pd_instruction_alignment();
- address bucket_pc = FlatProfiler::bucket_start_for(p1);
- if (bucket_pc != NULL && bucket_pc > p0 && bucket_pc <= p1)
- total_bucket_count += FlatProfiler::bucket_count_for(p0);
- }
- env.set_total_ticks(total_bucket_count);
- }
-
// Print constant table.
if (nm->consts_size() > 0) {
nm->print_nmethod_labels(env.output(), nm->consts_begin());
int offset = 0;
for (address p = nm->consts_begin(); p < nm->consts_end(); p += 4, offset += 4) {
--- 543,552 ----
src/share/vm/compiler/disassembler.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File