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