src/share/vm/interpreter/bytecodes.hpp

Print this page




 268     _fast_aaccess_0       ,
 269     _fast_faccess_0       ,
 270 
 271     _fast_iload           ,
 272     _fast_iload2          ,
 273     _fast_icaload         ,
 274 
 275     _fast_invokevfinal    ,
 276     _fast_linearswitch    ,
 277     _fast_binaryswitch    ,
 278 
 279     // special handling of oop constants:
 280     _fast_aldc            ,
 281     _fast_aldc_w          ,
 282 
 283     _return_register_finalizer    ,
 284 
 285     // special handling of signature-polymorphic methods:
 286     _invokehandle         ,
 287 
 288     _shouldnotreachhere,      // For debugging













 289 
 290 
 291     number_of_codes
 292   };
 293 
 294   // Flag bits derived from format strings, can_trap, can_rewrite, etc.:
 295   enum Flags {
 296     // semantic flags:
 297     _bc_can_trap      = 1<<0,     // bytecode execution can trap or block
 298     _bc_can_rewrite   = 1<<1,     // bytecode execution has an alternate form
 299 
 300     // format bits (determined only by the format string):
 301     _fmt_has_c        = 1<<2,     // constant, such as sipush "bcc"
 302     _fmt_has_j        = 1<<3,     // constant pool cache index, such as getfield "bjj"
 303     _fmt_has_k        = 1<<4,     // constant pool index, such as ldc "bk"
 304     _fmt_has_i        = 1<<5,     // local index, such as iload
 305     _fmt_has_o        = 1<<6,     // offset, such as ifeq
 306     _fmt_has_nbo      = 1<<7,     // contains native-order field(s)
 307     _fmt_has_u2       = 1<<8,     // contains double-byte field(s)
 308     _fmt_has_u4       = 1<<9,     // contains quad-byte field




 268     _fast_aaccess_0       ,
 269     _fast_faccess_0       ,
 270 
 271     _fast_iload           ,
 272     _fast_iload2          ,
 273     _fast_icaload         ,
 274 
 275     _fast_invokevfinal    ,
 276     _fast_linearswitch    ,
 277     _fast_binaryswitch    ,
 278 
 279     // special handling of oop constants:
 280     _fast_aldc            ,
 281     _fast_aldc_w          ,
 282 
 283     _return_register_finalizer    ,
 284 
 285     // special handling of signature-polymorphic methods:
 286     _invokehandle         ,
 287 
 288     // These bytecodes are rewritten at CDS dump time, so that we can prevent them from being
 289     // rewritten at run time. This way, the ConstMethods can be placed in the CDS ReadOnly
 290     // section, and RewriteByteCodes/RewriteFrequentPairs can rewrite non-CDS bytecodes
 291     // at run time.
 292     //
 293     // Rewritten at CDS dump time to | Original bytecode
 294     // _invoke_virtual rewritten on sparc, will be disabled if UseSharedSpaces turned on.
 295     // ------------------------------+------------------
 296     _nofast_getfield      ,          //  <- _getfield
 297     _nofast_putfield      ,          //  <- _putfield
 298     _nofast_aload_0       ,          //  <- _aload_0
 299     _nofast_iload         ,          //  <- _iload
 300 
 301     _shouldnotreachhere   ,          // For debugging
 302 
 303 
 304     number_of_codes
 305   };
 306 
 307   // Flag bits derived from format strings, can_trap, can_rewrite, etc.:
 308   enum Flags {
 309     // semantic flags:
 310     _bc_can_trap      = 1<<0,     // bytecode execution can trap or block
 311     _bc_can_rewrite   = 1<<1,     // bytecode execution has an alternate form
 312 
 313     // format bits (determined only by the format string):
 314     _fmt_has_c        = 1<<2,     // constant, such as sipush "bcc"
 315     _fmt_has_j        = 1<<3,     // constant pool cache index, such as getfield "bjj"
 316     _fmt_has_k        = 1<<4,     // constant pool index, such as ldc "bk"
 317     _fmt_has_i        = 1<<5,     // local index, such as iload
 318     _fmt_has_o        = 1<<6,     // offset, such as ifeq
 319     _fmt_has_nbo      = 1<<7,     // contains native-order field(s)
 320     _fmt_has_u2       = 1<<8,     // contains double-byte field(s)
 321     _fmt_has_u4       = 1<<9,     // contains quad-byte field