src/cpu/x86/vm/methodHandles_x86.cpp

changeset 2436
d810e9a3fc33
parent 2411
8d0b933dda2d
child 2565
28bf941f445e
     1.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Jan 07 11:53:24 2011 -0800
     1.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp	Mon Jan 10 00:56:39 2011 -0800
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. 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 @@ -390,7 +390,7 @@
    1.11  //
    1.12  // Generate an "entry" field for a method handle.
    1.13  // This determines how the method handle will respond to calls.
    1.14 -void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek, TRAPS) {
    1.15 +void MethodHandles::generate_method_handle_stub(MacroAssembler* _masm, MethodHandles::EntryKind ek) {
    1.16    // Here is the register state during an interpreted call,
    1.17    // as set up by generate_method_handle_interpreter_entry():
    1.18    // - rbx: garbage temp (was MethodHandle.invoke methodOop, unused)
    1.19 @@ -451,8 +451,9 @@
    1.20        // exception.  Since we use a C2I adapter to set up the
    1.21        // interpreter state, arguments are expected in compiler
    1.22        // argument registers.
    1.23 -      methodHandle mh(raise_exception_method());
    1.24 -      address c2i_entry = methodOopDesc::make_adapters(mh, CHECK);
    1.25 +      assert(raise_exception_method(), "must be set");
    1.26 +      address c2i_entry = raise_exception_method()->get_c2i_entry();
    1.27 +      assert(c2i_entry, "method must be linked");
    1.28  
    1.29        const Register rdi_pc = rax;
    1.30        __ pop(rdi_pc);  // caller PC

mercurial