src/share/vm/c1/c1_Compilation.cpp

changeset 1639
18a389214829
parent 1636
24128c2ffa87
child 1813
9f5b60a14736
     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

mercurial