< prev index next >
src/share/vm/oops/methodData.hpp
Print this page
@@ -533,10 +533,11 @@
// BitData
//
// A BitData holds a flag or two in its header.
class BitData : public ProfileData {
+ friend class VMStructs;
protected:
enum {
// null_seen:
// saw a null operand (cast/aastore/instanceof)
null_seen_flag = DataLayout::first_flag + 0
@@ -601,10 +602,11 @@
// CounterData
//
// A CounterData corresponds to a simple counter.
class CounterData : public BitData {
+ friend class VMStructs;
protected:
enum {
count_off,
counter_cell_count
};
@@ -665,10 +667,11 @@
// A JumpData is used to access profiling information for a direct
// branch. It is a counter, used for counting the number of branches,
// plus a data displacement, used for realigning the data pointer to
// the corresponding target bci.
class JumpData : public ProfileData {
+ friend class VMStructs;
protected:
enum {
taken_off_set,
displacement_off_set,
jump_cell_count
@@ -1171,10 +1174,11 @@
// A ReceiverTypeData is used to access profiling information about a
// dynamic type check. It consists of a counter which counts the total times
// that the check is reached, and a series of (Klass*, count) pairs
// which are used to store a type profile for the receiver of the check.
class ReceiverTypeData : public CounterData {
+ friend class VMStructs;
protected:
enum {
#if INCLUDE_JVMCI
// Description of the different counters
// ReceiverTypeData for instanceof/checkcast/aastore:
@@ -1676,10 +1680,11 @@
//
// A BranchData is used to access profiling data for a two-way branch.
// It consists of taken and not_taken counts as well as a data displacement
// for the taken case.
class BranchData : public JumpData {
+ friend class VMStructs;
protected:
enum {
not_taken_off_set = jump_cell_count,
branch_cell_count
};
@@ -1752,10 +1757,11 @@
//
// A ArrayData is a base class for accessing profiling data which does
// not have a statically known size. It consists of an array length
// and an array start.
class ArrayData : public ProfileData {
+ friend class VMStructs;
protected:
friend class DataLayout;
enum {
array_len_off_set,
@@ -1829,10 +1835,11 @@
// A MultiBranchData is used to access profiling information for
// a multi-way branch (*switch bytecodes). It consists of a series
// of (count, displacement) pairs, which count the number of times each
// case was taken and specify the data displacment for each branch target.
class MultiBranchData : public ArrayData {
+ friend class VMStructs;
protected:
enum {
default_count_off_set,
default_disaplacement_off_set,
case_array_start
< prev index next >