src/share/vm/oops/methodDataOop.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/oops/methodDataOop.hpp Mon Jun 27 11:58:56 2011
--- new/src/share/vm/oops/methodDataOop.hpp Mon Jun 27 11:58:55 2011
*** 72,83 ****
--- 72,83 ----
// Overlay for generic profiling data.
class DataLayout VALUE_OBJ_CLASS_SPEC {
private:
// Every data layout begins with a header. This header
// contains a tag, which is used to indicate the size/layout
! // of the data, 4 bits of flags, which can be used in any way,
! // 4 bits of trap history (none/one reason/many reasons),
! // of the data, 3 bits of flags, which can be used in any way,
! // 5 bits of trap history (none/one reason/many reasons),
// and a bci, which is used to tie this piece of data to a
// specific bci in the bytecodes.
union {
intptr_t _bits;
struct {
*** 116,133 ****
--- 116,133 ----
multi_branch_data_tag,
arg_info_data_tag
};
enum {
! // The _struct._flags word is formatted as [trap_state:4 | flags:4].
! // The trap state breaks down further as [recompile:1 | reason:3].
! // The _struct._flags word is formatted as [trap_state:5 | flags:3].
! // The trap state breaks down further as [recompile:1 | reason:4].
// This further breakdown is defined in deoptimization.cpp.
// See Deoptimization::trap_state_reason for an assert that
// trap_bits is big enough to hold reasons < Reason_RECORDED_LIMIT.
//
// The trap_state is collected only if ProfileTraps is true.
! trap_bits = 1+3, // 3: enough to distinguish [0..Reason_RECORDED_LIMIT].
! trap_bits = 1+4, // 4: enough to distinguish [0..Reason_RECORDED_LIMIT].
trap_shift = BitsPerByte - trap_bits,
trap_mask = right_n_bits(trap_bits),
trap_mask_in_place = (trap_mask << trap_shift),
flag_limit = trap_shift,
flag_mask = right_n_bits(flag_limit),
src/share/vm/oops/methodDataOop.hpp
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File