< prev index next >

src/share/vm/code/dependencies.hpp

Print this page




 151     // also possible (for example) that C1 is CX (a concrete class)
 152     // and C2 is a proper subtype of C1.
 153     abstract_with_exclusive_concrete_subtypes_2,
 154 
 155     // This dependency asserts that MM(CX, M1) is no greater than {M1,M2}.
 156     exclusive_concrete_methods_2,
 157 
 158     // This dependency asserts that no instances of class or it's
 159     // subclasses require finalization registration.
 160     no_finalizable_subclasses,
 161 
 162     // This dependency asserts when the CallSite.target value changed.
 163     call_site_target_value,
 164 
 165     TYPE_LIMIT
 166   };
 167   enum {
 168     LG2_TYPE_LIMIT = 4,  // assert(TYPE_LIMIT <= (1<<LG2_TYPE_LIMIT))
 169 
 170     // handy categorizations of dependency types:
 171     all_types           = ((1 << TYPE_LIMIT) - 1) & ((-1) << FIRST_TYPE),
 172 
 173     non_klass_types     = (1 << call_site_target_value),
 174     klass_types         = all_types & ~non_klass_types,
 175 
 176     non_ctxk_types      = (1 << evol_method) | (1 << call_site_target_value),
 177     implicit_ctxk_types = 0,
 178     explicit_ctxk_types = all_types & ~(non_ctxk_types | implicit_ctxk_types),
 179 
 180     max_arg_count = 3,   // current maximum number of arguments (incl. ctxk)
 181 
 182     // A "context type" is a class or interface that
 183     // provides context for evaluating a dependency.
 184     // When present, it is one of the arguments (dep_context_arg).
 185     //
 186     // If a dependency does not have a context type, there is a
 187     // default context, depending on the type of the dependency.
 188     // This bit signals that a default context has been compressed away.
 189     default_context_type_bit = (1<<LG2_TYPE_LIMIT)
 190   };
 191 




 151     // also possible (for example) that C1 is CX (a concrete class)
 152     // and C2 is a proper subtype of C1.
 153     abstract_with_exclusive_concrete_subtypes_2,
 154 
 155     // This dependency asserts that MM(CX, M1) is no greater than {M1,M2}.
 156     exclusive_concrete_methods_2,
 157 
 158     // This dependency asserts that no instances of class or it's
 159     // subclasses require finalization registration.
 160     no_finalizable_subclasses,
 161 
 162     // This dependency asserts when the CallSite.target value changed.
 163     call_site_target_value,
 164 
 165     TYPE_LIMIT
 166   };
 167   enum {
 168     LG2_TYPE_LIMIT = 4,  // assert(TYPE_LIMIT <= (1<<LG2_TYPE_LIMIT))
 169 
 170     // handy categorizations of dependency types:
 171     all_types           = ((1 << TYPE_LIMIT) - 1) & (0xffffffff << FIRST_TYPE),
 172 
 173     non_klass_types     = (1 << call_site_target_value),
 174     klass_types         = all_types & ~non_klass_types,
 175 
 176     non_ctxk_types      = (1 << evol_method) | (1 << call_site_target_value),
 177     implicit_ctxk_types = 0,
 178     explicit_ctxk_types = all_types & ~(non_ctxk_types | implicit_ctxk_types),
 179 
 180     max_arg_count = 3,   // current maximum number of arguments (incl. ctxk)
 181 
 182     // A "context type" is a class or interface that
 183     // provides context for evaluating a dependency.
 184     // When present, it is one of the arguments (dep_context_arg).
 185     //
 186     // If a dependency does not have a context type, there is a
 187     // default context, depending on the type of the dependency.
 188     // This bit signals that a default context has been compressed away.
 189     default_context_type_bit = (1<<LG2_TYPE_LIMIT)
 190   };
 191 


< prev index next >