1.1 --- a/src/share/vm/c1/c1_Compilation.cpp Fri Jan 29 22:51:41 2010 -0800 1.2 +++ b/src/share/vm/c1/c1_Compilation.cpp Mon Feb 01 19:29:46 2010 +0100 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved. 1.6 + * Copyright 1999-2010 Sun Microsystems, Inc. All Rights Reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -205,6 +205,8 @@ 1.11 void Compilation::emit_code_epilog(LIR_Assembler* assembler) { 1.12 CHECK_BAILOUT(); 1.13 1.14 + CodeOffsets* code_offsets = assembler->offsets(); 1.15 + 1.16 // generate code or slow cases 1.17 assembler->emit_slow_case_stubs(); 1.18 CHECK_BAILOUT(); 1.19 @@ -213,10 +215,18 @@ 1.20 assembler->emit_exception_entries(exception_info_list()); 1.21 CHECK_BAILOUT(); 1.22 1.23 - // generate code for exception handler 1.24 - assembler->emit_exception_handler(); 1.25 + // Generate code for exception handler. 1.26 + code_offsets->set_value(CodeOffsets::Exceptions, assembler->emit_exception_handler()); 1.27 CHECK_BAILOUT(); 1.28 - assembler->emit_deopt_handler(); 1.29 + 1.30 + // Generate code for deopt handler. 1.31 + code_offsets->set_value(CodeOffsets::Deopt, assembler->emit_deopt_handler()); 1.32 + CHECK_BAILOUT(); 1.33 + 1.34 + // Generate code for MethodHandle deopt handler. We can use the 1.35 + // same code as for the normal deopt handler, we just need a 1.36 + // different entry point address. 1.37 + code_offsets->set_value(CodeOffsets::DeoptMH, assembler->emit_deopt_handler()); 1.38 CHECK_BAILOUT(); 1.39 1.40 // done