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
|