hotspot/src/share/vm/code/nmethod.cpp
changeset 5334 b2d040a8d375
parent 4894 8a76fd3d098d
child 5402 c51fd0c1d005
equal deleted inserted replaced
5333:bb01e3adecb4 5334:b2d040a8d375
   683     // We have no exception handler or deopt handler make the
   683     // We have no exception handler or deopt handler make the
   684     // values something that will never match a pc like the nmethod vtable entry
   684     // values something that will never match a pc like the nmethod vtable entry
   685     _exception_offset        = 0;
   685     _exception_offset        = 0;
   686     _deoptimize_offset       = 0;
   686     _deoptimize_offset       = 0;
   687     _deoptimize_mh_offset    = 0;
   687     _deoptimize_mh_offset    = 0;
       
   688     _unwind_handler_offset   = -1;
   688     _trap_offset             = offsets->value(CodeOffsets::Dtrace_trap);
   689     _trap_offset             = offsets->value(CodeOffsets::Dtrace_trap);
   689     _orig_pc_offset          = 0;
   690     _orig_pc_offset          = 0;
   690     _stub_offset             = data_offset();
   691     _stub_offset             = data_offset();
   691     _consts_offset           = data_offset();
   692     _consts_offset           = data_offset();
   692     _scopes_data_offset      = data_offset();
   693     _scopes_data_offset      = data_offset();
   796 
   797 
   797     // Exception handler and deopt handler are in the stub section
   798     // Exception handler and deopt handler are in the stub section
   798     _exception_offset        = _stub_offset + offsets->value(CodeOffsets::Exceptions);
   799     _exception_offset        = _stub_offset + offsets->value(CodeOffsets::Exceptions);
   799     _deoptimize_offset       = _stub_offset + offsets->value(CodeOffsets::Deopt);
   800     _deoptimize_offset       = _stub_offset + offsets->value(CodeOffsets::Deopt);
   800     _deoptimize_mh_offset    = _stub_offset + offsets->value(CodeOffsets::DeoptMH);
   801     _deoptimize_mh_offset    = _stub_offset + offsets->value(CodeOffsets::DeoptMH);
       
   802     if (offsets->value(CodeOffsets::UnwindHandler) != -1) {
       
   803       _unwind_handler_offset   = instructions_offset() + offsets->value(CodeOffsets::UnwindHandler);
       
   804     } else {
       
   805       _unwind_handler_offset   = -1;
       
   806     }
   801     _consts_offset           = instructions_offset() + code_buffer->total_offset_of(code_buffer->consts()->start());
   807     _consts_offset           = instructions_offset() + code_buffer->total_offset_of(code_buffer->consts()->start());
   802     _scopes_data_offset      = data_offset();
   808     _scopes_data_offset      = data_offset();
   803     _scopes_pcs_offset       = _scopes_data_offset   + round_to(debug_info->data_size         (), oopSize);
   809     _scopes_pcs_offset       = _scopes_data_offset   + round_to(debug_info->data_size         (), oopSize);
   804     _dependencies_offset     = _scopes_pcs_offset    + adjust_pcs_size(debug_info->pcs_size());
   810     _dependencies_offset     = _scopes_pcs_offset    + adjust_pcs_size(debug_info->pcs_size());
   805     _handler_table_offset    = _dependencies_offset  + round_to(dependencies->size_in_bytes (), oopSize);
   811     _handler_table_offset    = _dependencies_offset  + round_to(dependencies->size_in_bytes (), oopSize);