comparison src/share/vm/code/nmethod.cpp @ 1378:9f5b60a14736

6939930: exception unwind changes in 6919934 hurts compilation speed Reviewed-by: twisti
author never
date Thu, 15 Apr 2010 18:14:49 -0700
parents f70b0d9ab095
children 760213a60e8b cff162798819
comparison
equal deleted inserted replaced
1377:ef74d6d1ac1e 1378:9f5b60a14736
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);