7012648: move JSR 292 to package java.lang.invoke and adjust names

Fri, 11 Mar 2011 22:34:57 -0800

author
jrose
date
Fri, 11 Mar 2011 22:34:57 -0800
changeset 2639
8033953d67ff
parent 2638
72dee110246f
child 2640
82de9bd880e3

7012648: move JSR 292 to package java.lang.invoke and adjust names
Summary: package and class renaming only; delete unused methods and classes
Reviewed-by: twisti

src/cpu/sparc/vm/assembler_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/cppInterpreter_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/interpreter_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/methodHandles_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/sparc/vm/templateTable_sparc.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/assembler_x86.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/interpreter_x86_32.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/interpreter_x86_64.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/methodHandles_x86.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/templateTable_x86_32.cpp file | annotate | diff | comparison | revisions
src/cpu/x86/vm/templateTable_x86_64.cpp file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_LIR.hpp file | annotate | diff | comparison | revisions
src/share/vm/c1/c1_LIRGenerator.cpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciCallSite.cpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciCallSite.hpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciField.cpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciMethod.cpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciMethodHandle.hpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciObjectFactory.cpp file | annotate | diff | comparison | revisions
src/share/vm/ci/ciStreams.cpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/classFileParser.cpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/classFileParser.hpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/javaClasses.cpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/javaClasses.hpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/systemDictionary.cpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/systemDictionary.hpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/verifier.cpp file | annotate | diff | comparison | revisions
src/share/vm/classfile/vmSymbols.hpp file | annotate | diff | comparison | revisions
src/share/vm/interpreter/abstractInterpreter.hpp file | annotate | diff | comparison | revisions
src/share/vm/interpreter/interpreterRuntime.cpp file | annotate | diff | comparison | revisions
src/share/vm/interpreter/linkResolver.cpp file | annotate | diff | comparison | revisions
src/share/vm/oops/cpCacheOop.hpp file | annotate | diff | comparison | revisions
src/share/vm/oops/instanceKlass.cpp file | annotate | diff | comparison | revisions
src/share/vm/oops/instanceKlass.hpp file | annotate | diff | comparison | revisions
src/share/vm/oops/methodOop.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/bytecodeInfo.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/callGenerator.cpp file | annotate | diff | comparison | revisions
src/share/vm/opto/parse3.cpp file | annotate | diff | comparison | revisions
src/share/vm/prims/methodHandleWalk.cpp file | annotate | diff | comparison | revisions
src/share/vm/prims/methodHandleWalk.hpp file | annotate | diff | comparison | revisions
src/share/vm/prims/methodHandles.cpp file | annotate | diff | comparison | revisions
src/share/vm/prims/methodHandles.hpp file | annotate | diff | comparison | revisions
src/share/vm/prims/nativeLookup.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/cpu/sparc/vm/assembler_sparc.cpp	Fri Mar 11 22:33:47 2011 -0800
     1.2 +++ b/src/cpu/sparc/vm/assembler_sparc.cpp	Fri Mar 11 22:34:57 2011 -0800
     1.3 @@ -3179,7 +3179,7 @@
     1.4                                                Label& wrong_method_type) {
     1.5    assert_different_registers(mtype_reg, mh_reg, temp_reg);
     1.6    // compare method type against that of the receiver
     1.7 -  RegisterOrConstant mhtype_offset = delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg);
     1.8 +  RegisterOrConstant mhtype_offset = delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg);
     1.9    load_heap_oop(mh_reg, mhtype_offset, temp_reg);
    1.10    cmp(temp_reg, mtype_reg);
    1.11    br(Assembler::notEqual, false, Assembler::pn, wrong_method_type);
    1.12 @@ -3195,14 +3195,14 @@
    1.13                                                  Register temp_reg) {
    1.14    assert_different_registers(vmslots_reg, mh_reg, temp_reg);
    1.15    // load mh.type.form.vmslots
    1.16 -  if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) {
    1.17 +  if (java_lang_invoke_MethodHandle::vmslots_offset_in_bytes() != 0) {
    1.18      // hoist vmslots into every mh to avoid dependent load chain
    1.19 -    ld(           Address(mh_reg,    delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)),   vmslots_reg);
    1.20 +    ld(           Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::vmslots_offset_in_bytes, temp_reg)),   vmslots_reg);
    1.21    } else {
    1.22      Register temp2_reg = vmslots_reg;
    1.23 -    load_heap_oop(Address(mh_reg,    delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)),      temp2_reg);
    1.24 -    load_heap_oop(Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)),        temp2_reg);
    1.25 -    ld(           Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
    1.26 +    load_heap_oop(Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)),      temp2_reg);
    1.27 +    load_heap_oop(Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)),        temp2_reg);
    1.28 +    ld(           Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)), vmslots_reg);
    1.29    }
    1.30  }
    1.31  
    1.32 @@ -3213,7 +3213,7 @@
    1.33  
    1.34    // pick out the interpreted side of the handler
    1.35    // NOTE: vmentry is not an oop!
    1.36 -  ld_ptr(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg), temp_reg);
    1.37 +  ld_ptr(mh_reg, delayed_value(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes, temp_reg), temp_reg);
    1.38  
    1.39    // off we go...
    1.40    ld_ptr(temp_reg, MethodHandleEntry::from_interpreted_entry_offset_in_bytes(), temp_reg);
     2.1 --- a/src/cpu/sparc/vm/cppInterpreter_sparc.cpp	Fri Mar 11 22:33:47 2011 -0800
     2.2 +++ b/src/cpu/sparc/vm/cppInterpreter_sparc.cpp	Fri Mar 11 22:34:57 2011 -0800
     2.3 @@ -1,5 +1,5 @@
     2.4  /*
     2.5 - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
     2.6 + * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
     2.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     2.8   *
     2.9   * This code is free software; you can redistribute it and/or modify it
    2.10 @@ -1188,7 +1188,7 @@
    2.11    __ st_ptr(O2, XXX_STATE(_stack));                // PREPUSH
    2.12  
    2.13    __ lduh(max_stack, O3);                      // Full size expression stack
    2.14 -  guarantee(!EnableMethodHandles, "no support yet for java.dyn.MethodHandle"); //6815692
    2.15 +  guarantee(!EnableMethodHandles, "no support yet for java.lang.invoke.MethodHandle"); //6815692
    2.16    //6815692//if (EnableMethodHandles)
    2.17    //6815692//  __ inc(O3, methodOopDesc::extra_stack_entries());
    2.18    __ sll(O3, LogBytesPerWord, O3);
     3.1 --- a/src/cpu/sparc/vm/interpreter_sparc.cpp	Fri Mar 11 22:33:47 2011 -0800
     3.2 +++ b/src/cpu/sparc/vm/interpreter_sparc.cpp	Fri Mar 11 22:34:57 2011 -0800
     3.3 @@ -1,5 +1,5 @@
     3.4  /*
     3.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
     3.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
     3.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3.8   *
     3.9   * This code is free software; you can redistribute it and/or modify it
    3.10 @@ -260,7 +260,7 @@
    3.11  
    3.12  
    3.13  // Method handle invoker
    3.14 -// Dispatch a method of the form java.dyn.MethodHandles::invoke(...)
    3.15 +// Dispatch a method of the form java.lang.invoke.MethodHandles::invoke(...)
    3.16  address InterpreterGenerator::generate_method_handle_entry(void) {
    3.17    if (!EnableMethodHandles) {
    3.18      return generate_abstract_entry();
     4.1 --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp	Fri Mar 11 22:33:47 2011 -0800
     4.2 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp	Fri Mar 11 22:34:57 2011 -0800
     4.3 @@ -112,8 +112,8 @@
     4.4    }
     4.5  
     4.6    // given the MethodType, find out where the MH argument is buried
     4.7 -  __ load_heap_oop(Address(O0_mtype,   __ delayed_value(java_dyn_MethodType::form_offset_in_bytes,        O1_scratch)), O4_argslot);
     4.8 -  __ ldsw(         Address(O4_argslot, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O4_argslot);
     4.9 +  __ load_heap_oop(Address(O0_mtype,   __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes,        O1_scratch)), O4_argslot);
    4.10 +  __ ldsw(         Address(O4_argslot, __ delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, O1_scratch)), O4_argslot);
    4.11    __ add(Gargs, __ argument_offset(O4_argslot, 1), O4_argbase);
    4.12    // Note: argument_address uses its input as a scratch register!
    4.13    __ ld_ptr(Address(O4_argbase, -Interpreter::stackElementSize), G3_method_handle);
    4.14 @@ -141,10 +141,10 @@
    4.15    // load up an adapter from the calling type (Java weaves this)
    4.16    Register O2_form    = O2_scratch;
    4.17    Register O3_adapter = O3_scratch;
    4.18 -  __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes,               O1_scratch)), O2_form);
    4.19 -  // load_heap_oop(Address(O2_form,  __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter);
    4.20 +  __ load_heap_oop(Address(O0_mtype, __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes,               O1_scratch)), O2_form);
    4.21 +  // load_heap_oop(Address(O2_form,  __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter);
    4.22    // deal with old JDK versions:
    4.23 -  __ add(          Address(O2_form,  __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter);
    4.24 +  __ add(          Address(O2_form,  __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, O1_scratch)), O3_adapter);
    4.25    __ cmp(O3_adapter, O2_form);
    4.26    Label sorry_no_invoke_generic;
    4.27    __ brx(Assembler::lessUnsigned, false, Assembler::pn, sorry_no_invoke_generic);
    4.28 @@ -376,16 +376,16 @@
    4.29  
    4.30  // which conversion op types are implemented here?
    4.31  int MethodHandles::adapter_conversion_ops_supported_mask() {
    4.32 -  return ((1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY)
    4.33 -         |(1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW)
    4.34 -         |(1<<sun_dyn_AdapterMethodHandle::OP_CHECK_CAST)
    4.35 -         |(1<<sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM)
    4.36 -         |(1<<sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM)
    4.37 -         |(1<<sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS)
    4.38 -         |(1<<sun_dyn_AdapterMethodHandle::OP_ROT_ARGS)
    4.39 -         |(1<<sun_dyn_AdapterMethodHandle::OP_DUP_ARGS)
    4.40 -         |(1<<sun_dyn_AdapterMethodHandle::OP_DROP_ARGS)
    4.41 -         //|(1<<sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
    4.42 +  return ((1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY)
    4.43 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW)
    4.44 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_CHECK_CAST)
    4.45 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_PRIM)
    4.46 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_REF_TO_PRIM)
    4.47 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_SWAP_ARGS)
    4.48 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_ROT_ARGS)
    4.49 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_DUP_ARGS)
    4.50 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS)
    4.51 +         //|(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
    4.52           );
    4.53    // FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS.
    4.54  }
    4.55 @@ -413,22 +413,22 @@
    4.56    const Register O1_actual   = O1;
    4.57    const Register O2_required = O2;
    4.58  
    4.59 -  guarantee(java_dyn_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
    4.60 +  guarantee(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
    4.61  
    4.62    // Some handy addresses:
    4.63    Address G5_method_fie(    G5_method,        in_bytes(methodOopDesc::from_interpreted_offset()));
    4.64    Address G5_method_fce(    G5_method,        in_bytes(methodOopDesc::from_compiled_offset()));
    4.65  
    4.66 -  Address G3_mh_vmtarget(   G3_method_handle, java_dyn_MethodHandle::vmtarget_offset_in_bytes());
    4.67 +  Address G3_mh_vmtarget(   G3_method_handle, java_lang_invoke_MethodHandle::vmtarget_offset_in_bytes());
    4.68  
    4.69 -  Address G3_dmh_vmindex(   G3_method_handle, sun_dyn_DirectMethodHandle::vmindex_offset_in_bytes());
    4.70 +  Address G3_dmh_vmindex(   G3_method_handle, java_lang_invoke_DirectMethodHandle::vmindex_offset_in_bytes());
    4.71  
    4.72 -  Address G3_bmh_vmargslot( G3_method_handle, sun_dyn_BoundMethodHandle::vmargslot_offset_in_bytes());
    4.73 -  Address G3_bmh_argument(  G3_method_handle, sun_dyn_BoundMethodHandle::argument_offset_in_bytes());
    4.74 +  Address G3_bmh_vmargslot( G3_method_handle, java_lang_invoke_BoundMethodHandle::vmargslot_offset_in_bytes());
    4.75 +  Address G3_bmh_argument(  G3_method_handle, java_lang_invoke_BoundMethodHandle::argument_offset_in_bytes());
    4.76  
    4.77 -  Address G3_amh_vmargslot( G3_method_handle, sun_dyn_AdapterMethodHandle::vmargslot_offset_in_bytes());
    4.78 -  Address G3_amh_argument ( G3_method_handle, sun_dyn_AdapterMethodHandle::argument_offset_in_bytes());
    4.79 -  Address G3_amh_conversion(G3_method_handle, sun_dyn_AdapterMethodHandle::conversion_offset_in_bytes());
    4.80 +  Address G3_amh_vmargslot( G3_method_handle, java_lang_invoke_AdapterMethodHandle::vmargslot_offset_in_bytes());
    4.81 +  Address G3_amh_argument ( G3_method_handle, java_lang_invoke_AdapterMethodHandle::argument_offset_in_bytes());
    4.82 +  Address G3_amh_conversion(G3_method_handle, java_lang_invoke_AdapterMethodHandle::conversion_offset_in_bytes());
    4.83  
    4.84    const int java_mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes();
    4.85  
    4.86 @@ -453,7 +453,7 @@
    4.87        __ mov(O5_savedSP, SP);  // Cut the stack back to where the caller started.
    4.88  
    4.89        Label L_no_method;
    4.90 -      // FIXME: fill in _raise_exception_method with a suitable sun.dyn method
    4.91 +      // FIXME: fill in _raise_exception_method with a suitable java.lang.invoke method
    4.92        __ set(AddressLiteral((address) &_raise_exception_method), G5_method);
    4.93        __ ld_ptr(Address(G5_method, 0), G5_method);
    4.94        __ tst(G5_method);
     5.1 --- a/src/cpu/sparc/vm/templateTable_sparc.cpp	Fri Mar 11 22:33:47 2011 -0800
     5.2 +++ b/src/cpu/sparc/vm/templateTable_sparc.cpp	Fri Mar 11 22:34:57 2011 -0800
     5.3 @@ -3303,7 +3303,7 @@
     5.4    __ sll(Rret, LogBytesPerWord, Rret);
     5.5    __ ld_ptr(Rtemp, Rret, Rret);  // get return address
     5.6  
     5.7 -  __ load_heap_oop(G5_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
     5.8 +  __ load_heap_oop(G5_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, Rscratch), G3_method_handle);
     5.9    __ null_check(G3_method_handle);
    5.10  
    5.11    // Adjust Rret first so Llast_SP can be same as Rret
     6.1 --- a/src/cpu/x86/vm/assembler_x86.cpp	Fri Mar 11 22:33:47 2011 -0800
     6.2 +++ b/src/cpu/x86/vm/assembler_x86.cpp	Fri Mar 11 22:34:57 2011 -0800
     6.3 @@ -7831,7 +7831,7 @@
     6.4  void MacroAssembler::check_method_handle_type(Register mtype_reg, Register mh_reg,
     6.5                                                Register temp_reg,
     6.6                                                Label& wrong_method_type) {
     6.7 -  Address type_addr(mh_reg, delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg));
     6.8 +  Address type_addr(mh_reg, delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg));
     6.9    // compare method type against that of the receiver
    6.10    if (UseCompressedOops) {
    6.11      load_heap_oop(temp_reg, type_addr);
    6.12 @@ -7851,14 +7851,14 @@
    6.13                                                  Register temp_reg) {
    6.14    assert_different_registers(vmslots_reg, mh_reg, temp_reg);
    6.15    // load mh.type.form.vmslots
    6.16 -  if (java_dyn_MethodHandle::vmslots_offset_in_bytes() != 0) {
    6.17 +  if (java_lang_invoke_MethodHandle::vmslots_offset_in_bytes() != 0) {
    6.18      // hoist vmslots into every mh to avoid dependent load chain
    6.19 -    movl(vmslots_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmslots_offset_in_bytes, temp_reg)));
    6.20 +    movl(vmslots_reg, Address(mh_reg, delayed_value(java_lang_invoke_MethodHandle::vmslots_offset_in_bytes, temp_reg)));
    6.21    } else {
    6.22      Register temp2_reg = vmslots_reg;
    6.23 -    load_heap_oop(temp2_reg, Address(mh_reg,    delayed_value(java_dyn_MethodHandle::type_offset_in_bytes, temp_reg)));
    6.24 -    load_heap_oop(temp2_reg, Address(temp2_reg, delayed_value(java_dyn_MethodType::form_offset_in_bytes, temp_reg)));
    6.25 -    movl(vmslots_reg, Address(temp2_reg, delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)));
    6.26 +    load_heap_oop(temp2_reg, Address(mh_reg,    delayed_value(java_lang_invoke_MethodHandle::type_offset_in_bytes, temp_reg)));
    6.27 +    load_heap_oop(temp2_reg, Address(temp2_reg, delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, temp_reg)));
    6.28 +    movl(vmslots_reg, Address(temp2_reg, delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, temp_reg)));
    6.29    }
    6.30  }
    6.31  
    6.32 @@ -7873,7 +7873,7 @@
    6.33  
    6.34    // pick out the interpreted side of the handler
    6.35    // NOTE: vmentry is not an oop!
    6.36 -  movptr(temp_reg, Address(mh_reg, delayed_value(java_dyn_MethodHandle::vmentry_offset_in_bytes, temp_reg)));
    6.37 +  movptr(temp_reg, Address(mh_reg, delayed_value(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes, temp_reg)));
    6.38  
    6.39    // off we go...
    6.40    jmp(Address(temp_reg, MethodHandleEntry::from_interpreted_entry_offset_in_bytes()));
     7.1 --- a/src/cpu/x86/vm/interpreter_x86_32.cpp	Fri Mar 11 22:33:47 2011 -0800
     7.2 +++ b/src/cpu/x86/vm/interpreter_x86_32.cpp	Fri Mar 11 22:34:57 2011 -0800
     7.3 @@ -231,7 +231,7 @@
     7.4  
     7.5  
     7.6  // Method handle invoker
     7.7 -// Dispatch a method of the form java.dyn.MethodHandles::invoke(...)
     7.8 +// Dispatch a method of the form java.lang.invoke.MethodHandles::invoke(...)
     7.9  address InterpreterGenerator::generate_method_handle_entry(void) {
    7.10    if (!EnableMethodHandles) {
    7.11      return generate_abstract_entry();
     8.1 --- a/src/cpu/x86/vm/interpreter_x86_64.cpp	Fri Mar 11 22:33:47 2011 -0800
     8.2 +++ b/src/cpu/x86/vm/interpreter_x86_64.cpp	Fri Mar 11 22:34:57 2011 -0800
     8.3 @@ -1,5 +1,5 @@
     8.4  /*
     8.5 - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
     8.6 + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
     8.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     8.8   *
     8.9   * This code is free software; you can redistribute it and/or modify it
    8.10 @@ -318,7 +318,7 @@
    8.11  
    8.12  
    8.13  // Method handle invoker
    8.14 -// Dispatch a method of the form java.dyn.MethodHandles::invoke(...)
    8.15 +// Dispatch a method of the form java.lang.invoke.MethodHandles::invoke(...)
    8.16  address InterpreterGenerator::generate_method_handle_entry(void) {
    8.17    if (!EnableMethodHandles) {
    8.18      return generate_abstract_entry();
     9.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Mar 11 22:33:47 2011 -0800
     9.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp	Fri Mar 11 22:34:57 2011 -0800
     9.3 @@ -125,9 +125,9 @@
     9.4    }
     9.5  
     9.6    // given the MethodType, find out where the MH argument is buried
     9.7 -  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
     9.8 +  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, rdi_temp)));
     9.9    Register rdx_vmslots = rdx_temp;
    9.10 -  __ movl(rdx_vmslots, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
    9.11 +  __ movl(rdx_vmslots, Address(rdx_temp, __ delayed_value(java_lang_invoke_MethodTypeForm::vmslots_offset_in_bytes, rdi_temp)));
    9.12    __ movptr(rcx_recv, __ argument_address(rdx_vmslots));
    9.13  
    9.14    trace_method_handle(_masm, "invokeExact");
    9.15 @@ -154,11 +154,11 @@
    9.16                     rcx_argslot, rbx_temp, rdx_temp);
    9.17  
    9.18    // load up an adapter from the calling type (Java weaves this)
    9.19 -  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_dyn_MethodType::form_offset_in_bytes, rdi_temp)));
    9.20 +  __ load_heap_oop(rdx_temp, Address(rax_mtype, __ delayed_value(java_lang_invoke_MethodType::form_offset_in_bytes, rdi_temp)));
    9.21    Register rdx_adapter = rdx_temp;
    9.22 -  // __ load_heap_oop(rdx_adapter, Address(rdx_temp, java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes()));
    9.23 +  // __ load_heap_oop(rdx_adapter, Address(rdx_temp, java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes()));
    9.24    // deal with old JDK versions:
    9.25 -  __ lea(rdi_temp, Address(rdx_temp, __ delayed_value(java_dyn_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
    9.26 +  __ lea(rdi_temp, Address(rdx_temp, __ delayed_value(java_lang_invoke_MethodTypeForm::genericInvoker_offset_in_bytes, rdi_temp)));
    9.27    __ cmpptr(rdi_temp, rdx_temp);
    9.28    Label sorry_no_invoke_generic;
    9.29    __ jcc(Assembler::below, sorry_no_invoke_generic);
    9.30 @@ -371,16 +371,16 @@
    9.31  
    9.32  // which conversion op types are implemented here?
    9.33  int MethodHandles::adapter_conversion_ops_supported_mask() {
    9.34 -  return ((1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY)
    9.35 -         |(1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW)
    9.36 -         |(1<<sun_dyn_AdapterMethodHandle::OP_CHECK_CAST)
    9.37 -         |(1<<sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM)
    9.38 -         |(1<<sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM)
    9.39 -         |(1<<sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS)
    9.40 -         |(1<<sun_dyn_AdapterMethodHandle::OP_ROT_ARGS)
    9.41 -         |(1<<sun_dyn_AdapterMethodHandle::OP_DUP_ARGS)
    9.42 -         |(1<<sun_dyn_AdapterMethodHandle::OP_DROP_ARGS)
    9.43 -         //|(1<<sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
    9.44 +  return ((1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY)
    9.45 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW)
    9.46 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_CHECK_CAST)
    9.47 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_PRIM)
    9.48 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_REF_TO_PRIM)
    9.49 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_SWAP_ARGS)
    9.50 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_ROT_ARGS)
    9.51 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_DUP_ARGS)
    9.52 +         |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS)
    9.53 +         //|(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
    9.54           );
    9.55    // FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS.
    9.56  }
    9.57 @@ -415,21 +415,21 @@
    9.58    const Register rarg2_required = LP64_ONLY(j_rarg2) NOT_LP64(rdi);
    9.59    assert_different_registers(rarg0_code, rarg1_actual, rarg2_required, saved_last_sp);
    9.60  
    9.61 -  guarantee(java_dyn_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
    9.62 +  guarantee(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
    9.63  
    9.64    // some handy addresses
    9.65    Address rbx_method_fie(     rbx,      methodOopDesc::from_interpreted_offset() );
    9.66    Address rbx_method_fce(     rbx,      methodOopDesc::from_compiled_offset() );
    9.67  
    9.68 -  Address rcx_mh_vmtarget(    rcx_recv, java_dyn_MethodHandle::vmtarget_offset_in_bytes() );
    9.69 -  Address rcx_dmh_vmindex(    rcx_recv, sun_dyn_DirectMethodHandle::vmindex_offset_in_bytes() );
    9.70 +  Address rcx_mh_vmtarget(    rcx_recv, java_lang_invoke_MethodHandle::vmtarget_offset_in_bytes() );
    9.71 +  Address rcx_dmh_vmindex(    rcx_recv, java_lang_invoke_DirectMethodHandle::vmindex_offset_in_bytes() );
    9.72  
    9.73 -  Address rcx_bmh_vmargslot(  rcx_recv, sun_dyn_BoundMethodHandle::vmargslot_offset_in_bytes() );
    9.74 -  Address rcx_bmh_argument(   rcx_recv, sun_dyn_BoundMethodHandle::argument_offset_in_bytes() );
    9.75 +  Address rcx_bmh_vmargslot(  rcx_recv, java_lang_invoke_BoundMethodHandle::vmargslot_offset_in_bytes() );
    9.76 +  Address rcx_bmh_argument(   rcx_recv, java_lang_invoke_BoundMethodHandle::argument_offset_in_bytes() );
    9.77  
    9.78 -  Address rcx_amh_vmargslot(  rcx_recv, sun_dyn_AdapterMethodHandle::vmargslot_offset_in_bytes() );
    9.79 -  Address rcx_amh_argument(   rcx_recv, sun_dyn_AdapterMethodHandle::argument_offset_in_bytes() );
    9.80 -  Address rcx_amh_conversion( rcx_recv, sun_dyn_AdapterMethodHandle::conversion_offset_in_bytes() );
    9.81 +  Address rcx_amh_vmargslot(  rcx_recv, java_lang_invoke_AdapterMethodHandle::vmargslot_offset_in_bytes() );
    9.82 +  Address rcx_amh_argument(   rcx_recv, java_lang_invoke_AdapterMethodHandle::argument_offset_in_bytes() );
    9.83 +  Address rcx_amh_conversion( rcx_recv, java_lang_invoke_AdapterMethodHandle::conversion_offset_in_bytes() );
    9.84    Address vmarg;                // __ argument_address(vmargslot)
    9.85  
    9.86    const int java_mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes();
    9.87 @@ -460,7 +460,7 @@
    9.88  
    9.89        Register rbx_method = rbx_temp;
    9.90        Label L_no_method;
    9.91 -      // FIXME: fill in _raise_exception_method with a suitable sun.dyn method
    9.92 +      // FIXME: fill in _raise_exception_method with a suitable java.lang.invoke method
    9.93        __ movptr(rbx_method, ExternalAddress((address) &_raise_exception_method));
    9.94        __ testptr(rbx_method, rbx_method);
    9.95        __ jccb(Assembler::zero, L_no_method);
    10.1 --- a/src/cpu/x86/vm/templateTable_x86_32.cpp	Fri Mar 11 22:33:47 2011 -0800
    10.2 +++ b/src/cpu/x86/vm/templateTable_x86_32.cpp	Fri Mar 11 22:34:57 2011 -0800
    10.3 @@ -3110,7 +3110,7 @@
    10.4      __ profile_call(rsi);
    10.5    }
    10.6  
    10.7 -  __ movptr(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
    10.8 +  __ movptr(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, rcx)));
    10.9    __ null_check(rcx_method_handle);
   10.10    __ prepare_to_jump_from_interpreted();
   10.11    __ jump_to_method_handle_entry(rcx_method_handle, rdx);
    11.1 --- a/src/cpu/x86/vm/templateTable_x86_64.cpp	Fri Mar 11 22:33:47 2011 -0800
    11.2 +++ b/src/cpu/x86/vm/templateTable_x86_64.cpp	Fri Mar 11 22:34:57 2011 -0800
    11.3 @@ -3145,7 +3145,7 @@
    11.4      __ profile_call(r13);
    11.5    }
    11.6  
    11.7 -  __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_dyn_CallSite::target_offset_in_bytes, rcx)));
    11.8 +  __ load_heap_oop(rcx_method_handle, Address(rax_callsite, __ delayed_value(java_lang_invoke_CallSite::target_offset_in_bytes, rcx)));
    11.9    __ null_check(rcx_method_handle);
   11.10    __ prepare_to_jump_from_interpreted();
   11.11    __ jump_to_method_handle_entry(rcx_method_handle, rdx);
    12.1 --- a/src/share/vm/c1/c1_LIR.hpp	Fri Mar 11 22:33:47 2011 -0800
    12.2 +++ b/src/share/vm/c1/c1_LIR.hpp	Fri Mar 11 22:34:57 2011 -0800
    12.3 @@ -1,5 +1,5 @@
    12.4  /*
    12.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    12.6 + * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
    12.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    12.8   *
    12.9   * This code is free software; you can redistribute it and/or modify it
   12.10 @@ -1156,7 +1156,7 @@
   12.11      return
   12.12        is_invokedynamic()  // An invokedynamic is always a MethodHandle call site.
   12.13        ||
   12.14 -      (method()->holder()->name() == ciSymbol::java_dyn_MethodHandle() &&
   12.15 +      (method()->holder()->name() == ciSymbol::java_lang_invoke_MethodHandle() &&
   12.16         methodOopDesc::is_method_handle_invoke_name(method()->name()->sid()));
   12.17    }
   12.18  
    13.1 --- a/src/share/vm/c1/c1_LIRGenerator.cpp	Fri Mar 11 22:33:47 2011 -0800
    13.2 +++ b/src/share/vm/c1/c1_LIRGenerator.cpp	Fri Mar 11 22:34:57 2011 -0800
    13.3 @@ -2512,7 +2512,7 @@
    13.4        __ load(new LIR_Address(tmp, call_site_offset, T_OBJECT), tmp);
    13.5  
    13.6        // Load target MethodHandle from CallSite object.
    13.7 -      __ load(new LIR_Address(tmp, java_dyn_CallSite::target_offset_in_bytes(), T_OBJECT), receiver);
    13.8 +      __ load(new LIR_Address(tmp, java_lang_invoke_CallSite::target_offset_in_bytes(), T_OBJECT), receiver);
    13.9  
   13.10        __ call_dynamic(target, receiver, result_register,
   13.11                        SharedRuntime::get_resolve_opt_virtual_call_stub(),
    14.1 --- a/src/share/vm/ci/ciCallSite.cpp	Fri Mar 11 22:33:47 2011 -0800
    14.2 +++ b/src/share/vm/ci/ciCallSite.cpp	Fri Mar 11 22:34:57 2011 -0800
    14.3 @@ -1,5 +1,5 @@
    14.4  /*
    14.5 - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
    14.6 + * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
    14.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.8   *
    14.9   * This code is free software; you can redistribute it and/or modify it
   14.10 @@ -34,7 +34,7 @@
   14.11  // Return the target MethodHandle of this CallSite.
   14.12  ciMethodHandle* ciCallSite::get_target() const {
   14.13    VM_ENTRY_MARK;
   14.14 -  oop method_handle_oop = java_dyn_CallSite::target(get_oop());
   14.15 +  oop method_handle_oop = java_lang_invoke_CallSite::target(get_oop());
   14.16    return CURRENT_ENV->get_object(method_handle_oop)->as_method_handle();
   14.17  }
   14.18  
    15.1 --- a/src/share/vm/ci/ciCallSite.hpp	Fri Mar 11 22:33:47 2011 -0800
    15.2 +++ b/src/share/vm/ci/ciCallSite.hpp	Fri Mar 11 22:34:57 2011 -0800
    15.3 @@ -1,5 +1,5 @@
    15.4  /*
    15.5 - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
    15.6 + * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
    15.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.8   *
    15.9   * This code is free software; you can redistribute it and/or modify it
   15.10 @@ -29,7 +29,7 @@
   15.11  
   15.12  // ciCallSite
   15.13  //
   15.14 -// The class represents a java.dyn.CallSite object.
   15.15 +// The class represents a java.lang.invoke.CallSite object.
   15.16  class ciCallSite : public ciInstance {
   15.17  public:
   15.18    ciCallSite(instanceHandle h_i) : ciInstance(h_i) {}
    16.1 --- a/src/share/vm/ci/ciField.cpp	Fri Mar 11 22:33:47 2011 -0800
    16.2 +++ b/src/share/vm/ci/ciField.cpp	Fri Mar 11 22:34:57 2011 -0800
    16.3 @@ -177,7 +177,7 @@
    16.4      // Never trust strangely unstable finals:  System.out, etc.
    16.5      return false;
    16.6    // Even if general trusting is disabled, trust system-built closures in these packages.
    16.7 -  if (holder->is_in_package("java/dyn") || holder->is_in_package("sun/dyn"))
    16.8 +  if (holder->is_in_package("java/lang/invoke") || holder->is_in_package("sun/invoke"))
    16.9      return true;
   16.10    return TrustFinalNonStaticFields;
   16.11  }
   16.12 @@ -191,8 +191,9 @@
   16.13    // Check to see if the field is constant.
   16.14    if (_holder->is_initialized() && this->is_final()) {
   16.15      if (!this->is_static()) {
   16.16 -      // A field can be constant if it's a final static field or if it's
   16.17 -      // a final non-static field of a trusted class ({java,sun}.dyn).
   16.18 +      // A field can be constant if it's a final static field or if
   16.19 +      // it's a final non-static field of a trusted class (classes in
   16.20 +      // java.lang.invoke and sun.invoke packages and subpackages).
   16.21        if (trust_final_non_static_fields(_holder)) {
   16.22          _is_constant = true;
   16.23          return;
    17.1 --- a/src/share/vm/ci/ciMethod.cpp	Fri Mar 11 22:33:47 2011 -0800
    17.2 +++ b/src/share/vm/ci/ciMethod.cpp	Fri Mar 11 22:34:57 2011 -0800
    17.3 @@ -1,5 +1,5 @@
    17.4  /*
    17.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
    17.6 + * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
    17.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    17.8   *
    17.9   * This code is free software; you can redistribute it and/or modify it
   17.10 @@ -769,7 +769,7 @@
   17.11  // signature-polymorphic MethodHandle methods, invokeExact or invokeGeneric.
   17.12  bool ciMethod::is_method_handle_invoke() const {
   17.13    if (!is_loaded()) {
   17.14 -    bool flag = (holder()->name() == ciSymbol::java_dyn_MethodHandle() &&
   17.15 +    bool flag = (holder()->name() == ciSymbol::java_lang_invoke_MethodHandle() &&
   17.16                   methodOopDesc::is_method_handle_invoke_name(name()->sid()));
   17.17      return flag;
   17.18    }
    18.1 --- a/src/share/vm/ci/ciMethodHandle.hpp	Fri Mar 11 22:33:47 2011 -0800
    18.2 +++ b/src/share/vm/ci/ciMethodHandle.hpp	Fri Mar 11 22:34:57 2011 -0800
    18.3 @@ -1,5 +1,5 @@
    18.4  /*
    18.5 - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
    18.6 + * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
    18.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    18.8   *
    18.9   * This code is free software; you can redistribute it and/or modify it
   18.10 @@ -30,7 +30,7 @@
   18.11  
   18.12  // ciMethodHandle
   18.13  //
   18.14 -// The class represents a java.dyn.MethodHandle object.
   18.15 +// The class represents a java.lang.invoke.MethodHandle object.
   18.16  class ciMethodHandle : public ciInstance {
   18.17  private:
   18.18    ciMethod* _callee;
    19.1 --- a/src/share/vm/ci/ciObjectFactory.cpp	Fri Mar 11 22:33:47 2011 -0800
    19.2 +++ b/src/share/vm/ci/ciObjectFactory.cpp	Fri Mar 11 22:34:57 2011 -0800
    19.3 @@ -1,5 +1,5 @@
    19.4  /*
    19.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
    19.6 + * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
    19.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    19.8   *
    19.9   * This code is free software; you can redistribute it and/or modify it
   19.10 @@ -342,9 +342,9 @@
   19.11      return new (arena()) ciMethodData(h_md);
   19.12    } else if (o->is_instance()) {
   19.13      instanceHandle h_i(THREAD, (instanceOop)o);
   19.14 -    if (java_dyn_CallSite::is_instance(o))
   19.15 +    if (java_lang_invoke_CallSite::is_instance(o))
   19.16        return new (arena()) ciCallSite(h_i);
   19.17 -    else if (java_dyn_MethodHandle::is_instance(o))
   19.18 +    else if (java_lang_invoke_MethodHandle::is_instance(o))
   19.19        return new (arena()) ciMethodHandle(h_i);
   19.20      else
   19.21        return new (arena()) ciInstance(h_i);
    20.1 --- a/src/share/vm/ci/ciStreams.cpp	Fri Mar 11 22:33:47 2011 -0800
    20.2 +++ b/src/share/vm/ci/ciStreams.cpp	Fri Mar 11 22:34:57 2011 -0800
    20.3 @@ -1,5 +1,5 @@
    20.4  /*
    20.5 - * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
    20.6 + * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
    20.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    20.8   *
    20.9   * This code is free software; you can redistribute it and/or modify it
   20.10 @@ -380,7 +380,7 @@
   20.11    bool ignore;
   20.12    // report as InvokeDynamic for invokedynamic, which is syntactically classless
   20.13    if (cur_bc() == Bytecodes::_invokedynamic)
   20.14 -    return CURRENT_ENV->get_klass_by_name(_holder, ciSymbol::java_dyn_InvokeDynamic(), false);
   20.15 +    return CURRENT_ENV->get_klass_by_name(_holder, ciSymbol::java_lang_invoke_InvokeDynamic(), false);
   20.16    return CURRENT_ENV->get_klass_by_index(cpool, get_method_holder_index(), ignore, _holder);
   20.17  }
   20.18  
    21.1 --- a/src/share/vm/classfile/classFileParser.cpp	Fri Mar 11 22:33:47 2011 -0800
    21.2 +++ b/src/share/vm/classfile/classFileParser.cpp	Fri Mar 11 22:34:57 2011 -0800
    21.3 @@ -2806,11 +2806,11 @@
    21.4  
    21.5  // Force MethodHandle.vmentry to be an unmanaged pointer.
    21.6  // There is no way for a classfile to express this, so we must help it.
    21.7 -void ClassFileParser::java_dyn_MethodHandle_fix_pre(constantPoolHandle cp,
    21.8 +void ClassFileParser::java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle cp,
    21.9                                                      typeArrayHandle fields,
   21.10                                                      FieldAllocationCount *fac_ptr,
   21.11                                                      TRAPS) {
   21.12 -  // Add fake fields for java.dyn.MethodHandle instances
   21.13 +  // Add fake fields for java.lang.invoke.MethodHandle instances
   21.14    //
   21.15    // This is not particularly nice, but since there is no way to express
   21.16    // a native wordSize field in Java, we must do it at this level.
   21.17 @@ -2830,7 +2830,7 @@
   21.18    if (AllowTransitionalJSR292 && word_sig_index == 0)  return;
   21.19    if (word_sig_index == 0)
   21.20      THROW_MSG(vmSymbols::java_lang_VirtualMachineError(),
   21.21 -              "missing I or J signature (for vmentry) in java.dyn.MethodHandle");
   21.22 +              "missing I or J signature (for vmentry) in java.lang.invoke.MethodHandle");
   21.23  
   21.24    // Find vmentry field and change the signature.
   21.25    bool found_vmentry = false;
   21.26 @@ -2870,7 +2870,7 @@
   21.27    if (AllowTransitionalJSR292 && !found_vmentry)  return;
   21.28    if (!found_vmentry)
   21.29      THROW_MSG(vmSymbols::java_lang_VirtualMachineError(),
   21.30 -              "missing vmentry byte field in java.dyn.MethodHandle");
   21.31 +              "missing vmentry byte field in java.lang.invoke.MethodHandle");
   21.32  }
   21.33  
   21.34  
   21.35 @@ -3235,14 +3235,18 @@
   21.36        java_lang_Class_fix_pre(&methods, &fac, CHECK_(nullHandle));
   21.37      }
   21.38  
   21.39 -    // adjust the vmentry field declaration in java.dyn.MethodHandle
   21.40 -    if (EnableMethodHandles && class_name == vmSymbols::java_dyn_MethodHandle() && class_loader.is_null()) {
   21.41 -      java_dyn_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle));
   21.42 +    // adjust the vmentry field declaration in java.lang.invoke.MethodHandle
   21.43 +    if (EnableMethodHandles && class_name == vmSymbols::java_lang_invoke_MethodHandle() && class_loader.is_null()) {
   21.44 +      java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle));
   21.45 +    }
   21.46 +    if (AllowTransitionalJSR292 &&
   21.47 +        EnableMethodHandles && class_name == vmSymbols::java_dyn_MethodHandle() && class_loader.is_null()) {
   21.48 +      java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle));
   21.49      }
   21.50      if (AllowTransitionalJSR292 &&
   21.51          EnableMethodHandles && class_name == vmSymbols::sun_dyn_MethodHandleImpl() && class_loader.is_null()) {
   21.52        // allow vmentry field in MethodHandleImpl also
   21.53 -      java_dyn_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle));
   21.54 +      java_lang_invoke_MethodHandle_fix_pre(cp, fields, &fac, CHECK_(nullHandle));
   21.55      }
   21.56  
   21.57      // Add a fake "discovered" field if it is not present
    22.1 --- a/src/share/vm/classfile/classFileParser.hpp	Fri Mar 11 22:33:47 2011 -0800
    22.2 +++ b/src/share/vm/classfile/classFileParser.hpp	Fri Mar 11 22:34:57 2011 -0800
    22.3 @@ -1,5 +1,5 @@
    22.4  /*
    22.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
    22.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
    22.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    22.8   *
    22.9   * This code is free software; you can redistribute it and/or modify it
   22.10 @@ -162,9 +162,9 @@
   22.11    // Adjust the next_nonstatic_oop_offset to place the fake fields
   22.12    // before any Java fields.
   22.13    void java_lang_Class_fix_post(int* next_nonstatic_oop_offset);
   22.14 -  // Adjust the field allocation counts for java.dyn.MethodHandle to add
   22.15 +  // Adjust the field allocation counts for java.lang.invoke.MethodHandle to add
   22.16    // a fake address (void*) field.
   22.17 -  void java_dyn_MethodHandle_fix_pre(constantPoolHandle cp,
   22.18 +  void java_lang_invoke_MethodHandle_fix_pre(constantPoolHandle cp,
   22.19                                       typeArrayHandle fields,
   22.20                                       FieldAllocationCount *fac_ptr, TRAPS);
   22.21  
    23.1 --- a/src/share/vm/classfile/javaClasses.cpp	Fri Mar 11 22:33:47 2011 -0800
    23.2 +++ b/src/share/vm/classfile/javaClasses.cpp	Fri Mar 11 22:34:57 2011 -0800
    23.3 @@ -2198,35 +2198,35 @@
    23.4  }
    23.5  
    23.6  
    23.7 -// Support for java_dyn_MethodHandle
    23.8 -
    23.9 -int java_dyn_MethodHandle::_type_offset;
   23.10 -int java_dyn_MethodHandle::_vmtarget_offset;
   23.11 -int java_dyn_MethodHandle::_vmentry_offset;
   23.12 -int java_dyn_MethodHandle::_vmslots_offset;
   23.13 -
   23.14 -int sun_dyn_MemberName::_clazz_offset;
   23.15 -int sun_dyn_MemberName::_name_offset;
   23.16 -int sun_dyn_MemberName::_type_offset;
   23.17 -int sun_dyn_MemberName::_flags_offset;
   23.18 -int sun_dyn_MemberName::_vmtarget_offset;
   23.19 -int sun_dyn_MemberName::_vmindex_offset;
   23.20 -
   23.21 -int sun_dyn_DirectMethodHandle::_vmindex_offset;
   23.22 -
   23.23 -int sun_dyn_BoundMethodHandle::_argument_offset;
   23.24 -int sun_dyn_BoundMethodHandle::_vmargslot_offset;
   23.25 -
   23.26 -int sun_dyn_AdapterMethodHandle::_conversion_offset;
   23.27 -
   23.28 -void java_dyn_MethodHandle::compute_offsets() {
   23.29 +// Support for java_lang_invoke_MethodHandle
   23.30 +
   23.31 +int java_lang_invoke_MethodHandle::_type_offset;
   23.32 +int java_lang_invoke_MethodHandle::_vmtarget_offset;
   23.33 +int java_lang_invoke_MethodHandle::_vmentry_offset;
   23.34 +int java_lang_invoke_MethodHandle::_vmslots_offset;
   23.35 +
   23.36 +int java_lang_invoke_MemberName::_clazz_offset;
   23.37 +int java_lang_invoke_MemberName::_name_offset;
   23.38 +int java_lang_invoke_MemberName::_type_offset;
   23.39 +int java_lang_invoke_MemberName::_flags_offset;
   23.40 +int java_lang_invoke_MemberName::_vmtarget_offset;
   23.41 +int java_lang_invoke_MemberName::_vmindex_offset;
   23.42 +
   23.43 +int java_lang_invoke_DirectMethodHandle::_vmindex_offset;
   23.44 +
   23.45 +int java_lang_invoke_BoundMethodHandle::_argument_offset;
   23.46 +int java_lang_invoke_BoundMethodHandle::_vmargslot_offset;
   23.47 +
   23.48 +int java_lang_invoke_AdapterMethodHandle::_conversion_offset;
   23.49 +
   23.50 +void java_lang_invoke_MethodHandle::compute_offsets() {
   23.51    klassOop k = SystemDictionary::MethodHandle_klass();
   23.52    if (k != NULL && EnableMethodHandles) {
   23.53      bool allow_super = false;
   23.54 -    if (AllowTransitionalJSR292)  allow_super = true;  // temporary, to access sun.dyn.MethodHandleImpl
   23.55 -    compute_offset(_type_offset,      k, vmSymbols::type_name(),      vmSymbols::java_dyn_MethodType_signature(), allow_super);
   23.56 -    compute_offset(_vmtarget_offset,  k, vmSymbols::vmtarget_name(),  vmSymbols::object_signature(), allow_super);
   23.57 -    compute_offset(_vmentry_offset,   k, vmSymbols::vmentry_name(),   vmSymbols::machine_word_signature(), allow_super);
   23.58 +    if (AllowTransitionalJSR292)  allow_super = true;  // temporary, to access java.dyn.MethodHandleImpl
   23.59 +    compute_offset(_type_offset,      k, vmSymbols::type_name(),      vmSymbols::java_lang_invoke_MethodType_signature(), allow_super);
   23.60 +    compute_offset(_vmtarget_offset,  k, vmSymbols::vmtarget_name(),  vmSymbols::object_signature(),                      allow_super);
   23.61 +    compute_offset(_vmentry_offset,   k, vmSymbols::vmentry_name(),   vmSymbols::machine_word_signature(),                allow_super);
   23.62  
   23.63      // Note:  MH.vmslots (if it is present) is a hoisted copy of MH.type.form.vmslots.
   23.64      // It is optional pending experiments to keep or toss.
   23.65 @@ -2234,7 +2234,7 @@
   23.66    }
   23.67  }
   23.68  
   23.69 -void sun_dyn_MemberName::compute_offsets() {
   23.70 +void java_lang_invoke_MemberName::compute_offsets() {
   23.71    klassOop k = SystemDictionary::MemberName_klass();
   23.72    if (k != NULL && EnableMethodHandles) {
   23.73      compute_offset(_clazz_offset,     k, vmSymbols::clazz_name(),     vmSymbols::class_signature());
   23.74 @@ -2246,14 +2246,14 @@
   23.75    }
   23.76  }
   23.77  
   23.78 -void sun_dyn_DirectMethodHandle::compute_offsets() {
   23.79 +void java_lang_invoke_DirectMethodHandle::compute_offsets() {
   23.80    klassOop k = SystemDictionary::DirectMethodHandle_klass();
   23.81    if (k != NULL && EnableMethodHandles) {
   23.82      compute_offset(_vmindex_offset,   k, vmSymbols::vmindex_name(),   vmSymbols::int_signature(),    true);
   23.83    }
   23.84  }
   23.85  
   23.86 -void sun_dyn_BoundMethodHandle::compute_offsets() {
   23.87 +void java_lang_invoke_BoundMethodHandle::compute_offsets() {
   23.88    klassOop k = SystemDictionary::BoundMethodHandle_klass();
   23.89    if (k != NULL && EnableMethodHandles) {
   23.90      compute_offset(_vmargslot_offset, k, vmSymbols::vmargslot_name(), vmSymbols::int_signature(),    true);
   23.91 @@ -2261,22 +2261,22 @@
   23.92    }
   23.93  }
   23.94  
   23.95 -void sun_dyn_AdapterMethodHandle::compute_offsets() {
   23.96 +void java_lang_invoke_AdapterMethodHandle::compute_offsets() {
   23.97    klassOop k = SystemDictionary::AdapterMethodHandle_klass();
   23.98    if (k != NULL && EnableMethodHandles) {
   23.99      compute_offset(_conversion_offset, k, vmSymbols::conversion_name(), vmSymbols::int_signature(), true);
  23.100    }
  23.101  }
  23.102  
  23.103 -oop java_dyn_MethodHandle::type(oop mh) {
  23.104 +oop java_lang_invoke_MethodHandle::type(oop mh) {
  23.105    return mh->obj_field(_type_offset);
  23.106  }
  23.107  
  23.108 -void java_dyn_MethodHandle::set_type(oop mh, oop mtype) {
  23.109 +void java_lang_invoke_MethodHandle::set_type(oop mh, oop mtype) {
  23.110    mh->obj_field_put(_type_offset, mtype);
  23.111  }
  23.112  
  23.113 -int java_dyn_MethodHandle::vmslots(oop mh) {
  23.114 +int java_lang_invoke_MethodHandle::vmslots(oop mh) {
  23.115    int vmslots_offset = _vmslots_offset;
  23.116    if (vmslots_offset != 0) {
  23.117  #ifdef ASSERT
  23.118 @@ -2291,7 +2291,7 @@
  23.119  }
  23.120  
  23.121  // if MH.vmslots exists, hoist into it the value of type.form.vmslots
  23.122 -void java_dyn_MethodHandle::init_vmslots(oop mh) {
  23.123 +void java_lang_invoke_MethodHandle::init_vmslots(oop mh) {
  23.124    int vmslots_offset = _vmslots_offset;
  23.125    if (vmslots_offset != 0) {
  23.126      mh->int_field_put(vmslots_offset, compute_vmslots(mh));
  23.127 @@ -2300,20 +2300,20 @@
  23.128  
  23.129  // fetch type.form.vmslots, which is the number of JVM stack slots
  23.130  // required to carry the arguments of this MH
  23.131 -int java_dyn_MethodHandle::compute_vmslots(oop mh) {
  23.132 +int java_lang_invoke_MethodHandle::compute_vmslots(oop mh) {
  23.133    oop mtype = type(mh);
  23.134    if (mtype == NULL)  return 0;  // Java code would get NPE
  23.135 -  oop form = java_dyn_MethodType::form(mtype);
  23.136 +  oop form = java_lang_invoke_MethodType::form(mtype);
  23.137    if (form == NULL)   return 0;  // Java code would get NPE
  23.138 -  return java_dyn_MethodTypeForm::vmslots(form);
  23.139 +  return java_lang_invoke_MethodTypeForm::vmslots(form);
  23.140  }
  23.141  
  23.142  // fetch the low-level entry point for this mh
  23.143 -MethodHandleEntry* java_dyn_MethodHandle::vmentry(oop mh) {
  23.144 +MethodHandleEntry* java_lang_invoke_MethodHandle::vmentry(oop mh) {
  23.145    return (MethodHandleEntry*) mh->address_field(_vmentry_offset);
  23.146  }
  23.147  
  23.148 -void java_dyn_MethodHandle::set_vmentry(oop mh, MethodHandleEntry* me) {
  23.149 +void java_lang_invoke_MethodHandle::set_vmentry(oop mh, MethodHandleEntry* me) {
  23.150    assert(_vmentry_offset != 0, "must be present");
  23.151  
  23.152    // This is always the final step that initializes a valid method handle:
  23.153 @@ -2327,123 +2327,123 @@
  23.154  
  23.155  /// MemberName accessors
  23.156  
  23.157 -oop sun_dyn_MemberName::clazz(oop mname) {
  23.158 +oop java_lang_invoke_MemberName::clazz(oop mname) {
  23.159    assert(is_instance(mname), "wrong type");
  23.160    return mname->obj_field(_clazz_offset);
  23.161  }
  23.162  
  23.163 -void sun_dyn_MemberName::set_clazz(oop mname, oop clazz) {
  23.164 +void java_lang_invoke_MemberName::set_clazz(oop mname, oop clazz) {
  23.165    assert(is_instance(mname), "wrong type");
  23.166    mname->obj_field_put(_clazz_offset, clazz);
  23.167  }
  23.168  
  23.169 -oop sun_dyn_MemberName::name(oop mname) {
  23.170 +oop java_lang_invoke_MemberName::name(oop mname) {
  23.171    assert(is_instance(mname), "wrong type");
  23.172    return mname->obj_field(_name_offset);
  23.173  }
  23.174  
  23.175 -void sun_dyn_MemberName::set_name(oop mname, oop name) {
  23.176 +void java_lang_invoke_MemberName::set_name(oop mname, oop name) {
  23.177    assert(is_instance(mname), "wrong type");
  23.178    mname->obj_field_put(_name_offset, name);
  23.179  }
  23.180  
  23.181 -oop sun_dyn_MemberName::type(oop mname) {
  23.182 +oop java_lang_invoke_MemberName::type(oop mname) {
  23.183    assert(is_instance(mname), "wrong type");
  23.184    return mname->obj_field(_type_offset);
  23.185  }
  23.186  
  23.187 -void sun_dyn_MemberName::set_type(oop mname, oop type) {
  23.188 +void java_lang_invoke_MemberName::set_type(oop mname, oop type) {
  23.189    assert(is_instance(mname), "wrong type");
  23.190    mname->obj_field_put(_type_offset, type);
  23.191  }
  23.192  
  23.193 -int sun_dyn_MemberName::flags(oop mname) {
  23.194 +int java_lang_invoke_MemberName::flags(oop mname) {
  23.195    assert(is_instance(mname), "wrong type");
  23.196    return mname->int_field(_flags_offset);
  23.197  }
  23.198  
  23.199 -void sun_dyn_MemberName::set_flags(oop mname, int flags) {
  23.200 +void java_lang_invoke_MemberName::set_flags(oop mname, int flags) {
  23.201    assert(is_instance(mname), "wrong type");
  23.202    mname->int_field_put(_flags_offset, flags);
  23.203  }
  23.204  
  23.205 -oop sun_dyn_MemberName::vmtarget(oop mname) {
  23.206 +oop java_lang_invoke_MemberName::vmtarget(oop mname) {
  23.207    assert(is_instance(mname), "wrong type");
  23.208    return mname->obj_field(_vmtarget_offset);
  23.209  }
  23.210  
  23.211 -void sun_dyn_MemberName::set_vmtarget(oop mname, oop ref) {
  23.212 +void java_lang_invoke_MemberName::set_vmtarget(oop mname, oop ref) {
  23.213    assert(is_instance(mname), "wrong type");
  23.214    mname->obj_field_put(_vmtarget_offset, ref);
  23.215  }
  23.216  
  23.217 -int sun_dyn_MemberName::vmindex(oop mname) {
  23.218 +int java_lang_invoke_MemberName::vmindex(oop mname) {
  23.219    assert(is_instance(mname), "wrong type");
  23.220    return mname->int_field(_vmindex_offset);
  23.221  }
  23.222  
  23.223 -void sun_dyn_MemberName::set_vmindex(oop mname, int index) {
  23.224 +void java_lang_invoke_MemberName::set_vmindex(oop mname, int index) {
  23.225    assert(is_instance(mname), "wrong type");
  23.226    mname->int_field_put(_vmindex_offset, index);
  23.227  }
  23.228  
  23.229 -oop java_dyn_MethodHandle::vmtarget(oop mh) {
  23.230 +oop java_lang_invoke_MethodHandle::vmtarget(oop mh) {
  23.231    assert(is_instance(mh), "MH only");
  23.232    return mh->obj_field(_vmtarget_offset);
  23.233  }
  23.234  
  23.235 -void java_dyn_MethodHandle::set_vmtarget(oop mh, oop ref) {
  23.236 +void java_lang_invoke_MethodHandle::set_vmtarget(oop mh, oop ref) {
  23.237    assert(is_instance(mh), "MH only");
  23.238    mh->obj_field_put(_vmtarget_offset, ref);
  23.239  }
  23.240  
  23.241 -int sun_dyn_DirectMethodHandle::vmindex(oop mh) {
  23.242 +int java_lang_invoke_DirectMethodHandle::vmindex(oop mh) {
  23.243    assert(is_instance(mh), "DMH only");
  23.244    return mh->int_field(_vmindex_offset);
  23.245  }
  23.246  
  23.247 -void sun_dyn_DirectMethodHandle::set_vmindex(oop mh, int index) {
  23.248 +void java_lang_invoke_DirectMethodHandle::set_vmindex(oop mh, int index) {
  23.249    assert(is_instance(mh), "DMH only");
  23.250    mh->int_field_put(_vmindex_offset, index);
  23.251  }
  23.252  
  23.253 -int sun_dyn_BoundMethodHandle::vmargslot(oop mh) {
  23.254 +int java_lang_invoke_BoundMethodHandle::vmargslot(oop mh) {
  23.255    assert(is_instance(mh), "BMH only");
  23.256    return mh->int_field(_vmargslot_offset);
  23.257  }
  23.258  
  23.259 -oop sun_dyn_BoundMethodHandle::argument(oop mh) {
  23.260 +oop java_lang_invoke_BoundMethodHandle::argument(oop mh) {
  23.261    assert(is_instance(mh), "BMH only");
  23.262    return mh->obj_field(_argument_offset);
  23.263  }
  23.264  
  23.265 -int sun_dyn_AdapterMethodHandle::conversion(oop mh) {
  23.266 +int java_lang_invoke_AdapterMethodHandle::conversion(oop mh) {
  23.267    assert(is_instance(mh), "AMH only");
  23.268    return mh->int_field(_conversion_offset);
  23.269  }
  23.270  
  23.271 -void sun_dyn_AdapterMethodHandle::set_conversion(oop mh, int conv) {
  23.272 +void java_lang_invoke_AdapterMethodHandle::set_conversion(oop mh, int conv) {
  23.273    assert(is_instance(mh), "AMH only");
  23.274    mh->int_field_put(_conversion_offset, conv);
  23.275  }
  23.276  
  23.277  
  23.278 -// Support for java_dyn_MethodType
  23.279 -
  23.280 -int java_dyn_MethodType::_rtype_offset;
  23.281 -int java_dyn_MethodType::_ptypes_offset;
  23.282 -int java_dyn_MethodType::_form_offset;
  23.283 -
  23.284 -void java_dyn_MethodType::compute_offsets() {
  23.285 +// Support for java_lang_invoke_MethodType
  23.286 +
  23.287 +int java_lang_invoke_MethodType::_rtype_offset;
  23.288 +int java_lang_invoke_MethodType::_ptypes_offset;
  23.289 +int java_lang_invoke_MethodType::_form_offset;
  23.290 +
  23.291 +void java_lang_invoke_MethodType::compute_offsets() {
  23.292    klassOop k = SystemDictionary::MethodType_klass();
  23.293    if (k != NULL) {
  23.294      compute_offset(_rtype_offset,  k, vmSymbols::rtype_name(),  vmSymbols::class_signature());
  23.295      compute_offset(_ptypes_offset, k, vmSymbols::ptypes_name(), vmSymbols::class_array_signature());
  23.296 -    compute_offset(_form_offset,   k, vmSymbols::form_name(),   vmSymbols::java_dyn_MethodTypeForm_signature());
  23.297 +    compute_offset(_form_offset,   k, vmSymbols::form_name(),   vmSymbols::java_lang_invoke_MethodTypeForm_signature());
  23.298    }
  23.299  }
  23.300  
  23.301 -void java_dyn_MethodType::print_signature(oop mt, outputStream* st) {
  23.302 +void java_lang_invoke_MethodType::print_signature(oop mt, outputStream* st) {
  23.303    st->print("(");
  23.304    objArrayOop pts = ptypes(mt);
  23.305    for (int i = 0, limit = pts->length(); i < limit; i++) {
  23.306 @@ -2453,7 +2453,7 @@
  23.307    java_lang_Class::print_signature(rtype(mt), st);
  23.308  }
  23.309  
  23.310 -Symbol* java_dyn_MethodType::as_signature(oop mt, bool intern_if_not_found, TRAPS) {
  23.311 +Symbol* java_lang_invoke_MethodType::as_signature(oop mt, bool intern_if_not_found, TRAPS) {
  23.312    ResourceMark rm;
  23.313    stringStream buffer(128);
  23.314    print_signature(mt, &buffer);
  23.315 @@ -2468,80 +2468,80 @@
  23.316    return name;
  23.317  }
  23.318  
  23.319 -oop java_dyn_MethodType::rtype(oop mt) {
  23.320 +oop java_lang_invoke_MethodType::rtype(oop mt) {
  23.321    assert(is_instance(mt), "must be a MethodType");
  23.322    return mt->obj_field(_rtype_offset);
  23.323  }
  23.324  
  23.325 -objArrayOop java_dyn_MethodType::ptypes(oop mt) {
  23.326 +objArrayOop java_lang_invoke_MethodType::ptypes(oop mt) {
  23.327    assert(is_instance(mt), "must be a MethodType");
  23.328    return (objArrayOop) mt->obj_field(_ptypes_offset);
  23.329  }
  23.330  
  23.331 -oop java_dyn_MethodType::form(oop mt) {
  23.332 +oop java_lang_invoke_MethodType::form(oop mt) {
  23.333    assert(is_instance(mt), "must be a MethodType");
  23.334    return mt->obj_field(_form_offset);
  23.335  }
  23.336  
  23.337 -oop java_dyn_MethodType::ptype(oop mt, int idx) {
  23.338 +oop java_lang_invoke_MethodType::ptype(oop mt, int idx) {
  23.339    return ptypes(mt)->obj_at(idx);
  23.340  }
  23.341  
  23.342 -int java_dyn_MethodType::ptype_count(oop mt) {
  23.343 +int java_lang_invoke_MethodType::ptype_count(oop mt) {
  23.344    return ptypes(mt)->length();
  23.345  }
  23.346  
  23.347  
  23.348  
  23.349 -// Support for java_dyn_MethodTypeForm
  23.350 -
  23.351 -int java_dyn_MethodTypeForm::_vmslots_offset;
  23.352 -int java_dyn_MethodTypeForm::_erasedType_offset;
  23.353 -int java_dyn_MethodTypeForm::_genericInvoker_offset;
  23.354 -
  23.355 -void java_dyn_MethodTypeForm::compute_offsets() {
  23.356 +// Support for java_lang_invoke_MethodTypeForm
  23.357 +
  23.358 +int java_lang_invoke_MethodTypeForm::_vmslots_offset;
  23.359 +int java_lang_invoke_MethodTypeForm::_erasedType_offset;
  23.360 +int java_lang_invoke_MethodTypeForm::_genericInvoker_offset;
  23.361 +
  23.362 +void java_lang_invoke_MethodTypeForm::compute_offsets() {
  23.363    klassOop k = SystemDictionary::MethodTypeForm_klass();
  23.364    if (k != NULL) {
  23.365      compute_optional_offset(_vmslots_offset,    k, vmSymbols::vmslots_name(),    vmSymbols::int_signature(), true);
  23.366 -    compute_optional_offset(_erasedType_offset, k, vmSymbols::erasedType_name(), vmSymbols::java_dyn_MethodType_signature(), true);
  23.367 -    compute_optional_offset(_genericInvoker_offset, k, vmSymbols::genericInvoker_name(), vmSymbols::java_dyn_MethodHandle_signature(), true);
  23.368 +    compute_optional_offset(_erasedType_offset, k, vmSymbols::erasedType_name(), vmSymbols::java_lang_invoke_MethodType_signature(), true);
  23.369 +    compute_optional_offset(_genericInvoker_offset, k, vmSymbols::genericInvoker_name(), vmSymbols::java_lang_invoke_MethodHandle_signature(), true);
  23.370      if (_genericInvoker_offset == 0)  _genericInvoker_offset = -1;  // set to explicit "empty" value
  23.371    }
  23.372  }
  23.373  
  23.374 -int java_dyn_MethodTypeForm::vmslots(oop mtform) {
  23.375 +int java_lang_invoke_MethodTypeForm::vmslots(oop mtform) {
  23.376    assert(mtform->klass() == SystemDictionary::MethodTypeForm_klass(), "MTForm only");
  23.377    return mtform->int_field(_vmslots_offset);
  23.378  }
  23.379  
  23.380 -oop java_dyn_MethodTypeForm::erasedType(oop mtform) {
  23.381 +oop java_lang_invoke_MethodTypeForm::erasedType(oop mtform) {
  23.382    assert(mtform->klass() == SystemDictionary::MethodTypeForm_klass(), "MTForm only");
  23.383    return mtform->obj_field(_erasedType_offset);
  23.384  }
  23.385  
  23.386 -oop java_dyn_MethodTypeForm::genericInvoker(oop mtform) {
  23.387 +oop java_lang_invoke_MethodTypeForm::genericInvoker(oop mtform) {
  23.388    assert(mtform->klass() == SystemDictionary::MethodTypeForm_klass(), "MTForm only");
  23.389    return mtform->obj_field(_genericInvoker_offset);
  23.390  }
  23.391  
  23.392  
  23.393 -// Support for java_dyn_CallSite
  23.394 -
  23.395 -int java_dyn_CallSite::_target_offset;
  23.396 -
  23.397 -void java_dyn_CallSite::compute_offsets() {
  23.398 +// Support for java_lang_invoke_CallSite
  23.399 +
  23.400 +int java_lang_invoke_CallSite::_target_offset;
  23.401 +
  23.402 +void java_lang_invoke_CallSite::compute_offsets() {
  23.403    if (!EnableInvokeDynamic)  return;
  23.404    klassOop k = SystemDictionary::CallSite_klass();
  23.405    if (k != NULL) {
  23.406 -    compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_dyn_MethodHandle_signature());
  23.407 +    compute_offset(_target_offset, k, vmSymbols::target_name(), vmSymbols::java_lang_invoke_MethodHandle_signature());
  23.408    }
  23.409  }
  23.410  
  23.411 -oop java_dyn_CallSite::target(oop site) {
  23.412 +oop java_lang_invoke_CallSite::target(oop site) {
  23.413    return site->obj_field(_target_offset);
  23.414  }
  23.415  
  23.416 -void java_dyn_CallSite::set_target(oop site, oop target) {
  23.417 +void java_lang_invoke_CallSite::set_target(oop site, oop target) {
  23.418    site->obj_field_put(_target_offset, target);
  23.419  }
  23.420  
  23.421 @@ -2881,16 +2881,16 @@
  23.422    java_lang_Thread::compute_offsets();
  23.423    java_lang_ThreadGroup::compute_offsets();
  23.424    if (EnableMethodHandles) {
  23.425 -    java_dyn_MethodHandle::compute_offsets();
  23.426 -    sun_dyn_MemberName::compute_offsets();
  23.427 -    sun_dyn_DirectMethodHandle::compute_offsets();
  23.428 -    sun_dyn_BoundMethodHandle::compute_offsets();
  23.429 -    sun_dyn_AdapterMethodHandle::compute_offsets();
  23.430 -    java_dyn_MethodType::compute_offsets();
  23.431 -    java_dyn_MethodTypeForm::compute_offsets();
  23.432 +    java_lang_invoke_MethodHandle::compute_offsets();
  23.433 +    java_lang_invoke_MemberName::compute_offsets();
  23.434 +    java_lang_invoke_DirectMethodHandle::compute_offsets();
  23.435 +    java_lang_invoke_BoundMethodHandle::compute_offsets();
  23.436 +    java_lang_invoke_AdapterMethodHandle::compute_offsets();
  23.437 +    java_lang_invoke_MethodType::compute_offsets();
  23.438 +    java_lang_invoke_MethodTypeForm::compute_offsets();
  23.439    }
  23.440    if (EnableInvokeDynamic) {
  23.441 -    java_dyn_CallSite::compute_offsets();
  23.442 +    java_lang_invoke_CallSite::compute_offsets();
  23.443    }
  23.444    java_security_AccessControlContext::compute_offsets();
  23.445    // Initialize reflection classes. The layouts of these classes
    24.1 --- a/src/share/vm/classfile/javaClasses.hpp	Fri Mar 11 22:33:47 2011 -0800
    24.2 +++ b/src/share/vm/classfile/javaClasses.hpp	Fri Mar 11 22:34:57 2011 -0800
    24.3 @@ -1,5 +1,5 @@
    24.4  /*
    24.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
    24.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
    24.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    24.8   *
    24.9   * This code is free software; you can redistribute it and/or modify it
   24.10 @@ -794,11 +794,11 @@
   24.11  };
   24.12  
   24.13  
   24.14 -// Interface to java.dyn.MethodHandle objects
   24.15 +// Interface to java.lang.invoke.MethodHandle objects
   24.16  
   24.17  class MethodHandleEntry;
   24.18  
   24.19 -class java_dyn_MethodHandle: AllStatic {
   24.20 +class java_lang_invoke_MethodHandle: AllStatic {
   24.21    friend class JavaClasses;
   24.22  
   24.23   private:
   24.24 @@ -839,7 +839,7 @@
   24.25    static int vmslots_offset_in_bytes()          { return _vmslots_offset; }
   24.26  };
   24.27  
   24.28 -class sun_dyn_DirectMethodHandle: public java_dyn_MethodHandle {
   24.29 +class java_lang_invoke_DirectMethodHandle: public java_lang_invoke_MethodHandle {
   24.30    friend class JavaClasses;
   24.31  
   24.32   private:
   24.33 @@ -864,7 +864,7 @@
   24.34    static int vmindex_offset_in_bytes()          { return _vmindex_offset; }
   24.35  };
   24.36  
   24.37 -class sun_dyn_BoundMethodHandle: public java_dyn_MethodHandle {
   24.38 +class java_lang_invoke_BoundMethodHandle: public java_lang_invoke_MethodHandle {
   24.39    friend class JavaClasses;
   24.40  
   24.41   private:
   24.42 @@ -891,7 +891,7 @@
   24.43    static int vmargslot_offset_in_bytes()        { return _vmargslot_offset; }
   24.44  };
   24.45  
   24.46 -class sun_dyn_AdapterMethodHandle: public sun_dyn_BoundMethodHandle {
   24.47 +class java_lang_invoke_AdapterMethodHandle: public java_lang_invoke_BoundMethodHandle {
   24.48    friend class JavaClasses;
   24.49  
   24.50   private:
   24.51 @@ -942,14 +942,14 @@
   24.52  };
   24.53  
   24.54  
   24.55 -// Interface to sun.dyn.MemberName objects
   24.56 +// Interface to java.lang.invoke.MemberName objects
   24.57  // (These are a private interface for Java code to query the class hierarchy.)
   24.58  
   24.59 -class sun_dyn_MemberName: AllStatic {
   24.60 +class java_lang_invoke_MemberName: AllStatic {
   24.61    friend class JavaClasses;
   24.62  
   24.63   private:
   24.64 -  // From java.dyn.MemberName:
   24.65 +  // From java.lang.invoke.MemberName:
   24.66    //    private Class<?>   clazz;       // class in which the method is defined
   24.67    //    private String     name;        // may be null if not yet materialized
   24.68    //    private Object     type;        // may be null if not yet materialized
   24.69 @@ -1018,9 +1018,9 @@
   24.70  };
   24.71  
   24.72  
   24.73 -// Interface to java.dyn.MethodType objects
   24.74 +// Interface to java.lang.invoke.MethodType objects
   24.75  
   24.76 -class java_dyn_MethodType: AllStatic {
   24.77 +class java_lang_invoke_MethodType: AllStatic {
   24.78    friend class JavaClasses;
   24.79  
   24.80   private:
   24.81 @@ -1052,7 +1052,7 @@
   24.82    static int form_offset_in_bytes()             { return _form_offset; }
   24.83  };
   24.84  
   24.85 -class java_dyn_MethodTypeForm: AllStatic {
   24.86 +class java_lang_invoke_MethodTypeForm: AllStatic {
   24.87    friend class JavaClasses;
   24.88  
   24.89   private:
   24.90 @@ -1075,9 +1075,9 @@
   24.91  };
   24.92  
   24.93  
   24.94 -// Interface to java.dyn.CallSite objects
   24.95 +// Interface to java.lang.invoke.CallSite objects
   24.96  
   24.97 -class java_dyn_CallSite: AllStatic {
   24.98 +class java_lang_invoke_CallSite: AllStatic {
   24.99    friend class JavaClasses;
  24.100  
  24.101  private:
    25.1 --- a/src/share/vm/classfile/systemDictionary.cpp	Fri Mar 11 22:33:47 2011 -0800
    25.2 +++ b/src/share/vm/classfile/systemDictionary.cpp	Fri Mar 11 22:34:57 2011 -0800
    25.3 @@ -2450,7 +2450,7 @@
    25.4    }
    25.5  }
    25.6  
    25.7 -// Ask Java code to find or construct a java.dyn.MethodType for the given
    25.8 +// Ask Java code to find or construct a java.lang.invoke.MethodType for the given
    25.9  // signature, as interpreted relative to the given class loader.
   25.10  // Because of class loader constraints, all method handle usage must be
   25.11  // consistent with this loader.
   25.12 @@ -2504,25 +2504,33 @@
   25.13    }
   25.14    assert(arg == npts, "");
   25.15  
   25.16 -  // call sun.dyn.MethodHandleNatives::findMethodType(Class rt, Class[] pts) -> MethodType
   25.17 +  // call java.lang.invoke.MethodHandleNatives::findMethodType(Class rt, Class[] pts) -> MethodType
   25.18    JavaCallArguments args(Handle(THREAD, rt()));
   25.19    args.push_oop(pts());
   25.20    JavaValue result(T_OBJECT);
   25.21 +  Symbol* findMethodHandleType_signature = vmSymbols::findMethodHandleType_signature();
   25.22 +  if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodType_klass()->name() == vmSymbols::java_dyn_MethodType()) {
   25.23 +    findMethodHandleType_signature = vmSymbols::findMethodHandleType_TRANS_signature();
   25.24 +  }
   25.25    JavaCalls::call_static(&result,
   25.26                           SystemDictionary::MethodHandleNatives_klass(),
   25.27                           vmSymbols::findMethodHandleType_name(),
   25.28 -                         vmSymbols::findMethodHandleType_signature(),
   25.29 +                         findMethodHandleType_signature,
   25.30                           &args, CHECK_(empty));
   25.31    Handle method_type(THREAD, (oop) result.get_jobject());
   25.32  
   25.33    if (for_invokeGeneric) {
   25.34 -    // call sun.dyn.MethodHandleNatives::notifyGenericMethodType(MethodType) -> void
   25.35 +    // call java.lang.invoke.MethodHandleNatives::notifyGenericMethodType(MethodType) -> void
   25.36      JavaCallArguments args(Handle(THREAD, method_type()));
   25.37      JavaValue no_result(T_VOID);
   25.38 +    Symbol* notifyGenericMethodType_signature = vmSymbols::notifyGenericMethodType_signature();
   25.39 +    if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodType_klass()->name() == vmSymbols::java_dyn_MethodType()) {
   25.40 +      notifyGenericMethodType_signature = vmSymbols::notifyGenericMethodType_TRANS_signature();
   25.41 +    }
   25.42      JavaCalls::call_static(&no_result,
   25.43                             SystemDictionary::MethodHandleNatives_klass(),
   25.44                             vmSymbols::notifyGenericMethodType_name(),
   25.45 -                           vmSymbols::notifyGenericMethodType_signature(),
   25.46 +                           notifyGenericMethodType_signature,
   25.47                             &args, THREAD);
   25.48      if (HAS_PENDING_EXCEPTION) {
   25.49        // If the notification fails, just kill it.
   25.50 @@ -2563,7 +2571,7 @@
   25.51      THROW_MSG_(vmSymbols::java_lang_LinkageError(), "bad signature", empty);
   25.52    }
   25.53  
   25.54 -  // call sun.dyn.MethodHandleNatives::linkMethodHandleConstant(Class caller, int refKind, Class callee, String name, Object type) -> MethodHandle
   25.55 +  // call java.lang.invoke.MethodHandleNatives::linkMethodHandleConstant(Class caller, int refKind, Class callee, String name, Object type) -> MethodHandle
   25.56    JavaCallArguments args;
   25.57    args.push_oop(caller->java_mirror());  // the referring class
   25.58    args.push_int(ref_kind);
   25.59 @@ -2571,15 +2579,19 @@
   25.60    args.push_oop(name());
   25.61    args.push_oop(type());
   25.62    JavaValue result(T_OBJECT);
   25.63 +  Symbol* linkMethodHandleConstant_signature = vmSymbols::linkMethodHandleConstant_signature();
   25.64 +  if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodHandle_klass()->name() == vmSymbols::java_dyn_MethodHandle()) {
   25.65 +    linkMethodHandleConstant_signature = vmSymbols::linkMethodHandleConstant_TRANS_signature();
   25.66 +  }
   25.67    JavaCalls::call_static(&result,
   25.68                           SystemDictionary::MethodHandleNatives_klass(),
   25.69                           vmSymbols::linkMethodHandleConstant_name(),
   25.70 -                         vmSymbols::linkMethodHandleConstant_signature(),
   25.71 +                         linkMethodHandleConstant_signature,
   25.72                           &args, CHECK_(empty));
   25.73    return Handle(THREAD, (oop) result.get_jobject());
   25.74  }
   25.75  
   25.76 -// Ask Java code to find or construct a java.dyn.CallSite for the given
   25.77 +// Ask Java code to find or construct a java.lang.invoke.CallSite for the given
   25.78  // name and signature, as interpreted relative to the given class loader.
   25.79  Handle SystemDictionary::make_dynamic_call_site(Handle bootstrap_method,
   25.80                                                  Symbol* name,
   25.81 @@ -2590,13 +2602,13 @@
   25.82                                                  TRAPS) {
   25.83    Handle empty;
   25.84    guarantee(bootstrap_method.not_null() &&
   25.85 -            java_dyn_MethodHandle::is_instance(bootstrap_method()),
   25.86 +            java_lang_invoke_MethodHandle::is_instance(bootstrap_method()),
   25.87              "caller must supply a valid BSM");
   25.88  
   25.89    Handle caller_mname = MethodHandles::new_MemberName(CHECK_(empty));
   25.90    MethodHandles::init_MemberName(caller_mname(), caller_method());
   25.91  
   25.92 -  // call sun.dyn.MethodHandleNatives::makeDynamicCallSite(bootm, name, mtype, info, caller_mname, caller_pos)
   25.93 +  // call java.lang.invoke.MethodHandleNatives::makeDynamicCallSite(bootm, name, mtype, info, caller_mname, caller_pos)
   25.94    oop name_str_oop = StringTable::intern(name, CHECK_(empty)); // not a handle!
   25.95    JavaCallArguments args(Handle(THREAD, bootstrap_method()));
   25.96    args.push_oop(name_str_oop);
   25.97 @@ -2609,6 +2621,9 @@
   25.98    if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodHandleNatives_klass()->name() == vmSymbols::sun_dyn_MethodHandleNatives()) {
   25.99      makeDynamicCallSite_signature = vmSymbols::makeDynamicCallSite_TRANS_signature();
  25.100    }
  25.101 +  if (AllowTransitionalJSR292 && SystemDictionaryHandles::MethodHandleNatives_klass()->name() == vmSymbols::java_dyn_MethodHandleNatives()) {
  25.102 +    makeDynamicCallSite_signature = vmSymbols::makeDynamicCallSite_TRANS2_signature();
  25.103 +  }
  25.104    JavaCalls::call_static(&result,
  25.105                           SystemDictionary::MethodHandleNatives_klass(),
  25.106                           vmSymbols::makeDynamicCallSite_name(),
  25.107 @@ -2616,7 +2631,7 @@
  25.108                           &args, CHECK_(empty));
  25.109    oop call_site_oop = (oop) result.get_jobject();
  25.110    assert(call_site_oop->is_oop()
  25.111 -         /*&& java_dyn_CallSite::is_instance(call_site_oop)*/, "must be sane");
  25.112 +         /*&& java_lang_invoke_CallSite::is_instance(call_site_oop)*/, "must be sane");
  25.113    if (TraceMethodHandles) {
  25.114  #ifndef PRODUCT
  25.115      tty->print_cr("Linked invokedynamic bci=%d site="INTPTR_FORMAT":", caller_bci, call_site_oop);
    26.1 --- a/src/share/vm/classfile/systemDictionary.hpp	Fri Mar 11 22:33:47 2011 -0800
    26.2 +++ b/src/share/vm/classfile/systemDictionary.hpp	Fri Mar 11 22:34:57 2011 -0800
    26.3 @@ -144,18 +144,18 @@
    26.4    template(reflect_UnsafeStaticFieldAccessorImpl_klass, sun_reflect_UnsafeStaticFieldAccessorImpl, Opt_Only_JDK15) \
    26.5                                                                                \
    26.6    /* support for dynamic typing; it's OK if these are NULL in earlier JDKs */ \
    26.7 -  template(MethodHandle_klass,           java_dyn_MethodHandle,          Pre_JSR292) \
    26.8 -  template(MemberName_klass,             java_dyn_MemberName,            Pre_JSR292) \
    26.9 -  template(MethodHandleImpl_klass,       java_dyn_MethodHandleImpl,      Pre_JSR292) /* AllowTransitionalJSR292 ONLY */ \
   26.10 -  template(MethodHandleNatives_klass,    java_dyn_MethodHandleNatives,   Pre_JSR292) \
   26.11 -  template(AdapterMethodHandle_klass,    java_dyn_AdapterMethodHandle,   Pre_JSR292) \
   26.12 -  template(BoundMethodHandle_klass,      java_dyn_BoundMethodHandle,     Pre_JSR292) \
   26.13 -  template(DirectMethodHandle_klass,     java_dyn_DirectMethodHandle,    Pre_JSR292) \
   26.14 -  template(MethodType_klass,             java_dyn_MethodType,            Pre_JSR292) \
   26.15 -  template(MethodTypeForm_klass,         java_dyn_MethodTypeForm,        Pre_JSR292) \
   26.16 -  template(WrongMethodTypeException_klass, java_dyn_WrongMethodTypeException, Pre_JSR292) \
   26.17 -  template(Linkage_klass,                java_dyn_Linkage,               Pre_JSR292) \
   26.18 -  template(CallSite_klass,               java_dyn_CallSite,              Pre_JSR292) \
   26.19 +  template(MethodHandle_klass,           java_lang_invoke_MethodHandle,     Pre_JSR292) \
   26.20 +  template(MemberName_klass,             java_lang_invoke_MemberName,       Pre_JSR292) \
   26.21 +  template(MethodHandleImpl_klass,       sun_dyn_MethodHandleImpl,          Opt) /* AllowTransitionalJSR292 ONLY */ \
   26.22 +  template(MethodHandleNatives_klass,    java_lang_invoke_MethodHandleNatives, Pre_JSR292) \
   26.23 +  template(AdapterMethodHandle_klass,    java_lang_invoke_AdapterMethodHandle, Pre_JSR292) \
   26.24 +  template(BoundMethodHandle_klass,      java_lang_invoke_BoundMethodHandle, Pre_JSR292) \
   26.25 +  template(DirectMethodHandle_klass,     java_lang_invoke_DirectMethodHandle, Pre_JSR292) \
   26.26 +  template(MethodType_klass,             java_lang_invoke_MethodType,       Pre_JSR292) \
   26.27 +  template(MethodTypeForm_klass,         java_lang_invoke_MethodTypeForm,   Pre_JSR292) \
   26.28 +  template(WrongMethodTypeException_klass, java_lang_invoke_WrongMethodTypeException, Pre_JSR292) \
   26.29 +  template(Linkage_klass,                java_lang_invoke_Linkage,          Opt) /* AllowTransitionalJSR292 ONLY */ \
   26.30 +  template(CallSite_klass,               java_lang_invoke_CallSite,         Pre_JSR292) \
   26.31    /* Note: MethodHandle must be first, and CallSite last in group */          \
   26.32                                                                                \
   26.33    template(StringBuffer_klass,           java_lang_StringBuffer,         Pre) \
   26.34 @@ -482,18 +482,18 @@
   26.35                                         Handle loader2, bool is_method, TRAPS);
   26.36  
   26.37    // JSR 292
   26.38 -  // find the java.dyn.MethodHandles::invoke method for a given signature
   26.39 +  // find the java.lang.invoke.MethodHandles::invoke method for a given signature
   26.40    static methodOop find_method_handle_invoke(Symbol* name,
   26.41                                               Symbol* signature,
   26.42                                               KlassHandle accessing_klass,
   26.43                                               TRAPS);
   26.44 -  // ask Java to compute a java.dyn.MethodType object for a given signature
   26.45 +  // ask Java to compute a java.lang.invoke.MethodType object for a given signature
   26.46    static Handle    find_method_handle_type(Symbol* signature,
   26.47                                             KlassHandle accessing_klass,
   26.48                                             bool for_invokeGeneric,
   26.49                                             bool& return_bcp_flag,
   26.50                                             TRAPS);
   26.51 -  // ask Java to compute a java.dyn.MethodHandle object for a given CP entry
   26.52 +  // ask Java to compute a java.lang.invoke.MethodHandle object for a given CP entry
   26.53    static Handle    link_method_handle_constant(KlassHandle caller,
   26.54                                                 int ref_kind, //e.g., JVM_REF_invokeVirtual
   26.55                                                 KlassHandle callee,
    27.1 --- a/src/share/vm/classfile/verifier.cpp	Fri Mar 11 22:33:47 2011 -0800
    27.2 +++ b/src/share/vm/classfile/verifier.cpp	Fri Mar 11 22:34:57 2011 -0800
    27.3 @@ -1,5 +1,5 @@
    27.4  /*
    27.5 - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
    27.6 + * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
    27.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    27.8   *
    27.9   * This code is free software; you can redistribute it and/or modify it
   27.10 @@ -1671,13 +1671,19 @@
   27.11        VerificationType::long_type(),
   27.12        VerificationType::long2_type(), CHECK_VERIFY(this));
   27.13    } else if (tag.is_method_handle()) {
   27.14 +    Symbol* methodHandle_name = vmSymbols::java_lang_invoke_MethodHandle();
   27.15 +    if (AllowTransitionalJSR292 && !Universe::is_bootstrapping())
   27.16 +      methodHandle_name = SystemDictionaryHandles::MethodHandle_klass()->name();
   27.17      current_frame->push_stack(
   27.18        VerificationType::reference_type(
   27.19 -        vmSymbols::java_dyn_MethodHandle()), CHECK_VERIFY(this));
   27.20 +        methodHandle_name), CHECK_VERIFY(this));
   27.21    } else if (tag.is_method_type()) {
   27.22 +    Symbol* methodType_name = vmSymbols::java_lang_invoke_MethodType();
   27.23 +    if (AllowTransitionalJSR292 && !Universe::is_bootstrapping())
   27.24 +      methodType_name = SystemDictionaryHandles::MethodType_klass()->name();
   27.25      current_frame->push_stack(
   27.26        VerificationType::reference_type(
   27.27 -        vmSymbols::java_dyn_MethodType()), CHECK_VERIFY(this));
   27.28 +        methodType_name), CHECK_VERIFY(this));
   27.29    } else {
   27.30      verify_error(bci, "Invalid index in ldc");
   27.31      return;
    28.1 --- a/src/share/vm/classfile/vmSymbols.hpp	Fri Mar 11 22:33:47 2011 -0800
    28.2 +++ b/src/share/vm/classfile/vmSymbols.hpp	Fri Mar 11 22:34:57 2011 -0800
    28.3 @@ -229,39 +229,60 @@
    28.4    template(base_name,                                 "base")                                     \
    28.5                                                                                                    \
    28.6    /* Support for JSR 292 & invokedynamic (JDK 1.7 and above) */                                   \
    28.7 -  template(java_dyn_InvokeDynamic,                    "java/dyn/InvokeDynamic")                   \
    28.8 -  template(java_dyn_Linkage,                          "java/dyn/Linkage")                         \
    28.9 -  template(java_dyn_CallSite,                         "java/dyn/CallSite")                        \
   28.10 -  template(java_dyn_MethodHandle,                     "java/dyn/MethodHandle")                    \
   28.11 -  template(java_dyn_MethodType,                       "java/dyn/MethodType")                      \
   28.12 -  template(java_dyn_WrongMethodTypeException,         "java/dyn/WrongMethodTypeException")        \
   28.13 -  template(java_dyn_MethodType_signature,             "Ljava/dyn/MethodType;")                    \
   28.14 -  template(java_dyn_MethodHandle_signature,           "Ljava/dyn/MethodHandle;")                  \
   28.15 +  template(java_lang_invoke_InvokeDynamic,            "java/lang/invoke/InvokeDynamic")           \
   28.16 +  template(java_lang_invoke_Linkage,                  "java/lang/invoke/Linkage")                 \
   28.17 +  template(java_lang_invoke_CallSite,                 "java/lang/invoke/CallSite")                \
   28.18 +  template(java_lang_invoke_MethodHandle,             "java/lang/invoke/MethodHandle")            \
   28.19 +  template(java_lang_invoke_MethodType,               "java/lang/invoke/MethodType")              \
   28.20 +  template(java_lang_invoke_WrongMethodTypeException, "java/lang/invoke/WrongMethodTypeException") \
   28.21 +  template(java_lang_invoke_MethodType_signature,     "Ljava/lang/invoke/MethodType;")            \
   28.22 +  template(java_lang_invoke_MethodHandle_signature,   "Ljava/lang/invoke/MethodHandle;")          \
   28.23    /* internal classes known only to the JVM: */                                                   \
   28.24 -  template(java_dyn_MethodTypeForm,                   "java/dyn/MethodTypeForm")                  \
   28.25 -  template(java_dyn_MethodTypeForm_signature,         "Ljava/dyn/MethodTypeForm;")                \
   28.26 -  template(java_dyn_MemberName,                       "java/dyn/MemberName")                      \
   28.27 -  template(java_dyn_MethodHandleImpl,                 "java/dyn/MethodHandleImpl")                \
   28.28 -  template(java_dyn_MethodHandleNatives,              "java/dyn/MethodHandleNatives")             \
   28.29 -  template(java_dyn_AdapterMethodHandle,              "java/dyn/AdapterMethodHandle")             \
   28.30 -  template(java_dyn_BoundMethodHandle,                "java/dyn/BoundMethodHandle")               \
   28.31 -  template(java_dyn_DirectMethodHandle,               "java/dyn/DirectMethodHandle")              \
   28.32 +  template(java_lang_invoke_MethodTypeForm,           "java/lang/invoke/MethodTypeForm")          \
   28.33 +  template(java_lang_invoke_MethodTypeForm_signature, "Ljava/lang/invoke/MethodTypeForm;")        \
   28.34 +  template(java_lang_invoke_MemberName,               "java/lang/invoke/MemberName")              \
   28.35 +  template(java_lang_invoke_MethodHandleNatives,      "java/lang/invoke/MethodHandleNatives")     \
   28.36 +  template(java_lang_invoke_AdapterMethodHandle,      "java/lang/invoke/AdapterMethodHandle")     \
   28.37 +  template(java_lang_invoke_BoundMethodHandle,        "java/lang/invoke/BoundMethodHandle")       \
   28.38 +  template(java_lang_invoke_DirectMethodHandle,       "java/lang/invoke/DirectMethodHandle")      \
   28.39 +  /* temporary transitional public names from 6839872: */                                         \
   28.40 +  template(java_dyn_InvokeDynamic,                    "java/dyn/InvokeDynamic")         /* AllowTransitionalJSR292 ONLY */ \
   28.41 +  template(java_dyn_Linkage,                          "java/dyn/Linkage")               /* AllowTransitionalJSR292 ONLY */ \
   28.42 +  template(java_dyn_CallSite,                         "java/dyn/CallSite")              /* AllowTransitionalJSR292 ONLY */ \
   28.43 +  template(java_dyn_MethodHandle,                     "java/dyn/MethodHandle")          /* AllowTransitionalJSR292 ONLY */ \
   28.44 +  template(java_dyn_MethodType,                       "java/dyn/MethodType")            /* AllowTransitionalJSR292 ONLY */ \
   28.45 +  template(java_dyn_WrongMethodTypeException,         "java/dyn/WrongMethodTypeException") /* AllowTransitionalJSR292 ONLY */ \
   28.46 +  template(java_dyn_MethodType_signature,             "Ljava/dyn/MethodType;")          /* AllowTransitionalJSR292 ONLY */ \
   28.47 +  template(java_dyn_MethodHandle_signature,           "Ljava/dyn/MethodHandle;")        /* AllowTransitionalJSR292 ONLY */ \
   28.48 +  /* temporary transitional internal names from 6839872: */                                       \
   28.49 +  template(java_dyn_MethodTypeForm,                   "java/dyn/MethodTypeForm")        /* AllowTransitionalJSR292 ONLY */ \
   28.50 +  template(java_dyn_MethodTypeForm_signature,         "Ljava/dyn/MethodTypeForm;")      /* AllowTransitionalJSR292 ONLY */ \
   28.51 +  template(java_dyn_MemberName,                       "java/dyn/MemberName")            /* AllowTransitionalJSR292 ONLY */ \
   28.52 +  template(java_dyn_MethodHandleNatives,              "java/dyn/MethodHandleNatives")   /* AllowTransitionalJSR292 ONLY */ \
   28.53 +  template(java_dyn_AdapterMethodHandle,              "java/dyn/AdapterMethodHandle")   /* AllowTransitionalJSR292 ONLY */ \
   28.54 +  template(java_dyn_BoundMethodHandle,                "java/dyn/BoundMethodHandle")     /* AllowTransitionalJSR292 ONLY */ \
   28.55 +  template(java_dyn_DirectMethodHandle,               "java/dyn/DirectMethodHandle")    /* AllowTransitionalJSR292 ONLY */ \
   28.56 +  /* temporary transitional internal names from EDR: */                                           \
   28.57    template(sun_dyn_MemberName,                        "sun/dyn/MemberName")             /* AllowTransitionalJSR292 ONLY */ \
   28.58    template(sun_dyn_MethodHandleImpl,                  "sun/dyn/MethodHandleImpl")       /* AllowTransitionalJSR292 ONLY */ \
   28.59    template(sun_dyn_MethodHandleNatives,               "sun/dyn/MethodHandleNatives")    /* AllowTransitionalJSR292 ONLY */ \
   28.60    template(sun_dyn_AdapterMethodHandle,               "sun/dyn/AdapterMethodHandle")    /* AllowTransitionalJSR292 ONLY */ \
   28.61    template(sun_dyn_BoundMethodHandle,                 "sun/dyn/BoundMethodHandle")      /* AllowTransitionalJSR292 ONLY */ \
   28.62    template(sun_dyn_DirectMethodHandle,                "sun/dyn/DirectMethodHandle")     /* AllowTransitionalJSR292 ONLY */ \
   28.63 -  /* internal up-calls made only by the JVM, via class sun.dyn.MethodHandleNatives: */            \
   28.64 +  /* internal up-calls made only by the JVM, via class sun.invoke.MethodHandleNatives: */         \
   28.65    template(findMethodHandleType_name,                 "findMethodHandleType")                     \
   28.66 -  template(findMethodHandleType_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/dyn/MethodType;") \
   28.67 +  template(findMethodHandleType_signature,       "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;") \
   28.68 +  template(findMethodHandleType_TRANS_signature, "(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/dyn/MethodType;") /* AllowTransitionalJSR292 ONLY */ \
   28.69    template(notifyGenericMethodType_name,              "notifyGenericMethodType")                  \
   28.70 -  template(notifyGenericMethodType_signature,         "(Ljava/dyn/MethodType;)V")                 \
   28.71 +  template(notifyGenericMethodType_signature,         "(Ljava/lang/invoke/MethodType;)V")         \
   28.72 +  template(notifyGenericMethodType_TRANS_signature,   "(Ljava/dyn/MethodType;)V")       /* AllowTransitionalJSR292 ONLY */ \
   28.73    template(linkMethodHandleConstant_name,             "linkMethodHandleConstant")                 \
   28.74 -  template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/dyn/MethodHandle;") \
   28.75 +  template(linkMethodHandleConstant_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;") \
   28.76 +  template(linkMethodHandleConstant_TRANS_signature, "(Ljava/lang/Class;ILjava/lang/Class;Ljava/lang/String;Ljava/lang/Object;)Ljava/dyn/MethodHandle;") /* AllowTransitionalJSR292 ONLY */ \
   28.77    template(makeDynamicCallSite_name,                  "makeDynamicCallSite")                      \
   28.78 -  template(makeDynamicCallSite_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Ljava/dyn/MemberName;I)Ljava/dyn/CallSite;") \
   28.79 +  template(makeDynamicCallSite_signature, "(Ljava/lang/invoke/MethodHandle;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/Object;Ljava/lang/invoke/MemberName;I)Ljava/lang/invoke/CallSite;") \
   28.80    template(makeDynamicCallSite_TRANS_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Lsun/dyn/MemberName;I)Ljava/dyn/CallSite;") /* AllowTransitionalJSR292 ONLY */ \
   28.81 +  template(makeDynamicCallSite_TRANS2_signature, "(Ljava/dyn/MethodHandle;Ljava/lang/String;Ljava/dyn/MethodType;Ljava/lang/Object;Ljava/dyn/MemberName;I)Ljava/dyn/CallSite;") /* AllowTransitionalJSR292 ONLY */ \
   28.82    NOT_LP64(  do_alias(machine_word_signature,         int_signature)  )                           \
   28.83    LP64_ONLY( do_alias(machine_word_signature,         long_signature) )                           \
   28.84                                                                                                    \
   28.85 @@ -888,14 +909,15 @@
   28.86                                                                                                                            \
   28.87    do_intrinsic(_invoke,                   java_lang_reflect_Method, invoke_name, object_object_array_object_signature, F_R) \
   28.88    /*   (symbols invoke_name and invoke_signature defined above) */                                                      \
   28.89 -  do_intrinsic(_checkSpreadArgument,      java_dyn_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \
   28.90 -  do_intrinsic(_checkSpreadArgument_TRANS, sun_dyn_MethodHandleImpl,    checkSpreadArgument_name, checkSpreadArgument_signature, F_S) /* AllowTransitionalJSR292 ONLY */ \
   28.91 +  do_intrinsic(_checkSpreadArgument,      java_lang_invoke_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) \
   28.92 +  do_intrinsic(_checkSpreadArgument_TRANS,sun_dyn_MethodHandleImpl, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) /* AllowTransitionalJSR292 ONLY */ \
   28.93 +  do_intrinsic(_checkSpreadArgument_TRANS2,java_dyn_MethodHandleNatives, checkSpreadArgument_name, checkSpreadArgument_signature, F_S) /* AllowTransitionalJSR292 ONLY */ \
   28.94     do_name(    checkSpreadArgument_name,       "checkSpreadArgument")                                                   \
   28.95     do_name(    checkSpreadArgument_signature,  "(Ljava/lang/Object;I)V")                                                \
   28.96 -  do_intrinsic(_invokeExact,              java_dyn_MethodHandle, invokeExact_name,   object_array_object_signature, F_RN) \
   28.97 -  do_intrinsic(_invokeGeneric,            java_dyn_MethodHandle, invokeGeneric_name, object_array_object_signature, F_RN) \
   28.98 -  do_intrinsic(_invokeVarargs,            java_dyn_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R)  \
   28.99 -  do_intrinsic(_invokeDynamic,            java_dyn_InvokeDynamic, star_name,         object_array_object_signature, F_SN) \
  28.100 +  do_intrinsic(_invokeExact,              java_lang_invoke_MethodHandle, invokeExact_name,   object_array_object_signature, F_RN) \
  28.101 +  do_intrinsic(_invokeGeneric,            java_lang_invoke_MethodHandle, invokeGeneric_name, object_array_object_signature, F_RN) \
  28.102 +  do_intrinsic(_invokeVarargs,            java_lang_invoke_MethodHandle, invokeVarargs_name, object_array_object_signature, F_R)  \
  28.103 +  do_intrinsic(_invokeDynamic,            java_lang_invoke_InvokeDynamic, star_name,         object_array_object_signature, F_SN) \
  28.104                                                                                                                          \
  28.105    /* unboxing methods: */                                                                                               \
  28.106    do_intrinsic(_booleanValue,             java_lang_Boolean,      booleanValue_name, void_boolean_signature, F_R)       \
    29.1 --- a/src/share/vm/interpreter/abstractInterpreter.hpp	Fri Mar 11 22:33:47 2011 -0800
    29.2 +++ b/src/share/vm/interpreter/abstractInterpreter.hpp	Fri Mar 11 22:34:57 2011 -0800
    29.3 @@ -1,5 +1,5 @@
    29.4  /*
    29.5 - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
    29.6 + * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
    29.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    29.8   *
    29.9   * This code is free software; you can redistribute it and/or modify it
   29.10 @@ -96,7 +96,7 @@
   29.11      empty,                                                      // empty method (code: _return)
   29.12      accessor,                                                   // accessor method (code: _aload_0, _getfield, _(a|i)return)
   29.13      abstract,                                                   // abstract method (throws an AbstractMethodException)
   29.14 -    method_handle,                                              // java.dyn.MethodHandles::invoke
   29.15 +    method_handle,                                              // java.lang.invoke.MethodHandles::invoke
   29.16      java_lang_math_sin,                                         // implementation of java.lang.Math.sin   (x)
   29.17      java_lang_math_cos,                                         // implementation of java.lang.Math.cos   (x)
   29.18      java_lang_math_tan,                                         // implementation of java.lang.Math.tan   (x)
    30.1 --- a/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Mar 11 22:33:47 2011 -0800
    30.2 +++ b/src/share/vm/interpreter/interpreterRuntime.cpp	Fri Mar 11 22:34:57 2011 -0800
    30.3 @@ -369,7 +369,10 @@
    30.4    }
    30.5  
    30.6    // create exception
    30.7 -  THROW_MSG(vmSymbols::java_dyn_WrongMethodTypeException(), message);
    30.8 +  Symbol* java_lang_invoke_WrongMethodTypeException = vmSymbols::java_lang_invoke_WrongMethodTypeException();
    30.9 +  if (AllowTransitionalJSR292)
   30.10 +    java_lang_invoke_WrongMethodTypeException = SystemDictionaryHandles::WrongMethodTypeException_klass()->name();
   30.11 +  THROW_MSG(java_lang_invoke_WrongMethodTypeException, message);
   30.12  }
   30.13  IRT_END
   30.14  
   30.15 @@ -794,7 +797,7 @@
   30.16    Handle info;  // optional argument(s) in JVM_CONSTANT_InvokeDynamic
   30.17    Handle bootm = SystemDictionary::find_bootstrap_method(caller_method, caller_bci,
   30.18                                                           main_index, info, CHECK);
   30.19 -  if (!java_dyn_MethodHandle::is_instance(bootm())) {
   30.20 +  if (!java_lang_invoke_MethodHandle::is_instance(bootm())) {
   30.21      THROW_MSG(vmSymbols::java_lang_IllegalStateException(),
   30.22                "no bootstrap method found for invokedynamic");
   30.23    }
    31.1 --- a/src/share/vm/interpreter/linkResolver.cpp	Fri Mar 11 22:33:47 2011 -0800
    31.2 +++ b/src/share/vm/interpreter/linkResolver.cpp	Fri Mar 11 22:34:57 2011 -0800
    31.3 @@ -221,7 +221,7 @@
    31.4        // Make sure the Java part of the runtime has been booted up.
    31.5        klassOop natives = SystemDictionary::MethodHandleNatives_klass();
    31.6        if (natives == NULL || instanceKlass::cast(natives)->is_not_initialized()) {
    31.7 -        Symbol* natives_name = vmSymbols::java_dyn_MethodHandleNatives();
    31.8 +        Symbol* natives_name = vmSymbols::java_lang_invoke_MethodHandleNatives();
    31.9          if (natives != NULL && AllowTransitionalJSR292)  natives_name = Klass::cast(natives)->name();
   31.10          SystemDictionary::resolve_or_fail(natives_name,
   31.11                                            Handle(),
   31.12 @@ -300,7 +300,7 @@
   31.13  }
   31.14  
   31.15  void LinkResolver::resolve_dynamic_method(methodHandle& resolved_method, KlassHandle& resolved_klass, constantPoolHandle pool, int index, TRAPS) {
   31.16 -  // The class is java.dyn.MethodHandle
   31.17 +  // The class is java.lang.invoke.MethodHandle
   31.18    resolved_klass = SystemDictionaryHandles::MethodHandle_klass();
   31.19  
   31.20    Symbol* method_name = vmSymbols::invokeExact_name();
    32.1 --- a/src/share/vm/oops/cpCacheOop.hpp	Fri Mar 11 22:33:47 2011 -0800
    32.2 +++ b/src/share/vm/oops/cpCacheOop.hpp	Fri Mar 11 22:34:57 2011 -0800
    32.3 @@ -190,7 +190,7 @@
    32.4    );
    32.5  
    32.6    void set_dynamic_call(
    32.7 -    Handle call_site,                            // Resolved java.dyn.CallSite (f1)
    32.8 +    Handle call_site,                            // Resolved java.lang.invoke.CallSite (f1)
    32.9      methodHandle signature_invoker               // determines signature information
   32.10    );
   32.11  
    33.1 --- a/src/share/vm/oops/instanceKlass.cpp	Fri Mar 11 22:33:47 2011 -0800
    33.2 +++ b/src/share/vm/oops/instanceKlass.cpp	Fri Mar 11 22:34:57 2011 -0800
    33.3 @@ -2420,7 +2420,7 @@
    33.4      st->cr();
    33.5    } else if (as_klassOop() == SystemDictionary::MethodType_klass()) {
    33.6      st->print(BULLET"signature: ");
    33.7 -    java_dyn_MethodType::print_signature(obj, st);
    33.8 +    java_lang_invoke_MethodType::print_signature(obj, st);
    33.9      st->cr();
   33.10    }
   33.11  }
   33.12 @@ -2451,7 +2451,7 @@
   33.13      }
   33.14    } else if (as_klassOop() == SystemDictionary::MethodType_klass()) {
   33.15      st->print(" = ");
   33.16 -    java_dyn_MethodType::print_signature(obj, st);
   33.17 +    java_lang_invoke_MethodType::print_signature(obj, st);
   33.18    } else if (java_lang_boxing_object::is_instance(obj)) {
   33.19      st->print(" = ");
   33.20      java_lang_boxing_object::print(obj, st);
    34.1 --- a/src/share/vm/oops/instanceKlass.hpp	Fri Mar 11 22:33:47 2011 -0800
    34.2 +++ b/src/share/vm/oops/instanceKlass.hpp	Fri Mar 11 22:34:57 2011 -0800
    34.3 @@ -193,7 +193,7 @@
    34.4    typeArrayOop    _inner_classes;
    34.5    // Implementors of this interface (not valid if it overflows)
    34.6    klassOop        _implementors[implementors_limit];
    34.7 -  // invokedynamic bootstrap method (a java.dyn.MethodHandle)
    34.8 +  // invokedynamic bootstrap method (a java.lang.invoke.MethodHandle)
    34.9    oop             _bootstrap_method;  // AllowTransitionalJSR292 ONLY
   34.10    // Annotations for this class, or null if none.
   34.11    typeArrayOop    _class_annotations;
    35.1 --- a/src/share/vm/oops/methodOop.cpp	Fri Mar 11 22:33:47 2011 -0800
    35.2 +++ b/src/share/vm/oops/methodOop.cpp	Fri Mar 11 22:34:57 2011 -0800
    35.3 @@ -865,7 +865,7 @@
    35.4  enum {
    35.5    _imcp_invoke_name = 1,        // utf8: 'invokeExact' or 'invokeGeneric'
    35.6    _imcp_invoke_signature,       // utf8: (variable Symbol*)
    35.7 -  _imcp_method_type_value,      // string: (variable java/dyn/MethodType, sic)
    35.8 +  _imcp_method_type_value,      // string: (variable java/lang/invoke/MethodType, sic)
    35.9    _imcp_limit
   35.10  };
   35.11  
   35.12 @@ -1091,7 +1091,8 @@
   35.13    vmSymbols::SID  name_id = vmSymbols::find_sid(name());
   35.14    if (name_id == vmSymbols::NO_SID)  return;
   35.15    vmSymbols::SID   sig_id = vmSymbols::find_sid(signature());
   35.16 -  if (klass_id != vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_MethodHandle)
   35.17 +  if (klass_id != vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_MethodHandle)
   35.18 +      && !(klass_id == vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_MethodHandle) && AllowTransitionalJSR292)
   35.19        && sig_id == vmSymbols::NO_SID)  return;
   35.20    jshort flags = access_flags().as_short();
   35.21  
   35.22 @@ -1117,7 +1118,8 @@
   35.23      break;
   35.24  
   35.25    // Signature-polymorphic methods: MethodHandle.invoke*, InvokeDynamic.*.
   35.26 -  case vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_MethodHandle):
   35.27 +  case vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_MethodHandle):  // AllowTransitionalJSR292 ONLY
   35.28 +  case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_MethodHandle):
   35.29      if (is_static() || !is_native())  break;
   35.30      switch (name_id) {
   35.31      case vmSymbols::VM_SYMBOL_ENUM_NAME(invokeGeneric_name):
   35.32 @@ -1132,7 +1134,7 @@
   35.33        break;
   35.34      }
   35.35      break;
   35.36 -  case vmSymbols::VM_SYMBOL_ENUM_NAME(java_dyn_InvokeDynamic):
   35.37 +  case vmSymbols::VM_SYMBOL_ENUM_NAME(java_lang_invoke_InvokeDynamic):
   35.38      if (!is_static() || !is_native())  break;
   35.39      id = vmIntrinsics::_invokeDynamic;
   35.40      break;
    36.1 --- a/src/share/vm/opto/bytecodeInfo.cpp	Fri Mar 11 22:33:47 2011 -0800
    36.2 +++ b/src/share/vm/opto/bytecodeInfo.cpp	Fri Mar 11 22:34:57 2011 -0800
    36.3 @@ -1,5 +1,5 @@
    36.4  /*
    36.5 - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
    36.6 + * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
    36.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    36.8   *
    36.9   * This code is free software; you can redistribute it and/or modify it
   36.10 @@ -487,7 +487,7 @@
   36.11      if (caller_jvms->method()->is_method_handle_adapter())
   36.12        new_depth_adjust -= 1;  // don't count actions in MH or indy adapter frames
   36.13      else if (callee_method->is_method_handle_invoke()) {
   36.14 -      new_depth_adjust -= 1;  // don't count method handle calls from java.dyn implem
   36.15 +      new_depth_adjust -= 1;  // don't count method handle calls from java.lang.invoke implem
   36.16      }
   36.17      if (new_depth_adjust != 0 && PrintInlining) {
   36.18        stringStream nm1; caller_jvms->method()->print_name(&nm1);
    37.1 --- a/src/share/vm/opto/callGenerator.cpp	Fri Mar 11 22:33:47 2011 -0800
    37.2 +++ b/src/share/vm/opto/callGenerator.cpp	Fri Mar 11 22:34:57 2011 -0800
    37.3 @@ -1,5 +1,5 @@
    37.4  /*
    37.5 - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    37.6 + * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
    37.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    37.8   *
    37.9   * This code is free software; you can redistribute it and/or modify it
   37.10 @@ -199,7 +199,7 @@
   37.11    Node* call_site = kit.make_load(kit.control(), call_site_adr, TypeInstPtr::BOTTOM, T_OBJECT, Compile::AliasIdxRaw);
   37.12  
   37.13    // Load the target MethodHandle from the CallSite object.
   37.14 -  Node* target_mh_adr = kit.basic_plus_adr(call_site, call_site, java_dyn_CallSite::target_offset_in_bytes());
   37.15 +  Node* target_mh_adr = kit.basic_plus_adr(call_site, call_site, java_lang_invoke_CallSite::target_offset_in_bytes());
   37.16    Node* target_mh = kit.make_load(kit.control(), target_mh_adr, TypeInstPtr::BOTTOM, T_OBJECT);
   37.17  
   37.18    address resolve_stub = SharedRuntime::get_resolve_opt_virtual_call_stub();
   37.19 @@ -725,7 +725,7 @@
   37.20    Node* call_site     = kit.make_load(kit.control(), call_site_adr, TypeInstPtr::BOTTOM, T_OBJECT, Compile::AliasIdxRaw);
   37.21  
   37.22    // Load the target MethodHandle from the CallSite object.
   37.23 -  Node* target_adr = kit.basic_plus_adr(call_site, call_site, java_dyn_CallSite::target_offset_in_bytes());
   37.24 +  Node* target_adr = kit.basic_plus_adr(call_site, call_site, java_lang_invoke_CallSite::target_offset_in_bytes());
   37.25    Node* target_mh  = kit.make_load(kit.control(), target_adr, TypeInstPtr::BOTTOM, T_OBJECT);
   37.26  
   37.27    // Check if the MethodHandle is still the same.
    38.1 --- a/src/share/vm/opto/parse3.cpp	Fri Mar 11 22:33:47 2011 -0800
    38.2 +++ b/src/share/vm/opto/parse3.cpp	Fri Mar 11 22:34:57 2011 -0800
    38.3 @@ -1,5 +1,5 @@
    38.4  /*
    38.5 - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
    38.6 + * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
    38.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    38.8   *
    38.9   * This code is free software; you can redistribute it and/or modify it
   38.10 @@ -143,8 +143,8 @@
   38.11          return;
   38.12      }
   38.13      else {
   38.14 -      // final non-static field of a trusted class ({java,sun}.dyn
   38.15 -      // classes).
   38.16 +      // final non-static field of a trusted class (classes in
   38.17 +      // java.lang.invoke and sun.invoke packages and subpackages).
   38.18        if (obj->is_Con()) {
   38.19          const TypeOopPtr* oop_ptr = obj->bottom_type()->isa_oopptr();
   38.20          ciObject* constant_oop = oop_ptr->const_oop();
    39.1 --- a/src/share/vm/prims/methodHandleWalk.cpp	Fri Mar 11 22:33:47 2011 -0800
    39.2 +++ b/src/share/vm/prims/methodHandleWalk.cpp	Fri Mar 11 22:34:57 2011 -0800
    39.3 @@ -36,7 +36,7 @@
    39.4  // MethodHandleChain
    39.5  
    39.6  void MethodHandleChain::set_method_handle(Handle mh, TRAPS) {
    39.7 -  if (!java_dyn_MethodHandle::is_instance(mh()))  lose("bad method handle", CHECK);
    39.8 +  if (!java_lang_invoke_MethodHandle::is_instance(mh()))  lose("bad method handle", CHECK);
    39.9  
   39.10    // set current method handle and unpack partially
   39.11    _method_handle = mh;
   39.12 @@ -47,21 +47,21 @@
   39.13    _conversion    = -1;
   39.14    _last_invoke   = Bytecodes::_nop;  //arbitrary non-garbage
   39.15  
   39.16 -  if (sun_dyn_DirectMethodHandle::is_instance(mh())) {
   39.17 +  if (java_lang_invoke_DirectMethodHandle::is_instance(mh())) {
   39.18      set_last_method(mh(), THREAD);
   39.19      return;
   39.20    }
   39.21 -  if (sun_dyn_AdapterMethodHandle::is_instance(mh())) {
   39.22 +  if (java_lang_invoke_AdapterMethodHandle::is_instance(mh())) {
   39.23      _conversion = AdapterMethodHandle_conversion();
   39.24      assert(_conversion != -1, "bad conv value");
   39.25 -    assert(sun_dyn_BoundMethodHandle::is_instance(mh()), "also BMH");
   39.26 +    assert(java_lang_invoke_BoundMethodHandle::is_instance(mh()), "also BMH");
   39.27    }
   39.28 -  if (sun_dyn_BoundMethodHandle::is_instance(mh())) {
   39.29 +  if (java_lang_invoke_BoundMethodHandle::is_instance(mh())) {
   39.30      if (!is_adapter())          // keep AMH and BMH separate in this model
   39.31        _is_bound = true;
   39.32      _arg_slot = BoundMethodHandle_vmargslot();
   39.33      oop target = MethodHandle_vmtarget_oop();
   39.34 -    if (!is_bound() || java_dyn_MethodHandle::is_instance(target)) {
   39.35 +    if (!is_bound() || java_lang_invoke_MethodHandle::is_instance(target)) {
   39.36        _arg_type = compute_bound_arg_type(target, NULL, _arg_slot, CHECK);
   39.37      } else if (target != NULL && target->is_method()) {
   39.38        methodOop m = (methodOop) target;
   39.39 @@ -102,10 +102,10 @@
   39.40    // It is implied by the _vmentry code, and by the MethodType of the target.
   39.41    BasicType arg_type = T_VOID;
   39.42    if (target != NULL) {
   39.43 -    oop mtype = java_dyn_MethodHandle::type(target);
   39.44 +    oop mtype = java_lang_invoke_MethodHandle::type(target);
   39.45      int arg_num = MethodHandles::argument_slot_to_argnum(mtype, arg_slot);
   39.46      if (arg_num >= 0) {
   39.47 -      oop ptype = java_dyn_MethodType::ptype(mtype, arg_num);
   39.48 +      oop ptype = java_lang_invoke_MethodType::ptype(mtype, arg_num);
   39.49        arg_type = java_lang_Class::as_BasicType(ptype);
   39.50      }
   39.51    } else if (m != NULL) {
   39.52 @@ -204,28 +204,28 @@
   39.53        int arg_slot = chain().adapter_arg_slot();
   39.54        SlotState* arg_state = slot_state(arg_slot);
   39.55        if (arg_state == NULL
   39.56 -          && conv_op > sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW) {
   39.57 +          && conv_op > java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW) {
   39.58          lose("bad argument index", CHECK_(empty));
   39.59        }
   39.60  
   39.61        // perform the adapter action
   39.62        switch (chain().adapter_conversion_op()) {
   39.63 -      case sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY:
   39.64 +      case java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY:
   39.65          // No changes to arguments; pass the bits through.
   39.66          break;
   39.67  
   39.68 -      case sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW: {
   39.69 +      case java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW: {
   39.70          // To keep the verifier happy, emit bitwise ("raw") conversions as needed.
   39.71          // See MethodHandles::same_basic_type_for_arguments for allowed conversions.
   39.72          Handle incoming_mtype(THREAD, chain().method_type_oop());
   39.73          oop outgoing_mh_oop = chain().vmtarget_oop();
   39.74 -        if (!java_dyn_MethodHandle::is_instance(outgoing_mh_oop))
   39.75 +        if (!java_lang_invoke_MethodHandle::is_instance(outgoing_mh_oop))
   39.76            lose("outgoing target not a MethodHandle", CHECK_(empty));
   39.77 -        Handle outgoing_mtype(THREAD, java_dyn_MethodHandle::type(outgoing_mh_oop));
   39.78 +        Handle outgoing_mtype(THREAD, java_lang_invoke_MethodHandle::type(outgoing_mh_oop));
   39.79          outgoing_mh_oop = NULL;  // GC safety
   39.80  
   39.81 -        int nptypes = java_dyn_MethodType::ptype_count(outgoing_mtype());
   39.82 -        if (nptypes != java_dyn_MethodType::ptype_count(incoming_mtype()))
   39.83 +        int nptypes = java_lang_invoke_MethodType::ptype_count(outgoing_mtype());
   39.84 +        if (nptypes != java_lang_invoke_MethodType::ptype_count(incoming_mtype()))
   39.85            lose("incoming and outgoing parameter count do not agree", CHECK_(empty));
   39.86  
   39.87          for (int i = 0, slot = _outgoing.length() - 1; slot >= 0; slot--) {
   39.88 @@ -235,8 +235,8 @@
   39.89  
   39.90            klassOop  in_klass  = NULL;
   39.91            klassOop  out_klass = NULL;
   39.92 -          BasicType inpbt  = java_lang_Class::as_BasicType(java_dyn_MethodType::ptype(incoming_mtype(), i), &in_klass);
   39.93 -          BasicType outpbt = java_lang_Class::as_BasicType(java_dyn_MethodType::ptype(outgoing_mtype(), i), &out_klass);
   39.94 +          BasicType inpbt  = java_lang_Class::as_BasicType(java_lang_invoke_MethodType::ptype(incoming_mtype(), i), &in_klass);
   39.95 +          BasicType outpbt = java_lang_Class::as_BasicType(java_lang_invoke_MethodType::ptype(outgoing_mtype(), i), &out_klass);
   39.96            assert(inpbt == arg.basic_type(), "sanity");
   39.97  
   39.98            if (inpbt != outpbt) {
   39.99 @@ -254,8 +254,8 @@
  39.100            i++;  // We need to skip void slots at the top of the loop.
  39.101          }
  39.102  
  39.103 -        BasicType inrbt  = java_lang_Class::as_BasicType(java_dyn_MethodType::rtype(incoming_mtype()));
  39.104 -        BasicType outrbt = java_lang_Class::as_BasicType(java_dyn_MethodType::rtype(outgoing_mtype()));
  39.105 +        BasicType inrbt  = java_lang_Class::as_BasicType(java_lang_invoke_MethodType::rtype(incoming_mtype()));
  39.106 +        BasicType outrbt = java_lang_Class::as_BasicType(java_lang_invoke_MethodType::rtype(outgoing_mtype()));
  39.107          if (inrbt != outrbt) {
  39.108            if (inrbt == T_INT && outrbt == T_VOID) {
  39.109              // See comments in MethodHandles::same_basic_type_for_arguments.
  39.110 @@ -267,7 +267,7 @@
  39.111          break;
  39.112        }
  39.113  
  39.114 -      case sun_dyn_AdapterMethodHandle::OP_CHECK_CAST: {
  39.115 +      case java_lang_invoke_AdapterMethodHandle::OP_CHECK_CAST: {
  39.116          // checkcast the Nth outgoing argument in place
  39.117          klassOop dest_klass = NULL;
  39.118          BasicType dest = java_lang_Class::as_BasicType(chain().adapter_arg_oop(), &dest_klass);
  39.119 @@ -280,7 +280,7 @@
  39.120          break;
  39.121        }
  39.122  
  39.123 -      case sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM: {
  39.124 +      case java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_PRIM: {
  39.125          // i2l, etc., on the Nth outgoing argument in place
  39.126          BasicType src = chain().adapter_conversion_src_type(),
  39.127                    dest = chain().adapter_conversion_dest_type();
  39.128 @@ -305,7 +305,7 @@
  39.129          break;
  39.130        }
  39.131  
  39.132 -      case sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM: {
  39.133 +      case java_lang_invoke_AdapterMethodHandle::OP_REF_TO_PRIM: {
  39.134          // checkcast to wrapper type & call intValue, etc.
  39.135          BasicType dest = chain().adapter_conversion_dest_type();
  39.136          ArgToken arg = arg_state->_arg;
  39.137 @@ -323,7 +323,7 @@
  39.138          break;
  39.139        }
  39.140  
  39.141 -      case sun_dyn_AdapterMethodHandle::OP_PRIM_TO_REF: {
  39.142 +      case java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF: {
  39.143          // call wrapper type.valueOf
  39.144          BasicType src = chain().adapter_conversion_src_type();
  39.145          ArgToken arg = arg_state->_arg;
  39.146 @@ -339,7 +339,7 @@
  39.147          break;
  39.148        }
  39.149  
  39.150 -      case sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS: {
  39.151 +      case java_lang_invoke_AdapterMethodHandle::OP_SWAP_ARGS: {
  39.152          int dest_arg_slot = chain().adapter_conversion_vminfo();
  39.153          if (!slot_has_argument(dest_arg_slot)) {
  39.154            lose("bad swap index", CHECK_(empty));
  39.155 @@ -352,7 +352,7 @@
  39.156          break;
  39.157        }
  39.158  
  39.159 -      case sun_dyn_AdapterMethodHandle::OP_ROT_ARGS: {
  39.160 +      case java_lang_invoke_AdapterMethodHandle::OP_ROT_ARGS: {
  39.161          int dest_arg_slot = chain().adapter_conversion_vminfo();
  39.162          if (!slot_has_argument(dest_arg_slot) || arg_slot == dest_arg_slot) {
  39.163            lose("bad rotate index", CHECK_(empty));
  39.164 @@ -378,7 +378,7 @@
  39.165          break;
  39.166        }
  39.167  
  39.168 -      case sun_dyn_AdapterMethodHandle::OP_DUP_ARGS: {
  39.169 +      case java_lang_invoke_AdapterMethodHandle::OP_DUP_ARGS: {
  39.170          int dup_slots = chain().adapter_conversion_stack_pushes();
  39.171          if (dup_slots <= 0) {
  39.172            lose("bad dup count", CHECK_(empty));
  39.173 @@ -392,7 +392,7 @@
  39.174          break;
  39.175        }
  39.176  
  39.177 -      case sun_dyn_AdapterMethodHandle::OP_DROP_ARGS: {
  39.178 +      case java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS: {
  39.179          int drop_slots = -chain().adapter_conversion_stack_pushes();
  39.180          if (drop_slots <= 0) {
  39.181            lose("bad drop count", CHECK_(empty));
  39.182 @@ -406,12 +406,12 @@
  39.183          break;
  39.184        }
  39.185  
  39.186 -      case sun_dyn_AdapterMethodHandle::OP_COLLECT_ARGS: { //NYI, may GC
  39.187 +      case java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS: { //NYI, may GC
  39.188          lose("unimplemented", CHECK_(empty));
  39.189          break;
  39.190        }
  39.191  
  39.192 -      case sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS: {
  39.193 +      case java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS: {
  39.194          klassOop array_klass_oop = NULL;
  39.195          BasicType array_type = java_lang_Class::as_BasicType(chain().adapter_arg_oop(),
  39.196                                                               &array_klass_oop);
  39.197 @@ -469,8 +469,8 @@
  39.198          break;
  39.199        }
  39.200  
  39.201 -      case sun_dyn_AdapterMethodHandle::OP_FLYBY: //NYI, runs Java code
  39.202 -      case sun_dyn_AdapterMethodHandle::OP_RICOCHET: //NYI, runs Java code
  39.203 +      case java_lang_invoke_AdapterMethodHandle::OP_FLYBY: //NYI, runs Java code
  39.204 +      case java_lang_invoke_AdapterMethodHandle::OP_RICOCHET: //NYI, runs Java code
  39.205          lose("unimplemented", CHECK_(empty));
  39.206          break;
  39.207  
  39.208 @@ -532,7 +532,7 @@
  39.209  //
  39.210  void MethodHandleWalker::walk_incoming_state(TRAPS) {
  39.211    Handle mtype(THREAD, chain().method_type_oop());
  39.212 -  int nptypes = java_dyn_MethodType::ptype_count(mtype());
  39.213 +  int nptypes = java_lang_invoke_MethodType::ptype_count(mtype());
  39.214    _outgoing_argc = nptypes;
  39.215    int argp = nptypes - 1;
  39.216    if (argp >= 0) {
  39.217 @@ -541,7 +541,7 @@
  39.218    for (int i = 0; i < nptypes; i++) {
  39.219      klassOop  arg_type_klass = NULL;
  39.220      BasicType arg_type = java_lang_Class::as_BasicType(
  39.221 -                java_dyn_MethodType::ptype(mtype(), i), &arg_type_klass);
  39.222 +                java_lang_invoke_MethodType::ptype(mtype(), i), &arg_type_klass);
  39.223      int index = new_local_index(arg_type);
  39.224      ArgToken arg = make_parameter(arg_type, arg_type_klass, index, CHECK);
  39.225      debug_only(arg_type_klass = (klassOop) NULL);
  39.226 @@ -555,7 +555,7 @@
  39.227    // call make_parameter at the end of the list for the return type
  39.228    klassOop  ret_type_klass = NULL;
  39.229    BasicType ret_type = java_lang_Class::as_BasicType(
  39.230 -              java_dyn_MethodType::rtype(mtype()), &ret_type_klass);
  39.231 +              java_lang_invoke_MethodType::rtype(mtype()), &ret_type_klass);
  39.232    ArgToken  ret = make_parameter(ret_type, ret_type_klass, -1, CHECK);
  39.233    // ignore ret; client can catch it if needed
  39.234  }
  39.235 @@ -630,7 +630,7 @@
  39.236    // Get return type klass.
  39.237    Handle first_mtype(THREAD, chain().method_type_oop());
  39.238    // _rklass is NULL for primitives.
  39.239 -  _rtype = java_lang_Class::as_BasicType(java_dyn_MethodType::rtype(first_mtype()), &_rklass);
  39.240 +  _rtype = java_lang_Class::as_BasicType(java_lang_invoke_MethodType::rtype(first_mtype()), &_rklass);
  39.241    if (_rtype == T_ARRAY)  _rtype = T_OBJECT;
  39.242  
  39.243    int params = _callee->size_of_parameters();  // Incoming arguments plus receiver.
  39.244 @@ -961,6 +961,9 @@
  39.245      m = vmIntrinsics::method_for(iid);
  39.246      if (m == NULL && iid == vmIntrinsics::_checkSpreadArgument && AllowTransitionalJSR292) {
  39.247        m = vmIntrinsics::method_for(vmIntrinsics::_checkSpreadArgument_TRANS);
  39.248 +      if (m == NULL)
  39.249 +        // sun.dyn.MethodHandleImpl not found, look for java.dyn.MethodHandleNatives:
  39.250 +        m = vmIntrinsics::method_for(vmIntrinsics::_checkSpreadArgument_TRANS2);
  39.251      }
  39.252      if (m == NULL) {
  39.253        ArgToken zero;
  39.254 @@ -1402,7 +1405,7 @@
  39.255  void print_method_handle(oop mh) {
  39.256    if (!mh->is_oop()) {
  39.257      tty->print_cr("*** not a method handle: "INTPTR_FORMAT, (intptr_t)mh);
  39.258 -  } else if (java_dyn_MethodHandle::is_instance(mh)) {
  39.259 +  } else if (java_lang_invoke_MethodHandle::is_instance(mh)) {
  39.260      //MethodHandlePrinter::print(mh);
  39.261    } else {
  39.262      tty->print("*** not a method handle: ");
    40.1 --- a/src/share/vm/prims/methodHandleWalk.hpp	Fri Mar 11 22:33:47 2011 -0800
    40.2 +++ b/src/share/vm/prims/methodHandleWalk.hpp	Fri Mar 11 22:34:57 2011 -0800
    40.3 @@ -1,5 +1,5 @@
    40.4  /*
    40.5 - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
    40.6 + * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
    40.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    40.8   *
    40.9   * This code is free software; you can redistribute it and/or modify it
   40.10 @@ -48,13 +48,13 @@
   40.11    void set_last_method(oop target, TRAPS);
   40.12    static BasicType compute_bound_arg_type(oop target, methodOop m, int arg_slot, TRAPS);
   40.13  
   40.14 -  oop MethodHandle_type_oop()     { return java_dyn_MethodHandle::type(method_handle_oop()); }
   40.15 -  oop MethodHandle_vmtarget_oop() { return java_dyn_MethodHandle::vmtarget(method_handle_oop()); }
   40.16 -  int MethodHandle_vmslots()      { return java_dyn_MethodHandle::vmslots(method_handle_oop()); }
   40.17 -  int DirectMethodHandle_vmindex()     { return sun_dyn_DirectMethodHandle::vmindex(method_handle_oop()); }
   40.18 -  oop BoundMethodHandle_argument_oop() { return sun_dyn_BoundMethodHandle::argument(method_handle_oop()); }
   40.19 -  int BoundMethodHandle_vmargslot()    { return sun_dyn_BoundMethodHandle::vmargslot(method_handle_oop()); }
   40.20 -  int AdapterMethodHandle_conversion() { return sun_dyn_AdapterMethodHandle::conversion(method_handle_oop()); }
   40.21 +  oop MethodHandle_type_oop()          { return java_lang_invoke_MethodHandle::type(method_handle_oop()); }
   40.22 +  oop MethodHandle_vmtarget_oop()      { return java_lang_invoke_MethodHandle::vmtarget(method_handle_oop()); }
   40.23 +  int MethodHandle_vmslots()           { return java_lang_invoke_MethodHandle::vmslots(method_handle_oop()); }
   40.24 +  int DirectMethodHandle_vmindex()     { return java_lang_invoke_DirectMethodHandle::vmindex(method_handle_oop()); }
   40.25 +  oop BoundMethodHandle_argument_oop() { return java_lang_invoke_BoundMethodHandle::argument(method_handle_oop()); }
   40.26 +  int BoundMethodHandle_vmargslot()    { return java_lang_invoke_BoundMethodHandle::vmargslot(method_handle_oop()); }
   40.27 +  int AdapterMethodHandle_conversion() { return java_lang_invoke_AdapterMethodHandle::conversion(method_handle_oop()); }
   40.28  
   40.29  public:
   40.30    MethodHandleChain(Handle root, TRAPS)
    41.1 --- a/src/share/vm/prims/methodHandles.cpp	Fri Mar 11 22:33:47 2011 -0800
    41.2 +++ b/src/share/vm/prims/methodHandles.cpp	Fri Mar 11 22:34:57 2011 -0800
    41.3 @@ -163,9 +163,9 @@
    41.4      // or it may use the klass/index form; both forms mean the same thing.
    41.5      methodOop m = decode_methodOop(methodOop(vmtarget), decode_flags_result);
    41.6      if ((decode_flags_result & _dmf_has_receiver) != 0
    41.7 -        && java_dyn_MethodType::is_instance(mtype)) {
    41.8 +        && java_lang_invoke_MethodType::is_instance(mtype)) {
    41.9        // Extract receiver type restriction from mtype.ptypes[0].
   41.10 -      objArrayOop ptypes = java_dyn_MethodType::ptypes(mtype);
   41.11 +      objArrayOop ptypes = java_lang_invoke_MethodType::ptypes(mtype);
   41.12        oop ptype0 = (ptypes == NULL || ptypes->length() < 1) ? oop(NULL) : ptypes->obj_at(0);
   41.13        if (java_lang_Class::is_instance(ptype0))
   41.14          receiver_limit_result = java_lang_Class::as_klassOop(ptype0);
   41.15 @@ -199,18 +199,18 @@
   41.16  // (MemberName is the non-operational name used for queries and setup.)
   41.17  
   41.18  methodOop MethodHandles::decode_DirectMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result) {
   41.19 -  oop vmtarget = sun_dyn_DirectMethodHandle::vmtarget(mh);
   41.20 -  int vmindex  = sun_dyn_DirectMethodHandle::vmindex(mh);
   41.21 -  oop mtype    = sun_dyn_DirectMethodHandle::type(mh);
   41.22 +  oop vmtarget = java_lang_invoke_DirectMethodHandle::vmtarget(mh);
   41.23 +  int vmindex  = java_lang_invoke_DirectMethodHandle::vmindex(mh);
   41.24 +  oop mtype    = java_lang_invoke_DirectMethodHandle::type(mh);
   41.25    return decode_vmtarget(vmtarget, vmindex, mtype, receiver_limit_result, decode_flags_result);
   41.26  }
   41.27  
   41.28  methodOop MethodHandles::decode_BoundMethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result) {
   41.29 -  assert(sun_dyn_BoundMethodHandle::is_instance(mh), "");
   41.30 +  assert(java_lang_invoke_BoundMethodHandle::is_instance(mh), "");
   41.31    assert(mh->klass() != SystemDictionary::AdapterMethodHandle_klass(), "");
   41.32    for (oop bmh = mh;;) {
   41.33      // Bound MHs can be stacked to bind several arguments.
   41.34 -    oop target = java_dyn_MethodHandle::vmtarget(bmh);
   41.35 +    oop target = java_lang_invoke_MethodHandle::vmtarget(bmh);
   41.36      if (target == NULL)  return NULL;
   41.37      decode_flags_result |= MethodHandles::_dmf_binds_argument;
   41.38      klassOop tk = target->klass();
   41.39 @@ -218,7 +218,7 @@
   41.40        bmh = target;
   41.41        continue;
   41.42      } else {
   41.43 -      if (java_dyn_MethodHandle::is_subclass(tk)) {
   41.44 +      if (java_lang_invoke_MethodHandle::is_subclass(tk)) {
   41.45          //assert(tk == SystemDictionary::DirectMethodHandle_klass(), "end of BMH chain must be DMH");
   41.46          return decode_MethodHandle(target, receiver_limit_result, decode_flags_result);
   41.47        } else {
   41.48 @@ -240,9 +240,9 @@
   41.49    assert(mh->klass() == SystemDictionary::AdapterMethodHandle_klass(), "");
   41.50    for (oop amh = mh;;) {
   41.51      // Adapter MHs can be stacked to convert several arguments.
   41.52 -    int conv_op = adapter_conversion_op(sun_dyn_AdapterMethodHandle::conversion(amh));
   41.53 +    int conv_op = adapter_conversion_op(java_lang_invoke_AdapterMethodHandle::conversion(amh));
   41.54      decode_flags_result |= (_dmf_adapter_lsb << conv_op) & _DMF_ADAPTER_MASK;
   41.55 -    oop target = java_dyn_MethodHandle::vmtarget(amh);
   41.56 +    oop target = java_lang_invoke_MethodHandle::vmtarget(amh);
   41.57      if (target == NULL)  return NULL;
   41.58      klassOop tk = target->klass();
   41.59      if (tk == SystemDictionary::AdapterMethodHandle_klass()) {
   41.60 @@ -258,14 +258,14 @@
   41.61  methodOop MethodHandles::decode_MethodHandle(oop mh, klassOop& receiver_limit_result, int& decode_flags_result) {
   41.62    if (mh == NULL)  return NULL;
   41.63    klassOop mhk = mh->klass();
   41.64 -  assert(java_dyn_MethodHandle::is_subclass(mhk), "must be a MethodHandle");
   41.65 +  assert(java_lang_invoke_MethodHandle::is_subclass(mhk), "must be a MethodHandle");
   41.66    if (mhk == SystemDictionary::DirectMethodHandle_klass()) {
   41.67      return decode_DirectMethodHandle(mh, receiver_limit_result, decode_flags_result);
   41.68    } else if (mhk == SystemDictionary::BoundMethodHandle_klass()) {
   41.69      return decode_BoundMethodHandle(mh, receiver_limit_result, decode_flags_result);
   41.70    } else if (mhk == SystemDictionary::AdapterMethodHandle_klass()) {
   41.71      return decode_AdapterMethodHandle(mh, receiver_limit_result, decode_flags_result);
   41.72 -  } else if (sun_dyn_BoundMethodHandle::is_subclass(mhk)) {
   41.73 +  } else if (java_lang_invoke_BoundMethodHandle::is_subclass(mhk)) {
   41.74      // could be a JavaMethodHandle (but not an adapter MH)
   41.75      return decode_BoundMethodHandle(mh, receiver_limit_result, decode_flags_result);
   41.76    } else {
   41.77 @@ -308,7 +308,7 @@
   41.78    } else if (xk == SystemDictionary::MemberName_klass()) {
   41.79      // Note: This only works if the MemberName has already been resolved.
   41.80      return decode_MemberName(x, receiver_limit_result, decode_flags_result);
   41.81 -  } else if (java_dyn_MethodHandle::is_subclass(xk)) {
   41.82 +  } else if (java_lang_invoke_MethodHandle::is_subclass(xk)) {
   41.83      return decode_MethodHandle(x, receiver_limit_result, decode_flags_result);
   41.84    } else if (xk == SystemDictionary::reflect_Method_klass()) {
   41.85      oop clazz  = java_lang_reflect_Method::clazz(x);
   41.86 @@ -327,7 +327,7 @@
   41.87    } else {
   41.88      // unrecognized object
   41.89      assert(!x->is_method(), "already checked");
   41.90 -    assert(!sun_dyn_MemberName::is_instance(x), "already checked");
   41.91 +    assert(!java_lang_invoke_MemberName::is_instance(x), "already checked");
   41.92    }
   41.93    return NULL;
   41.94  }
   41.95 @@ -336,15 +336,15 @@
   41.96  int MethodHandles::decode_MethodHandle_stack_pushes(oop mh) {
   41.97    if (mh->klass() == SystemDictionary::DirectMethodHandle_klass())
   41.98      return 0;                   // no push/pop
   41.99 -  int this_vmslots = java_dyn_MethodHandle::vmslots(mh);
  41.100 +  int this_vmslots = java_lang_invoke_MethodHandle::vmslots(mh);
  41.101    int last_vmslots = 0;
  41.102    oop last_mh = mh;
  41.103    for (;;) {
  41.104 -    oop target = java_dyn_MethodHandle::vmtarget(last_mh);
  41.105 +    oop target = java_lang_invoke_MethodHandle::vmtarget(last_mh);
  41.106      if (target->klass() == SystemDictionary::DirectMethodHandle_klass()) {
  41.107 -      last_vmslots = java_dyn_MethodHandle::vmslots(target);
  41.108 +      last_vmslots = java_lang_invoke_MethodHandle::vmslots(target);
  41.109        break;
  41.110 -    } else if (!java_dyn_MethodHandle::is_instance(target)) {
  41.111 +    } else if (!java_lang_invoke_MethodHandle::is_instance(target)) {
  41.112        // might be klass or method
  41.113        assert(target->is_method(), "must get here with a direct ref to method");
  41.114        last_vmslots = methodOop(target)->size_of_parameters();
  41.115 @@ -361,16 +361,16 @@
  41.116  
  41.117  // MemberName support
  41.118  
  41.119 -// import sun_dyn_MemberName.*
  41.120 +// import java_lang_invoke_MemberName.*
  41.121  enum {
  41.122 -  IS_METHOD      = sun_dyn_MemberName::MN_IS_METHOD,
  41.123 -  IS_CONSTRUCTOR = sun_dyn_MemberName::MN_IS_CONSTRUCTOR,
  41.124 -  IS_FIELD       = sun_dyn_MemberName::MN_IS_FIELD,
  41.125 -  IS_TYPE        = sun_dyn_MemberName::MN_IS_TYPE,
  41.126 -  SEARCH_SUPERCLASSES = sun_dyn_MemberName::MN_SEARCH_SUPERCLASSES,
  41.127 -  SEARCH_INTERFACES   = sun_dyn_MemberName::MN_SEARCH_INTERFACES,
  41.128 +  IS_METHOD      = java_lang_invoke_MemberName::MN_IS_METHOD,
  41.129 +  IS_CONSTRUCTOR = java_lang_invoke_MemberName::MN_IS_CONSTRUCTOR,
  41.130 +  IS_FIELD       = java_lang_invoke_MemberName::MN_IS_FIELD,
  41.131 +  IS_TYPE        = java_lang_invoke_MemberName::MN_IS_TYPE,
  41.132 +  SEARCH_SUPERCLASSES = java_lang_invoke_MemberName::MN_SEARCH_SUPERCLASSES,
  41.133 +  SEARCH_INTERFACES   = java_lang_invoke_MemberName::MN_SEARCH_INTERFACES,
  41.134    ALL_KINDS      = IS_METHOD | IS_CONSTRUCTOR | IS_FIELD | IS_TYPE,
  41.135 -  VM_INDEX_UNINITIALIZED = sun_dyn_MemberName::VM_INDEX_UNINITIALIZED
  41.136 +  VM_INDEX_UNINITIALIZED = java_lang_invoke_MemberName::VM_INDEX_UNINITIALIZED
  41.137  };
  41.138  
  41.139  Handle MethodHandles::new_MemberName(TRAPS) {
  41.140 @@ -405,10 +405,10 @@
  41.141    if (!do_dispatch || (flags & IS_CONSTRUCTOR) || m->can_be_statically_bound())
  41.142      vmindex = methodOopDesc::nonvirtual_vtable_index; // implies never any dispatch
  41.143    assert(vmindex != VM_INDEX_UNINITIALIZED, "Java sentinel value");
  41.144 -  sun_dyn_MemberName::set_vmtarget(mname_oop, vmtarget);
  41.145 -  sun_dyn_MemberName::set_vmindex(mname_oop,  vmindex);
  41.146 -  sun_dyn_MemberName::set_flags(mname_oop,    flags);
  41.147 -  sun_dyn_MemberName::set_clazz(mname_oop,    Klass::cast(m->method_holder())->java_mirror());
  41.148 +  java_lang_invoke_MemberName::set_vmtarget(mname_oop, vmtarget);
  41.149 +  java_lang_invoke_MemberName::set_vmindex(mname_oop,  vmindex);
  41.150 +  java_lang_invoke_MemberName::set_flags(mname_oop,    flags);
  41.151 +  java_lang_invoke_MemberName::set_clazz(mname_oop,    Klass::cast(m->method_holder())->java_mirror());
  41.152  }
  41.153  
  41.154  void MethodHandles::init_MemberName(oop mname_oop, klassOop field_holder, AccessFlags mods, int offset) {
  41.155 @@ -416,21 +416,21 @@
  41.156    oop vmtarget = field_holder;
  41.157    int vmindex  = offset;  // determines the field uniquely when combined with static bit
  41.158    assert(vmindex != VM_INDEX_UNINITIALIZED, "bad alias on vmindex");
  41.159 -  sun_dyn_MemberName::set_vmtarget(mname_oop, vmtarget);
  41.160 -  sun_dyn_MemberName::set_vmindex(mname_oop,  vmindex);
  41.161 -  sun_dyn_MemberName::set_flags(mname_oop,    flags);
  41.162 -  sun_dyn_MemberName::set_clazz(mname_oop,    Klass::cast(field_holder)->java_mirror());
  41.163 +  java_lang_invoke_MemberName::set_vmtarget(mname_oop, vmtarget);
  41.164 +  java_lang_invoke_MemberName::set_vmindex(mname_oop,  vmindex);
  41.165 +  java_lang_invoke_MemberName::set_flags(mname_oop,    flags);
  41.166 +  java_lang_invoke_MemberName::set_clazz(mname_oop,    Klass::cast(field_holder)->java_mirror());
  41.167  }
  41.168  
  41.169  
  41.170  methodOop MethodHandles::decode_MemberName(oop mname, klassOop& receiver_limit_result, int& decode_flags_result) {
  41.171 -  int flags  = sun_dyn_MemberName::flags(mname);
  41.172 +  int flags  = java_lang_invoke_MemberName::flags(mname);
  41.173    if ((flags & (IS_METHOD | IS_CONSTRUCTOR)) == 0)  return NULL;  // not invocable
  41.174 -  oop vmtarget = sun_dyn_MemberName::vmtarget(mname);
  41.175 -  int vmindex  = sun_dyn_MemberName::vmindex(mname);
  41.176 +  oop vmtarget = java_lang_invoke_MemberName::vmtarget(mname);
  41.177 +  int vmindex  = java_lang_invoke_MemberName::vmindex(mname);
  41.178    if (vmindex == VM_INDEX_UNINITIALIZED)  return NULL; // not resolved
  41.179    methodOop m = decode_vmtarget(vmtarget, vmindex, NULL, receiver_limit_result, decode_flags_result);
  41.180 -  oop clazz = sun_dyn_MemberName::clazz(mname);
  41.181 +  oop clazz = java_lang_invoke_MemberName::clazz(mname);
  41.182    if (clazz != NULL && java_lang_Class::is_instance(clazz)) {
  41.183      klassOop klass = java_lang_Class::as_klassOop(clazz);
  41.184      if (klass != NULL)  receiver_limit_result = klass;
  41.185 @@ -442,8 +442,8 @@
  41.186  Symbol* MethodHandles::convert_to_signature(oop type_str,
  41.187                                              bool polymorphic,
  41.188                                              TRAPS) {
  41.189 -  if (java_dyn_MethodType::is_instance(type_str)) {
  41.190 -    return java_dyn_MethodType::as_signature(type_str, polymorphic, CHECK_NULL);
  41.191 +  if (java_lang_invoke_MethodType::is_instance(type_str)) {
  41.192 +    return java_lang_invoke_MethodType::as_signature(type_str, polymorphic, CHECK_NULL);
  41.193    } else if (java_lang_Class::is_instance(type_str)) {
  41.194      return java_lang_Class::as_signature(type_str, false, CHECK_NULL);
  41.195    } else if (java_lang_String::is_instance(type_str)) {
  41.196 @@ -461,7 +461,7 @@
  41.197  // Resolving it plants a vmtarget/vmindex in it,
  41.198  // which refers dirctly to JVM internals.
  41.199  void MethodHandles::resolve_MemberName(Handle mname, TRAPS) {
  41.200 -  assert(sun_dyn_MemberName::is_instance(mname()), "");
  41.201 +  assert(java_lang_invoke_MemberName::is_instance(mname()), "");
  41.202  #ifdef ASSERT
  41.203    // If this assert throws, renegotiate the sentinel value used by the Java code,
  41.204    // so that it is distinct from any valid vtable index value, and any special
  41.205 @@ -472,12 +472,12 @@
  41.206    const int sentinel_limit = methodOopDesc::highest_unused_vtable_index_value - sentinel_slop;
  41.207    assert(VM_INDEX_UNINITIALIZED < sentinel_limit, "Java sentinel != JVM sentinels");
  41.208  #endif
  41.209 -  if (sun_dyn_MemberName::vmindex(mname()) != VM_INDEX_UNINITIALIZED)
  41.210 +  if (java_lang_invoke_MemberName::vmindex(mname()) != VM_INDEX_UNINITIALIZED)
  41.211      return;  // already resolved
  41.212 -  oop defc_oop = sun_dyn_MemberName::clazz(mname());
  41.213 -  oop name_str = sun_dyn_MemberName::name(mname());
  41.214 -  oop type_str = sun_dyn_MemberName::type(mname());
  41.215 -  int flags    = sun_dyn_MemberName::flags(mname());
  41.216 +  oop defc_oop = java_lang_invoke_MemberName::clazz(mname());
  41.217 +  oop name_str = java_lang_invoke_MemberName::name(mname());
  41.218 +  oop type_str = java_lang_invoke_MemberName::type(mname());
  41.219 +  int flags    = java_lang_invoke_MemberName::flags(mname());
  41.220  
  41.221    if (defc_oop == NULL || name_str == NULL || type_str == NULL) {
  41.222      THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "nothing to resolve");
  41.223 @@ -510,7 +510,7 @@
  41.224  
  41.225    // convert the external string or reflective type to an internal signature
  41.226    TempNewSymbol type = convert_to_signature(type_str, polymorphic_signature, CHECK);
  41.227 -  if (java_dyn_MethodType::is_instance(type_str) && polymorphic_signature) {
  41.228 +  if (java_lang_invoke_MethodType::is_instance(type_str) && polymorphic_signature) {
  41.229      polymorphic_method_type = Handle(THREAD, type_str);  //preserve exactly
  41.230    }
  41.231  
  41.232 @@ -557,9 +557,9 @@
  41.233          vmtarget = result.resolved_klass()->as_klassOop();
  41.234        }
  41.235        int mods = (m->access_flags().as_short() & JVM_RECOGNIZED_METHOD_MODIFIERS);
  41.236 -      sun_dyn_MemberName::set_vmtarget(mname(), vmtarget);
  41.237 -      sun_dyn_MemberName::set_vmindex(mname(),  vmindex);
  41.238 -      sun_dyn_MemberName::set_modifiers(mname(), mods);
  41.239 +      java_lang_invoke_MemberName::set_vmtarget(mname(), vmtarget);
  41.240 +      java_lang_invoke_MemberName::set_vmindex(mname(),  vmindex);
  41.241 +      java_lang_invoke_MemberName::set_modifiers(mname(), mods);
  41.242        DEBUG_ONLY(int junk; klassOop junk2);
  41.243        assert(decode_MemberName(mname(), junk2, junk) == result.resolved_method()(),
  41.244               "properly stored for later decoding");
  41.245 @@ -586,9 +586,9 @@
  41.246        oop vmtarget = m();
  41.247        int vmindex  = methodOopDesc::nonvirtual_vtable_index;
  41.248        int mods     = (m->access_flags().as_short() & JVM_RECOGNIZED_METHOD_MODIFIERS);
  41.249 -      sun_dyn_MemberName::set_vmtarget(mname(), vmtarget);
  41.250 -      sun_dyn_MemberName::set_vmindex(mname(),  vmindex);
  41.251 -      sun_dyn_MemberName::set_modifiers(mname(), mods);
  41.252 +      java_lang_invoke_MemberName::set_vmtarget(mname(), vmtarget);
  41.253 +      java_lang_invoke_MemberName::set_vmindex(mname(),  vmindex);
  41.254 +      java_lang_invoke_MemberName::set_modifiers(mname(), mods);
  41.255        DEBUG_ONLY(int junk; klassOop junk2);
  41.256        assert(decode_MemberName(mname(), junk2, junk) == result.resolved_method()(),
  41.257               "properly stored for later decoding");
  41.258 @@ -605,9 +605,9 @@
  41.259        int vmindex  = fd.offset();
  41.260        int mods     = (fd.access_flags().as_short() & JVM_RECOGNIZED_FIELD_MODIFIERS);
  41.261        if (vmindex == VM_INDEX_UNINITIALIZED)  break;  // should not happen
  41.262 -      sun_dyn_MemberName::set_vmtarget(mname(),  vmtarget);
  41.263 -      sun_dyn_MemberName::set_vmindex(mname(),   vmindex);
  41.264 -      sun_dyn_MemberName::set_modifiers(mname(), mods);
  41.265 +      java_lang_invoke_MemberName::set_vmtarget(mname(),  vmtarget);
  41.266 +      java_lang_invoke_MemberName::set_vmindex(mname(),   vmindex);
  41.267 +      java_lang_invoke_MemberName::set_modifiers(mname(), mods);
  41.268        return;
  41.269      }
  41.270    default:
  41.271 @@ -618,11 +618,11 @@
  41.272    if (polymorphic_method_type.not_null()) {
  41.273      // Look on a non-null class loader.
  41.274      Handle cur_class_loader;
  41.275 -    const int nptypes = java_dyn_MethodType::ptype_count(polymorphic_method_type());
  41.276 +    const int nptypes = java_lang_invoke_MethodType::ptype_count(polymorphic_method_type());
  41.277      for (int i = 0; i <= nptypes; i++) {
  41.278        oop type_mirror;
  41.279 -      if (i < nptypes)  type_mirror = java_dyn_MethodType::ptype(polymorphic_method_type(), i);
  41.280 -      else              type_mirror = java_dyn_MethodType::rtype(polymorphic_method_type());
  41.281 +      if (i < nptypes)  type_mirror = java_lang_invoke_MethodType::ptype(polymorphic_method_type(), i);
  41.282 +      else              type_mirror = java_lang_invoke_MethodType::rtype(polymorphic_method_type());
  41.283        klassOop example_type = java_lang_Class::as_klassOop(type_mirror);
  41.284        if (example_type == NULL)  continue;
  41.285        oop class_loader = Klass::cast(example_type)->class_loader();
  41.286 @@ -639,9 +639,9 @@
  41.287        }
  41.288        if (m != NULL) {
  41.289          int mods = (m->access_flags().as_short() & JVM_RECOGNIZED_METHOD_MODIFIERS);
  41.290 -        sun_dyn_MemberName::set_vmtarget(mname(),  m);
  41.291 -        sun_dyn_MemberName::set_vmindex(mname(),   m->vtable_index());
  41.292 -        sun_dyn_MemberName::set_modifiers(mname(), mods);
  41.293 +        java_lang_invoke_MemberName::set_vmtarget(mname(),  m);
  41.294 +        java_lang_invoke_MemberName::set_vmindex(mname(),   m->vtable_index());
  41.295 +        java_lang_invoke_MemberName::set_modifiers(mname(), mods);
  41.296          return;
  41.297        }
  41.298      }
  41.299 @@ -653,17 +653,17 @@
  41.300  // Resolving it plants a vmtarget/vmindex in it,
  41.301  // which refers directly to JVM internals.
  41.302  void MethodHandles::expand_MemberName(Handle mname, int suppress, TRAPS) {
  41.303 -  assert(sun_dyn_MemberName::is_instance(mname()), "");
  41.304 -  oop vmtarget = sun_dyn_MemberName::vmtarget(mname());
  41.305 -  int vmindex  = sun_dyn_MemberName::vmindex(mname());
  41.306 +  assert(java_lang_invoke_MemberName::is_instance(mname()), "");
  41.307 +  oop vmtarget = java_lang_invoke_MemberName::vmtarget(mname());
  41.308 +  int vmindex  = java_lang_invoke_MemberName::vmindex(mname());
  41.309    if (vmtarget == NULL || vmindex == VM_INDEX_UNINITIALIZED) {
  41.310      THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "nothing to expand");
  41.311    }
  41.312  
  41.313 -  bool have_defc = (sun_dyn_MemberName::clazz(mname()) != NULL);
  41.314 -  bool have_name = (sun_dyn_MemberName::name(mname()) != NULL);
  41.315 -  bool have_type = (sun_dyn_MemberName::type(mname()) != NULL);
  41.316 -  int flags      = sun_dyn_MemberName::flags(mname());
  41.317 +  bool have_defc = (java_lang_invoke_MemberName::clazz(mname()) != NULL);
  41.318 +  bool have_name = (java_lang_invoke_MemberName::name(mname()) != NULL);
  41.319 +  bool have_type = (java_lang_invoke_MemberName::type(mname()) != NULL);
  41.320 +  int flags      = java_lang_invoke_MemberName::flags(mname());
  41.321  
  41.322    if (suppress != 0) {
  41.323      if (suppress & _suppress_defc)  have_defc = true;
  41.324 @@ -687,16 +687,16 @@
  41.325          if (receiver_limit != NULL && receiver_limit != defc
  41.326              && Klass::cast(receiver_limit)->is_subtype_of(defc))
  41.327            defc = receiver_limit;
  41.328 -        sun_dyn_MemberName::set_clazz(mname(), Klass::cast(defc)->java_mirror());
  41.329 +        java_lang_invoke_MemberName::set_clazz(mname(), Klass::cast(defc)->java_mirror());
  41.330        }
  41.331        if (!have_name) {
  41.332          //not java_lang_String::create_from_symbol; let's intern member names
  41.333          Handle name = StringTable::intern(m->name(), CHECK);
  41.334 -        sun_dyn_MemberName::set_name(mname(), name());
  41.335 +        java_lang_invoke_MemberName::set_name(mname(), name());
  41.336        }
  41.337        if (!have_type) {
  41.338          Handle type = java_lang_String::create_from_symbol(m->signature(), CHECK);
  41.339 -        sun_dyn_MemberName::set_type(mname(), type());
  41.340 +        java_lang_invoke_MemberName::set_type(mname(), type());
  41.341        }
  41.342        return;
  41.343      }
  41.344 @@ -711,16 +711,16 @@
  41.345        if (!defc->find_field_from_offset(vmindex, is_static, &fd))
  41.346          break;                  // cannot expand
  41.347        if (!have_defc) {
  41.348 -        sun_dyn_MemberName::set_clazz(mname(), defc->java_mirror());
  41.349 +        java_lang_invoke_MemberName::set_clazz(mname(), defc->java_mirror());
  41.350        }
  41.351        if (!have_name) {
  41.352          //not java_lang_String::create_from_symbol; let's intern member names
  41.353          Handle name = StringTable::intern(fd.name(), CHECK);
  41.354 -        sun_dyn_MemberName::set_name(mname(), name());
  41.355 +        java_lang_invoke_MemberName::set_name(mname(), name());
  41.356        }
  41.357        if (!have_type) {
  41.358          Handle type = java_lang_String::create_from_symbol(fd.signature(), CHECK);
  41.359 -        sun_dyn_MemberName::set_type(mname(), type());
  41.360 +        java_lang_invoke_MemberName::set_type(mname(), type());
  41.361        }
  41.362        return;
  41.363      }
  41.364 @@ -775,7 +775,7 @@
  41.365          --rskip;
  41.366        } else if (rfill < rlimit) {
  41.367          oop result = results->obj_at(rfill++);
  41.368 -        if (!sun_dyn_MemberName::is_instance(result))
  41.369 +        if (!java_lang_invoke_MemberName::is_instance(result))
  41.370            return -99;  // caller bug!
  41.371          MethodHandles::init_MemberName(result, st.klass()->as_klassOop(), st.access_flags(), st.offset());
  41.372        } else if (++overflow >= overflow_limit) {
  41.373 @@ -823,7 +823,7 @@
  41.374          --rskip;
  41.375        } else if (rfill < rlimit) {
  41.376          oop result = results->obj_at(rfill++);
  41.377 -        if (!sun_dyn_MemberName::is_instance(result))
  41.378 +        if (!java_lang_invoke_MemberName::is_instance(result))
  41.379            return -99;  // caller bug!
  41.380          MethodHandles::init_MemberName(result, m, true);
  41.381        } else if (++overflow >= overflow_limit) {
  41.382 @@ -857,9 +857,9 @@
  41.383  // Sanitize out methodOops, klassOops, and any other non-Java data.
  41.384  // This is for debugging and reflection.
  41.385  oop MethodHandles::encode_target(Handle mh, int format, TRAPS) {
  41.386 -  assert(java_dyn_MethodHandle::is_instance(mh()), "must be a MH");
  41.387 +  assert(java_lang_invoke_MethodHandle::is_instance(mh()), "must be a MH");
  41.388    if (format == ETF_HANDLE_OR_METHOD_NAME) {
  41.389 -    oop target = java_dyn_MethodHandle::vmtarget(mh());
  41.390 +    oop target = java_lang_invoke_MethodHandle::vmtarget(mh());
  41.391      if (target == NULL) {
  41.392        return NULL;                // unformed MH
  41.393      }
  41.394 @@ -874,10 +874,10 @@
  41.395        if (target->klass() == SystemDictionary::DirectMethodHandle_klass()) {
  41.396          return target;
  41.397        }
  41.398 -      if (!java_dyn_MethodHandle::is_instance(target)){
  41.399 +      if (!java_lang_invoke_MethodHandle::is_instance(target)){
  41.400          return NULL;                // unformed MH
  41.401        }
  41.402 -      target = java_dyn_MethodHandle::vmtarget(target);
  41.403 +      target = java_lang_invoke_MethodHandle::vmtarget(target);
  41.404      }
  41.405    }
  41.406    // cases of metadata in MH.vmtarget:
  41.407 @@ -904,7 +904,7 @@
  41.408        instanceKlassHandle mname_klass(THREAD, SystemDictionary::MemberName_klass());
  41.409        mname_klass->initialize(CHECK_NULL);
  41.410        Handle mname = mname_klass->allocate_instance_handle(CHECK_NULL);
  41.411 -      sun_dyn_MemberName::set_vmindex(mname(), VM_INDEX_UNINITIALIZED);
  41.412 +      java_lang_invoke_MemberName::set_vmindex(mname(), VM_INDEX_UNINITIALIZED);
  41.413        bool do_dispatch = ((decode_flags & MethodHandles::_dmf_does_dispatch) != 0);
  41.414        init_MemberName(mname(), m, do_dispatch);
  41.415        expand_MemberName(mname, 0, CHECK_NULL);
  41.416 @@ -923,6 +923,7 @@
  41.417    "java/lang/Null",
  41.418    //"java/lang/Nothing",
  41.419    "sun/dyn/empty/Empty",
  41.420 +  "sun/invoke/empty/Empty",
  41.421    NULL
  41.422  };
  41.423  
  41.424 @@ -1025,7 +1026,7 @@
  41.425                                              int first_ptype_pos,
  41.426                                              KlassHandle insert_ptype,
  41.427                                              TRAPS) {
  41.428 -  objArrayHandle ptypes(THREAD, java_dyn_MethodType::ptypes(mtype()));
  41.429 +  objArrayHandle ptypes(THREAD, java_lang_invoke_MethodType::ptypes(mtype()));
  41.430    int pnum = first_ptype_pos;
  41.431    int pmax = ptypes->length();
  41.432    int mnum = 0;                 // method argument
  41.433 @@ -1036,7 +1037,7 @@
  41.434      if (ss.at_return_type()) {
  41.435        if (pnum != pmax)
  41.436          { err = "too many arguments"; break; }
  41.437 -      ptype_oop = java_dyn_MethodType::rtype(mtype());
  41.438 +      ptype_oop = java_lang_invoke_MethodType::rtype(mtype());
  41.439      } else {
  41.440        if (pnum >= pmax)
  41.441          { err = "not enough arguments"; break; }
  41.442 @@ -1111,7 +1112,7 @@
  41.443    }
  41.444  
  41.445    if (m_needs_receiver && err == NULL) {
  41.446 -    objArrayOop ptypes = java_dyn_MethodType::ptypes(mtype());
  41.447 +    objArrayOop ptypes = java_lang_invoke_MethodType::ptypes(mtype());
  41.448      if (ptypes->length() < first_ptype_pos)
  41.449        { err = "receiver argument is missing"; goto die; }
  41.450      if (has_bound_recv)
  41.451 @@ -1131,15 +1132,15 @@
  41.452  
  41.453  void MethodHandles::verify_vmslots(Handle mh, TRAPS) {
  41.454    // Verify vmslots.
  41.455 -  int check_slots = argument_slot_count(java_dyn_MethodHandle::type(mh()));
  41.456 -  if (java_dyn_MethodHandle::vmslots(mh()) != check_slots) {
  41.457 +  int check_slots = argument_slot_count(java_lang_invoke_MethodHandle::type(mh()));
  41.458 +  if (java_lang_invoke_MethodHandle::vmslots(mh()) != check_slots) {
  41.459      THROW_MSG(vmSymbols::java_lang_InternalError(), "bad vmslots in BMH");
  41.460    }
  41.461  }
  41.462  
  41.463  void MethodHandles::verify_vmargslot(Handle mh, int argnum, int argslot, TRAPS) {
  41.464    // Verify that argslot points at the given argnum.
  41.465 -  int check_slot = argument_slot(java_dyn_MethodHandle::type(mh()), argnum);
  41.466 +  int check_slot = argument_slot(java_lang_invoke_MethodHandle::type(mh()), argnum);
  41.467    if (argslot != check_slot || argslot < 0) {
  41.468      const char* fmt = "for argnum of %d, vmargslot is %d, should be %d";
  41.469      size_t msglen = strlen(fmt) + 3*11 + 1;
  41.470 @@ -1160,8 +1161,8 @@
  41.471                                                      int delete_argnum,
  41.472                                                      oop dst_mtype, int dst_beg, int dst_end,
  41.473                                                      bool raw) {
  41.474 -  objArrayOop src_ptypes = java_dyn_MethodType::ptypes(src_mtype);
  41.475 -  objArrayOop dst_ptypes = java_dyn_MethodType::ptypes(dst_mtype);
  41.476 +  objArrayOop src_ptypes = java_lang_invoke_MethodType::ptypes(src_mtype);
  41.477 +  objArrayOop dst_ptypes = java_lang_invoke_MethodType::ptypes(dst_mtype);
  41.478  
  41.479    int src_max = src_ptypes->length();
  41.480    int dst_max = dst_ptypes->length();
  41.481 @@ -1224,8 +1225,8 @@
  41.482    }
  41.483  
  41.484    // Now compare return types also.
  41.485 -  oop src_rtype = java_dyn_MethodType::rtype(src_mtype);
  41.486 -  oop dst_rtype = java_dyn_MethodType::rtype(dst_mtype);
  41.487 +  oop src_rtype = java_lang_invoke_MethodType::rtype(src_mtype);
  41.488 +  oop dst_rtype = java_lang_invoke_MethodType::rtype(dst_mtype);
  41.489    if (src_rtype != dst_rtype) {
  41.490      err = check_return_type_change(dst_rtype, src_rtype, raw); // note reversal!
  41.491      if (err != NULL)  return err;
  41.492 @@ -1314,7 +1315,7 @@
  41.493  // then return a negative number.  Otherwise, the result
  41.494  // is in the range [0..vmslots] inclusive.
  41.495  int MethodHandles::argument_slot(oop method_type, int arg) {
  41.496 -  objArrayOop ptypes = java_dyn_MethodType::ptypes(method_type);
  41.497 +  objArrayOop ptypes = java_lang_invoke_MethodType::ptypes(method_type);
  41.498    int argslot = 0;
  41.499    int len = ptypes->length();
  41.500    if (arg < -1 || arg >= len)  return -99;
  41.501 @@ -1328,7 +1329,7 @@
  41.502  
  41.503  // Given a slot number, return the argument number.
  41.504  int MethodHandles::argument_slot_to_argnum(oop method_type, int query_argslot) {
  41.505 -  objArrayOop ptypes = java_dyn_MethodType::ptypes(method_type);
  41.506 +  objArrayOop ptypes = java_lang_invoke_MethodType::ptypes(method_type);
  41.507    int argslot = 0;
  41.508    int len = ptypes->length();
  41.509    for (int i = len-1; i >= 0; i--) {
  41.510 @@ -1394,11 +1395,11 @@
  41.511  
  41.512  void MethodHandles::verify_DirectMethodHandle(Handle mh, methodHandle m, TRAPS) {
  41.513    // Verify type.
  41.514 -  Handle mtype(THREAD, java_dyn_MethodHandle::type(mh()));
  41.515 +  Handle mtype(THREAD, java_lang_invoke_MethodHandle::type(mh()));
  41.516    verify_method_type(m, mtype, false, KlassHandle(), CHECK);
  41.517  
  41.518    // Verify vmslots.
  41.519 -  if (java_dyn_MethodHandle::vmslots(mh()) != m->size_of_parameters()) {
  41.520 +  if (java_lang_invoke_MethodHandle::vmslots(mh()) != m->size_of_parameters()) {
  41.521      THROW_MSG(vmSymbols::java_lang_InternalError(), "bad vmslots in DMH");
  41.522    }
  41.523  }
  41.524 @@ -1410,7 +1411,7 @@
  41.525      THROW(vmSymbols::java_lang_InternalError());
  41.526    }
  41.527  
  41.528 -  java_dyn_MethodHandle::init_vmslots(mh());
  41.529 +  java_lang_invoke_MethodHandle::init_vmslots(mh());
  41.530  
  41.531    if (VerifyMethodHandles) {
  41.532      // The privileged code which invokes this routine should not make
  41.533 @@ -1470,8 +1471,8 @@
  41.534  
  41.535    if (me == NULL) { THROW(vmSymbols::java_lang_InternalError()); }
  41.536  
  41.537 -  sun_dyn_DirectMethodHandle::set_vmtarget(mh(), vmtarget);
  41.538 -  sun_dyn_DirectMethodHandle::set_vmindex(mh(),  vmindex);
  41.539 +  java_lang_invoke_DirectMethodHandle::set_vmtarget(mh(), vmtarget);
  41.540 +  java_lang_invoke_DirectMethodHandle::set_vmindex(mh(),  vmindex);
  41.541    DEBUG_ONLY(int flags; klassOop rlimit);
  41.542    assert(MethodHandles::decode_method(mh(), rlimit, flags) == m(),
  41.543           "properly stored for later decoding");
  41.544 @@ -1482,15 +1483,15 @@
  41.545    assert(decode_MethodHandle_stack_pushes(mh()) == 0, "DMH does not move stack");
  41.546  
  41.547    // Done!
  41.548 -  java_dyn_MethodHandle::set_vmentry(mh(), me);
  41.549 +  java_lang_invoke_MethodHandle::set_vmentry(mh(), me);
  41.550  }
  41.551  
  41.552  void MethodHandles::verify_BoundMethodHandle_with_receiver(Handle mh,
  41.553                                                             methodHandle m,
  41.554                                                             TRAPS) {
  41.555    // Verify type.
  41.556 -  oop receiver = sun_dyn_BoundMethodHandle::argument(mh());
  41.557 -  Handle mtype(THREAD, java_dyn_MethodHandle::type(mh()));
  41.558 +  oop receiver = java_lang_invoke_BoundMethodHandle::argument(mh());
  41.559 +  Handle mtype(THREAD, java_lang_invoke_MethodHandle::type(mh()));
  41.560    KlassHandle bound_recv_type;
  41.561    if (receiver != NULL)  bound_recv_type = KlassHandle(THREAD, receiver->klass());
  41.562    verify_method_type(m, mtype, true, bound_recv_type, CHECK);
  41.563 @@ -1498,11 +1499,11 @@
  41.564    int receiver_pos = m->size_of_parameters() - 1;
  41.565  
  41.566    // Verify MH.vmargslot, which should point at the bound receiver.
  41.567 -  verify_vmargslot(mh, -1, sun_dyn_BoundMethodHandle::vmargslot(mh()), CHECK);
  41.568 +  verify_vmargslot(mh, -1, java_lang_invoke_BoundMethodHandle::vmargslot(mh()), CHECK);
  41.569    //verify_vmslots(mh, CHECK);
  41.570  
  41.571    // Verify vmslots.
  41.572 -  if (java_dyn_MethodHandle::vmslots(mh()) != receiver_pos) {
  41.573 +  if (java_lang_invoke_MethodHandle::vmslots(mh()) != receiver_pos) {
  41.574      THROW_MSG(vmSymbols::java_lang_InternalError(), "bad vmslots in BMH (receiver)");
  41.575    }
  41.576  }
  41.577 @@ -1520,7 +1521,7 @@
  41.578  
  41.579    KlassHandle receiver_klass;
  41.580    {
  41.581 -    oop receiver_oop = sun_dyn_BoundMethodHandle::argument(mh());
  41.582 +    oop receiver_oop = java_lang_invoke_BoundMethodHandle::argument(mh());
  41.583      if (receiver_oop != NULL)
  41.584        receiver_klass = KlassHandle(THREAD, receiver_oop->klass());
  41.585    }
  41.586 @@ -1531,31 +1532,31 @@
  41.587    if (m.is_null())      { THROW(vmSymbols::java_lang_InternalError()); }
  41.588    if (m->is_abstract()) { THROW(vmSymbols::java_lang_AbstractMethodError()); }
  41.589  
  41.590 -  java_dyn_MethodHandle::init_vmslots(mh());
  41.591 +  java_lang_invoke_MethodHandle::init_vmslots(mh());
  41.592  
  41.593    if (VerifyMethodHandles) {
  41.594      verify_BoundMethodHandle_with_receiver(mh, m, CHECK);
  41.595    }
  41.596  
  41.597 -  sun_dyn_BoundMethodHandle::set_vmtarget(mh(), m());
  41.598 +  java_lang_invoke_BoundMethodHandle::set_vmtarget(mh(), m());
  41.599  
  41.600    DEBUG_ONLY(int junk; klassOop junk2);
  41.601    assert(MethodHandles::decode_method(mh(), junk2, junk) == m(), "properly stored for later decoding");
  41.602    assert(decode_MethodHandle_stack_pushes(mh()) == 1, "BMH pushes one stack slot");
  41.603  
  41.604    // Done!
  41.605 -  java_dyn_MethodHandle::set_vmentry(mh(), MethodHandles::entry(MethodHandles::_bound_ref_direct_mh));
  41.606 +  java_lang_invoke_MethodHandle::set_vmentry(mh(), MethodHandles::entry(MethodHandles::_bound_ref_direct_mh));
  41.607  }
  41.608  
  41.609  void MethodHandles::verify_BoundMethodHandle(Handle mh, Handle target, int argnum,
  41.610                                               bool direct_to_method, TRAPS) {
  41.611    Handle ptype_handle(THREAD,
  41.612 -                           java_dyn_MethodType::ptype(java_dyn_MethodHandle::type(target()), argnum));
  41.613 +                           java_lang_invoke_MethodType::ptype(java_lang_invoke_MethodHandle::type(target()), argnum));
  41.614    KlassHandle ptype_klass;
  41.615    BasicType ptype = java_lang_Class::as_BasicType(ptype_handle(), &ptype_klass);
  41.616    int slots_pushed = type2size[ptype];
  41.617  
  41.618 -  oop argument = sun_dyn_BoundMethodHandle::argument(mh());
  41.619 +  oop argument = java_lang_invoke_BoundMethodHandle::argument(mh());
  41.620  
  41.621    const char* err = NULL;
  41.622  
  41.623 @@ -1623,9 +1624,9 @@
  41.624  
  41.625    if (err == NULL) {
  41.626      // Verify the rest of the method type.
  41.627 -    err = check_method_type_insertion(java_dyn_MethodHandle::type(mh()),
  41.628 +    err = check_method_type_insertion(java_lang_invoke_MethodHandle::type(mh()),
  41.629                                        argnum, ptype_handle(),
  41.630 -                                      java_dyn_MethodHandle::type(target()));
  41.631 +                                      java_lang_invoke_MethodHandle::type(target()));
  41.632    }
  41.633  
  41.634    if (err != NULL) {
  41.635 @@ -1635,20 +1636,20 @@
  41.636  
  41.637  void MethodHandles::init_BoundMethodHandle(Handle mh, Handle target, int argnum, TRAPS) {
  41.638    // Check arguments.
  41.639 -  if (mh.is_null() || target.is_null() || !java_dyn_MethodHandle::is_instance(target())) {
  41.640 +  if (mh.is_null() || target.is_null() || !java_lang_invoke_MethodHandle::is_instance(target())) {
  41.641      THROW(vmSymbols::java_lang_InternalError());
  41.642    }
  41.643  
  41.644 -  java_dyn_MethodHandle::init_vmslots(mh());
  41.645 +  java_lang_invoke_MethodHandle::init_vmslots(mh());
  41.646  
  41.647    if (VerifyMethodHandles) {
  41.648      int insert_after = argnum - 1;
  41.649 -    verify_vmargslot(mh, insert_after, sun_dyn_BoundMethodHandle::vmargslot(mh()), CHECK);
  41.650 +    verify_vmargslot(mh, insert_after, java_lang_invoke_BoundMethodHandle::vmargslot(mh()), CHECK);
  41.651      verify_vmslots(mh, CHECK);
  41.652    }
  41.653  
  41.654    // Get bound type and required slots.
  41.655 -  oop ptype_oop = java_dyn_MethodType::ptype(java_dyn_MethodHandle::type(target()), argnum);
  41.656 +  oop ptype_oop = java_lang_invoke_MethodType::ptype(java_lang_invoke_MethodHandle::type(target()), argnum);
  41.657    BasicType ptype = java_lang_Class::as_BasicType(ptype_oop);
  41.658    int slots_pushed = type2size[ptype];
  41.659  
  41.660 @@ -1659,12 +1660,12 @@
  41.661    bool direct_to_method = false;
  41.662    if (OptimizeMethodHandles &&
  41.663        target->klass() == SystemDictionary::DirectMethodHandle_klass() &&
  41.664 -      (argnum == 0 || sun_dyn_DirectMethodHandle::vmindex(target()) < 0)) {
  41.665 +      (argnum == 0 || java_lang_invoke_DirectMethodHandle::vmindex(target()) < 0)) {
  41.666      int decode_flags = 0; klassOop receiver_limit_oop = NULL;
  41.667      methodHandle m(THREAD, decode_method(target(), receiver_limit_oop, decode_flags));
  41.668      if (m.is_null()) { THROW_MSG(vmSymbols::java_lang_InternalError(), "DMH failed to decode"); }
  41.669      DEBUG_ONLY(int m_vmslots = m->size_of_parameters() - slots_pushed); // pos. of 1st arg.
  41.670 -    assert(sun_dyn_BoundMethodHandle::vmslots(mh()) == m_vmslots, "type w/ m sig");
  41.671 +    assert(java_lang_invoke_BoundMethodHandle::vmslots(mh()) == m_vmslots, "type w/ m sig");
  41.672      if (argnum == 0 && (decode_flags & _dmf_has_receiver) != 0) {
  41.673        KlassHandle receiver_limit(THREAD, receiver_limit_oop);
  41.674        init_BoundMethodHandle_with_receiver(mh, m,
  41.675 @@ -1677,11 +1678,11 @@
  41.676      // to bind another argument and still invoke the methodOop directly.
  41.677      if (!(decode_flags & _dmf_does_dispatch)) {
  41.678        direct_to_method = true;
  41.679 -      sun_dyn_BoundMethodHandle::set_vmtarget(mh(), m());
  41.680 +      java_lang_invoke_BoundMethodHandle::set_vmtarget(mh(), m());
  41.681      }
  41.682    }
  41.683    if (!direct_to_method)
  41.684 -    sun_dyn_BoundMethodHandle::set_vmtarget(mh(), target());
  41.685 +    java_lang_invoke_BoundMethodHandle::set_vmtarget(mh(), target());
  41.686  
  41.687    if (VerifyMethodHandles) {
  41.688      verify_BoundMethodHandle(mh, target, argnum, direct_to_method, CHECK);
  41.689 @@ -1703,7 +1704,7 @@
  41.690    }
  41.691  
  41.692    // Done!
  41.693 -  java_dyn_MethodHandle::set_vmentry(mh(), me);
  41.694 +  java_lang_invoke_MethodHandle::set_vmentry(mh(), me);
  41.695  }
  41.696  
  41.697  static void throw_InternalError_for_bad_conversion(int conversion, const char* err, TRAPS) {
  41.698 @@ -1713,8 +1714,8 @@
  41.699  }
  41.700  
  41.701  void MethodHandles::verify_AdapterMethodHandle(Handle mh, int argnum, TRAPS) {
  41.702 -  jint conversion = sun_dyn_AdapterMethodHandle::conversion(mh());
  41.703 -  int  argslot    = sun_dyn_AdapterMethodHandle::vmargslot(mh());
  41.704 +  jint conversion = java_lang_invoke_AdapterMethodHandle::conversion(mh());
  41.705 +  int  argslot    = java_lang_invoke_AdapterMethodHandle::vmargslot(mh());
  41.706  
  41.707    verify_vmargslot(mh, argnum, argslot, CHECK);
  41.708    verify_vmslots(mh, CHECK);
  41.709 @@ -1731,10 +1732,10 @@
  41.710    BasicType dest = adapter_conversion_dest_type(conversion);
  41.711    int vminfo     = adapter_conversion_vminfo(conversion); // should be zero
  41.712  
  41.713 -  Handle argument(THREAD,  sun_dyn_AdapterMethodHandle::argument(mh()));
  41.714 -  Handle target(THREAD,    sun_dyn_AdapterMethodHandle::vmtarget(mh()));
  41.715 -  Handle src_mtype(THREAD, java_dyn_MethodHandle::type(mh()));
  41.716 -  Handle dst_mtype(THREAD, java_dyn_MethodHandle::type(target()));
  41.717 +  Handle argument(THREAD,  java_lang_invoke_AdapterMethodHandle::argument(mh()));
  41.718 +  Handle target(THREAD,    java_lang_invoke_AdapterMethodHandle::vmtarget(mh()));
  41.719 +  Handle src_mtype(THREAD, java_lang_invoke_MethodHandle::type(mh()));
  41.720 +  Handle dst_mtype(THREAD, java_lang_invoke_MethodHandle::type(target()));
  41.721  
  41.722    const char* err = NULL;
  41.723  
  41.724 @@ -1760,7 +1761,7 @@
  41.725        break;
  41.726      case _adapter_flyby:
  41.727      case _adapter_ricochet:
  41.728 -      if (!java_dyn_MethodHandle::is_instance(argument()))
  41.729 +      if (!java_lang_invoke_MethodHandle::is_instance(argument()))
  41.730          { err = "MethodHandle adapter argument required"; break; }
  41.731        break;
  41.732      default:
  41.733 @@ -1806,9 +1807,9 @@
  41.734            err = "adapter requires src/dest conversion subfields for swap"; break;
  41.735          }
  41.736          int swap_size = type2size[src];
  41.737 -        oop src_mtype  = sun_dyn_AdapterMethodHandle::type(mh());
  41.738 -        oop dest_mtype = sun_dyn_AdapterMethodHandle::type(target());
  41.739 -        int slot_limit = sun_dyn_AdapterMethodHandle::vmslots(target());
  41.740 +        oop src_mtype  = java_lang_invoke_AdapterMethodHandle::type(mh());
  41.741 +        oop dest_mtype = java_lang_invoke_AdapterMethodHandle::type(target());
  41.742 +        int slot_limit = java_lang_invoke_AdapterMethodHandle::vmslots(target());
  41.743          int src_slot   = argslot;
  41.744          int dest_slot  = vminfo;
  41.745          bool rotate_up = (src_slot > dest_slot); // upward rotation
  41.746 @@ -1821,8 +1822,8 @@
  41.747          } else if (ek == _adapter_swap_args && !(src_slot > dest_slot)) {
  41.748            err = "source of swap must be deeper in stack";
  41.749          } else if (ek == _adapter_swap_args) {
  41.750 -          err = check_argument_type_change(java_dyn_MethodType::ptype(src_mtype, dest_arg),
  41.751 -                                           java_dyn_MethodType::ptype(dest_mtype, src_arg),
  41.752 +          err = check_argument_type_change(java_lang_invoke_MethodType::ptype(src_mtype, dest_arg),
  41.753 +                                           java_lang_invoke_MethodType::ptype(dest_mtype, src_arg),
  41.754                                             dest_arg);
  41.755          } else if (ek == _adapter_rot_args) {
  41.756            if (rotate_up) {
  41.757 @@ -1830,8 +1831,8 @@
  41.758              // rotate up: [dest_slot..src_slot-ss] --> [dest_slot+ss..src_slot]
  41.759              // that is:   [src_arg+1..dest_arg] --> [src_arg..dest_arg-1]
  41.760              for (int i = src_arg+1; i <= dest_arg && err == NULL; i++) {
  41.761 -              err = check_argument_type_change(java_dyn_MethodType::ptype(src_mtype, i),
  41.762 -                                               java_dyn_MethodType::ptype(dest_mtype, i-1),
  41.763 +              err = check_argument_type_change(java_lang_invoke_MethodType::ptype(src_mtype, i),
  41.764 +                                               java_lang_invoke_MethodType::ptype(dest_mtype, i-1),
  41.765                                                 i);
  41.766              }
  41.767            } else { // rotate down
  41.768 @@ -1839,15 +1840,15 @@
  41.769              // rotate down: [src_slot+ss..dest_slot] --> [src_slot..dest_slot-ss]
  41.770              // that is:     [dest_arg..src_arg-1] --> [dst_arg+1..src_arg]
  41.771              for (int i = dest_arg; i <= src_arg-1 && err == NULL; i++) {
  41.772 -              err = check_argument_type_change(java_dyn_MethodType::ptype(src_mtype, i),
  41.773 -                                               java_dyn_MethodType::ptype(dest_mtype, i+1),
  41.774 +              err = check_argument_type_change(java_lang_invoke_MethodType::ptype(src_mtype, i),
  41.775 +                                               java_lang_invoke_MethodType::ptype(dest_mtype, i+1),
  41.776                                                 i);
  41.777              }
  41.778            }
  41.779          }
  41.780          if (err == NULL)
  41.781 -          err = check_argument_type_change(java_dyn_MethodType::ptype(src_mtype, src_arg),
  41.782 -                                           java_dyn_MethodType::ptype(dest_mtype, dest_arg),
  41.783 +          err = check_argument_type_change(java_lang_invoke_MethodType::ptype(src_mtype, src_arg),
  41.784 +                                           java_lang_invoke_MethodType::ptype(dest_mtype, dest_arg),
  41.785                                             src_arg);
  41.786        }
  41.787        break;
  41.788 @@ -1918,8 +1919,8 @@
  41.789    if (err == NULL) {
  41.790      // Make sure this adapter does not push too deeply.
  41.791      int slots_pushed = stack_move / stack_move_unit();
  41.792 -    int this_vmslots = java_dyn_MethodHandle::vmslots(mh());
  41.793 -    int target_vmslots = java_dyn_MethodHandle::vmslots(target());
  41.794 +    int this_vmslots = java_lang_invoke_MethodHandle::vmslots(mh());
  41.795 +    int target_vmslots = java_lang_invoke_MethodHandle::vmslots(target());
  41.796      if (slots_pushed != (target_vmslots - this_vmslots)) {
  41.797        err = "stack_move inconsistent with previous and current MethodType vmslots";
  41.798      } else if (slots_pushed > 0)  {
  41.799 @@ -1961,7 +1962,7 @@
  41.800      case _adapter_check_cast:
  41.801        {
  41.802          // The actual value being checked must be a reference:
  41.803 -        err = check_argument_type_change(java_dyn_MethodType::ptype(src_mtype(), argnum),
  41.804 +        err = check_argument_type_change(java_lang_invoke_MethodType::ptype(src_mtype(), argnum),
  41.805                                           object_java_mirror(), argnum);
  41.806          if (err != NULL)  break;
  41.807  
  41.808 @@ -1985,9 +1986,9 @@
  41.809  }
  41.810  
  41.811  void MethodHandles::init_AdapterMethodHandle(Handle mh, Handle target, int argnum, TRAPS) {
  41.812 -  oop  argument   = sun_dyn_AdapterMethodHandle::argument(mh());
  41.813 -  int  argslot    = sun_dyn_AdapterMethodHandle::vmargslot(mh());
  41.814 -  jint conversion = sun_dyn_AdapterMethodHandle::conversion(mh());
  41.815 +  oop  argument   = java_lang_invoke_AdapterMethodHandle::argument(mh());
  41.816 +  int  argslot    = java_lang_invoke_AdapterMethodHandle::vmargslot(mh());
  41.817 +  jint conversion = java_lang_invoke_AdapterMethodHandle::conversion(mh());
  41.818    jint conv_op    = adapter_conversion_op(conversion);
  41.819  
  41.820    // adjust the adapter code to the internal EntryKind enumeration:
  41.821 @@ -1995,11 +1996,11 @@
  41.822    EntryKind ek_opt  = ek_orig;  // may be optimized
  41.823  
  41.824    // Finalize the vmtarget field (Java initialized it to null).
  41.825 -  if (!java_dyn_MethodHandle::is_instance(target())) {
  41.826 +  if (!java_lang_invoke_MethodHandle::is_instance(target())) {
  41.827      throw_InternalError_for_bad_conversion(conversion, "bad target", THREAD);
  41.828      return;
  41.829    }
  41.830 -  sun_dyn_AdapterMethodHandle::set_vmtarget(mh(), target());
  41.831 +  java_lang_invoke_AdapterMethodHandle::set_vmtarget(mh(), target());
  41.832  
  41.833    if (VerifyMethodHandles) {
  41.834      verify_AdapterMethodHandle(mh, argnum, CHECK);
  41.835 @@ -2083,7 +2084,7 @@
  41.836    case _adapter_rot_args:
  41.837      {
  41.838        int swap_slots = type2size[src];
  41.839 -      int slot_limit = sun_dyn_AdapterMethodHandle::vmslots(mh());
  41.840 +      int slot_limit = java_lang_invoke_AdapterMethodHandle::vmslots(mh());
  41.841        int src_slot   = argslot;
  41.842        int dest_slot  = vminfo;
  41.843        int rotate     = (ek_orig == _adapter_swap_args) ? 0 : (src_slot > dest_slot) ? 1 : -1;
  41.844 @@ -2147,10 +2148,10 @@
  41.845    jint new_conversion = adapter_conversion(conv_op, src, dest, stack_move, vminfo);
  41.846  
  41.847    // Finalize the conversion field.  (Note that it is final to Java code.)
  41.848 -  sun_dyn_AdapterMethodHandle::set_conversion(mh(), new_conversion);
  41.849 +  java_lang_invoke_AdapterMethodHandle::set_conversion(mh(), new_conversion);
  41.850  
  41.851    // Done!
  41.852 -  java_dyn_MethodHandle::set_vmentry(mh(), entry(ek_opt));
  41.853 +  java_lang_invoke_MethodHandle::set_vmentry(mh(), entry(ek_opt));
  41.854  
  41.855    // There should be enough memory barriers on exit from native methods
  41.856    // to ensure that the MH is fully initialized to all threads before
  41.857 @@ -2158,7 +2159,7 @@
  41.858  }
  41.859  
  41.860  //
  41.861 -// Here are the native methods on sun.dyn.MethodHandleImpl.
  41.862 +// Here are the native methods on sun.invoke.MethodHandleImpl.
  41.863  // They are the private interface between this JVM and the HotSpot-specific
  41.864  // Java code that implements JSR 292 method handles.
  41.865  //
  41.866 @@ -2168,7 +2169,7 @@
  41.867  
  41.868  // direct method handles for invokestatic or invokespecial
  41.869  // void init(DirectMethodHandle self, MemberName ref, boolean doDispatch, Class<?> caller);
  41.870 -JVM_ENTRY(void, MHI_init_DMH(JNIEnv *env, jobject igcls, jobject mh_jh,
  41.871 +JVM_ENTRY(void, MHN_init_DMH(JNIEnv *env, jobject igcls, jobject mh_jh,
  41.872                               jobject target_jh, jboolean do_dispatch, jobject caller_jh)) {
  41.873    ResourceMark rm;              // for error messages
  41.874  
  41.875 @@ -2177,13 +2178,13 @@
  41.876    Handle mh(THREAD, JNIHandles::resolve_non_null(mh_jh));
  41.877  
  41.878    // Early returns out of this method leave the DMH in an unfinished state.
  41.879 -  assert(java_dyn_MethodHandle::vmentry(mh()) == NULL, "must be safely null");
  41.880 +  assert(java_lang_invoke_MethodHandle::vmentry(mh()) == NULL, "must be safely null");
  41.881  
  41.882    // which method are we really talking about?
  41.883    if (target_jh == NULL) { THROW(vmSymbols::java_lang_InternalError()); }
  41.884    oop target_oop = JNIHandles::resolve_non_null(target_jh);
  41.885 -  if (sun_dyn_MemberName::is_instance(target_oop) &&
  41.886 -      sun_dyn_MemberName::vmindex(target_oop) == VM_INDEX_UNINITIALIZED) {
  41.887 +  if (java_lang_invoke_MemberName::is_instance(target_oop) &&
  41.888 +      java_lang_invoke_MemberName::vmindex(target_oop) == VM_INDEX_UNINITIALIZED) {
  41.889      Handle mname(THREAD, target_oop);
  41.890      MethodHandles::resolve_MemberName(mname, CHECK);
  41.891      target_oop = mname(); // in case of GC
  41.892 @@ -2232,7 +2233,7 @@
  41.893  JVM_END
  41.894  
  41.895  // bound method handles
  41.896 -JVM_ENTRY(void, MHI_init_BMH(JNIEnv *env, jobject igcls, jobject mh_jh,
  41.897 +JVM_ENTRY(void, MHN_init_BMH(JNIEnv *env, jobject igcls, jobject mh_jh,
  41.898                               jobject target_jh, int argnum)) {
  41.899    ResourceMark rm;              // for error messages
  41.900  
  41.901 @@ -2241,12 +2242,12 @@
  41.902    Handle mh(THREAD, JNIHandles::resolve_non_null(mh_jh));
  41.903  
  41.904    // Early returns out of this method leave the BMH in an unfinished state.
  41.905 -  assert(java_dyn_MethodHandle::vmentry(mh()) == NULL, "must be safely null");
  41.906 +  assert(java_lang_invoke_MethodHandle::vmentry(mh()) == NULL, "must be safely null");
  41.907  
  41.908    if (target_jh == NULL) { THROW(vmSymbols::java_lang_InternalError()); }
  41.909    Handle target(THREAD, JNIHandles::resolve_non_null(target_jh));
  41.910  
  41.911 -  if (!java_dyn_MethodHandle::is_instance(target())) {
  41.912 +  if (!java_lang_invoke_MethodHandle::is_instance(target())) {
  41.913      // Target object is a reflective method.  (%%% Do we need this alternate path?)
  41.914      Untested("init_BMH of non-MH");
  41.915      if (argnum != 0) { THROW(vmSymbols::java_lang_InternalError()); }
  41.916 @@ -2269,7 +2270,7 @@
  41.917  JVM_END
  41.918  
  41.919  // adapter method handles
  41.920 -JVM_ENTRY(void, MHI_init_AMH(JNIEnv *env, jobject igcls, jobject mh_jh,
  41.921 +JVM_ENTRY(void, MHN_init_AMH(JNIEnv *env, jobject igcls, jobject mh_jh,
  41.922                               jobject target_jh, int argnum)) {
  41.923    // This is the guy we are initializing:
  41.924    if (mh_jh == NULL || target_jh == NULL) {
  41.925 @@ -2279,14 +2280,14 @@
  41.926    Handle target(THREAD, JNIHandles::resolve_non_null(target_jh));
  41.927  
  41.928    // Early returns out of this method leave the AMH in an unfinished state.
  41.929 -  assert(java_dyn_MethodHandle::vmentry(mh()) == NULL, "must be safely null");
  41.930 +  assert(java_lang_invoke_MethodHandle::vmentry(mh()) == NULL, "must be safely null");
  41.931  
  41.932    MethodHandles::init_AdapterMethodHandle(mh, target, argnum, CHECK);
  41.933  }
  41.934  JVM_END
  41.935  
  41.936  // method type forms
  41.937 -JVM_ENTRY(void, MHI_init_MT(JNIEnv *env, jobject igcls, jobject erased_jh)) {
  41.938 +JVM_ENTRY(void, MHN_init_MT(JNIEnv *env, jobject igcls, jobject erased_jh)) {
  41.939    if (erased_jh == NULL)  return;
  41.940    if (TraceMethodHandles) {
  41.941      tty->print("creating MethodType form ");
  41.942 @@ -2307,9 +2308,9 @@
  41.943  JVM_END
  41.944  
  41.945  // debugging and reflection
  41.946 -JVM_ENTRY(jobject, MHI_getTarget(JNIEnv *env, jobject igcls, jobject mh_jh, jint format)) {
  41.947 +JVM_ENTRY(jobject, MHN_getTarget(JNIEnv *env, jobject igcls, jobject mh_jh, jint format)) {
  41.948    Handle mh(THREAD, JNIHandles::resolve(mh_jh));
  41.949 -  if (!java_dyn_MethodHandle::is_instance(mh())) {
  41.950 +  if (!java_lang_invoke_MethodHandle::is_instance(mh())) {
  41.951      THROW_NULL(vmSymbols::java_lang_IllegalArgumentException());
  41.952    }
  41.953    oop target = MethodHandles::encode_target(mh, format, CHECK_NULL);
  41.954 @@ -2317,7 +2318,7 @@
  41.955  }
  41.956  JVM_END
  41.957  
  41.958 -JVM_ENTRY(jint, MHI_getConstant(JNIEnv *env, jobject igcls, jint which)) {
  41.959 +JVM_ENTRY(jint, MHN_getConstant(JNIEnv *env, jobject igcls, jint which)) {
  41.960    switch (which) {
  41.961    case MethodHandles::GC_JVM_PUSH_LIMIT:
  41.962      guarantee(MethodHandlePushLimit >= 2 && MethodHandlePushLimit <= 0xFF,
  41.963 @@ -2341,36 +2342,36 @@
  41.964      template(MethodHandles,ETF_DIRECT_HANDLE) \
  41.965      template(MethodHandles,ETF_METHOD_NAME) \
  41.966      template(MethodHandles,ETF_REFLECT_METHOD) \
  41.967 -    template(sun_dyn_MemberName,MN_IS_METHOD) \
  41.968 -    template(sun_dyn_MemberName,MN_IS_CONSTRUCTOR) \
  41.969 -    template(sun_dyn_MemberName,MN_IS_FIELD) \
  41.970 -    template(sun_dyn_MemberName,MN_IS_TYPE) \
  41.971 -    template(sun_dyn_MemberName,MN_SEARCH_SUPERCLASSES) \
  41.972 -    template(sun_dyn_MemberName,MN_SEARCH_INTERFACES) \
  41.973 -    template(sun_dyn_MemberName,VM_INDEX_UNINITIALIZED) \
  41.974 -    template(sun_dyn_AdapterMethodHandle,OP_RETYPE_ONLY) \
  41.975 -    template(sun_dyn_AdapterMethodHandle,OP_RETYPE_RAW) \
  41.976 -    template(sun_dyn_AdapterMethodHandle,OP_CHECK_CAST) \
  41.977 -    template(sun_dyn_AdapterMethodHandle,OP_PRIM_TO_PRIM) \
  41.978 -    template(sun_dyn_AdapterMethodHandle,OP_REF_TO_PRIM) \
  41.979 -    template(sun_dyn_AdapterMethodHandle,OP_PRIM_TO_REF) \
  41.980 -    template(sun_dyn_AdapterMethodHandle,OP_SWAP_ARGS) \
  41.981 -    template(sun_dyn_AdapterMethodHandle,OP_ROT_ARGS) \
  41.982 -    template(sun_dyn_AdapterMethodHandle,OP_DUP_ARGS) \
  41.983 -    template(sun_dyn_AdapterMethodHandle,OP_DROP_ARGS) \
  41.984 -    template(sun_dyn_AdapterMethodHandle,OP_COLLECT_ARGS) \
  41.985 -    template(sun_dyn_AdapterMethodHandle,OP_SPREAD_ARGS) \
  41.986 -    template(sun_dyn_AdapterMethodHandle,OP_FLYBY) \
  41.987 -    template(sun_dyn_AdapterMethodHandle,OP_RICOCHET) \
  41.988 -    template(sun_dyn_AdapterMethodHandle,CONV_OP_LIMIT) \
  41.989 -    template(sun_dyn_AdapterMethodHandle,CONV_OP_MASK) \
  41.990 -    template(sun_dyn_AdapterMethodHandle,CONV_VMINFO_MASK) \
  41.991 -    template(sun_dyn_AdapterMethodHandle,CONV_VMINFO_SHIFT) \
  41.992 -    template(sun_dyn_AdapterMethodHandle,CONV_OP_SHIFT) \
  41.993 -    template(sun_dyn_AdapterMethodHandle,CONV_DEST_TYPE_SHIFT) \
  41.994 -    template(sun_dyn_AdapterMethodHandle,CONV_SRC_TYPE_SHIFT) \
  41.995 -    template(sun_dyn_AdapterMethodHandle,CONV_STACK_MOVE_SHIFT) \
  41.996 -    template(sun_dyn_AdapterMethodHandle,CONV_STACK_MOVE_MASK) \
  41.997 +    template(java_lang_invoke_MemberName,MN_IS_METHOD) \
  41.998 +    template(java_lang_invoke_MemberName,MN_IS_CONSTRUCTOR) \
  41.999 +    template(java_lang_invoke_MemberName,MN_IS_FIELD) \
 41.1000 +    template(java_lang_invoke_MemberName,MN_IS_TYPE) \
 41.1001 +    template(java_lang_invoke_MemberName,MN_SEARCH_SUPERCLASSES) \
 41.1002 +    template(java_lang_invoke_MemberName,MN_SEARCH_INTERFACES) \
 41.1003 +    template(java_lang_invoke_MemberName,VM_INDEX_UNINITIALIZED) \
 41.1004 +    template(java_lang_invoke_AdapterMethodHandle,OP_RETYPE_ONLY) \
 41.1005 +    template(java_lang_invoke_AdapterMethodHandle,OP_RETYPE_RAW) \
 41.1006 +    template(java_lang_invoke_AdapterMethodHandle,OP_CHECK_CAST) \
 41.1007 +    template(java_lang_invoke_AdapterMethodHandle,OP_PRIM_TO_PRIM) \
 41.1008 +    template(java_lang_invoke_AdapterMethodHandle,OP_REF_TO_PRIM) \
 41.1009 +    template(java_lang_invoke_AdapterMethodHandle,OP_PRIM_TO_REF) \
 41.1010 +    template(java_lang_invoke_AdapterMethodHandle,OP_SWAP_ARGS) \
 41.1011 +    template(java_lang_invoke_AdapterMethodHandle,OP_ROT_ARGS) \
 41.1012 +    template(java_lang_invoke_AdapterMethodHandle,OP_DUP_ARGS) \
 41.1013 +    template(java_lang_invoke_AdapterMethodHandle,OP_DROP_ARGS) \
 41.1014 +    template(java_lang_invoke_AdapterMethodHandle,OP_COLLECT_ARGS) \
 41.1015 +    template(java_lang_invoke_AdapterMethodHandle,OP_SPREAD_ARGS) \
 41.1016 +    template(java_lang_invoke_AdapterMethodHandle,OP_FLYBY) \
 41.1017 +    template(java_lang_invoke_AdapterMethodHandle,OP_RICOCHET) \
 41.1018 +    template(java_lang_invoke_AdapterMethodHandle,CONV_OP_LIMIT) \
 41.1019 +    template(java_lang_invoke_AdapterMethodHandle,CONV_OP_MASK) \
 41.1020 +    template(java_lang_invoke_AdapterMethodHandle,CONV_VMINFO_MASK) \
 41.1021 +    template(java_lang_invoke_AdapterMethodHandle,CONV_VMINFO_SHIFT) \
 41.1022 +    template(java_lang_invoke_AdapterMethodHandle,CONV_OP_SHIFT) \
 41.1023 +    template(java_lang_invoke_AdapterMethodHandle,CONV_DEST_TYPE_SHIFT) \
 41.1024 +    template(java_lang_invoke_AdapterMethodHandle,CONV_SRC_TYPE_SHIFT) \
 41.1025 +    template(java_lang_invoke_AdapterMethodHandle,CONV_STACK_MOVE_SHIFT) \
 41.1026 +    template(java_lang_invoke_AdapterMethodHandle,CONV_STACK_MOVE_MASK) \
 41.1027      /*end*/
 41.1028  
 41.1029  #define ONE_PLUS(scope,value) 1+
 41.1030 @@ -2386,7 +2387,7 @@
 41.1031  #undef EACH_NAMED_CON
 41.1032  #endif
 41.1033  
 41.1034 -JVM_ENTRY(jint, MHI_getNamedCon(JNIEnv *env, jobject igcls, jint which, jobjectArray box_jh)) {
 41.1035 +JVM_ENTRY(jint, MHN_getNamedCon(JNIEnv *env, jobject igcls, jint which, jobjectArray box_jh)) {
 41.1036  #ifndef PRODUCT
 41.1037    if (which >= 0 && which < con_value_count) {
 41.1038      int con = con_values[which];
 41.1039 @@ -2406,7 +2407,7 @@
 41.1040  JVM_END
 41.1041  
 41.1042  // void init(MemberName self, AccessibleObject ref)
 41.1043 -JVM_ENTRY(void, MHI_init_Mem(JNIEnv *env, jobject igcls, jobject mname_jh, jobject target_jh)) {
 41.1044 +JVM_ENTRY(void, MHN_init_Mem(JNIEnv *env, jobject igcls, jobject mname_jh, jobject target_jh)) {
 41.1045    if (mname_jh == NULL || target_jh == NULL) { THROW(vmSymbols::java_lang_InternalError()); }
 41.1046    Handle mname(THREAD, JNIHandles::resolve_non_null(mname_jh));
 41.1047    oop target_oop = JNIHandles::resolve_non_null(target_jh);
 41.1048 @@ -2415,7 +2416,7 @@
 41.1049  JVM_END
 41.1050  
 41.1051  // void expand(MemberName self)
 41.1052 -JVM_ENTRY(void, MHI_expand_Mem(JNIEnv *env, jobject igcls, jobject mname_jh)) {
 41.1053 +JVM_ENTRY(void, MHN_expand_Mem(JNIEnv *env, jobject igcls, jobject mname_jh)) {
 41.1054    if (mname_jh == NULL) { THROW(vmSymbols::java_lang_InternalError()); }
 41.1055    Handle mname(THREAD, JNIHandles::resolve_non_null(mname_jh));
 41.1056    MethodHandles::expand_MemberName(mname, 0, CHECK);
 41.1057 @@ -2423,14 +2424,14 @@
 41.1058  JVM_END
 41.1059  
 41.1060  // void resolve(MemberName self, Class<?> caller)
 41.1061 -JVM_ENTRY(void, MHI_resolve_Mem(JNIEnv *env, jobject igcls, jobject mname_jh, jclass caller_jh)) {
 41.1062 +JVM_ENTRY(void, MHN_resolve_Mem(JNIEnv *env, jobject igcls, jobject mname_jh, jclass caller_jh)) {
 41.1063    if (mname_jh == NULL) { THROW(vmSymbols::java_lang_InternalError()); }
 41.1064    Handle mname(THREAD, JNIHandles::resolve_non_null(mname_jh));
 41.1065  
 41.1066    // The trusted Java code that calls this method should already have performed
 41.1067    // access checks on behalf of the given caller.  But, we can verify this.
 41.1068    if (VerifyMethodHandles && caller_jh != NULL) {
 41.1069 -    klassOop reference_klass = java_lang_Class::as_klassOop(sun_dyn_MemberName::clazz(mname()));
 41.1070 +    klassOop reference_klass = java_lang_Class::as_klassOop(java_lang_invoke_MemberName::clazz(mname()));
 41.1071      if (reference_klass != NULL) {
 41.1072        // Emulate LinkResolver::check_klass_accessability.
 41.1073        klassOop caller = java_lang_Class::as_klassOop(JNIHandles::resolve_non_null(caller_jh));
 41.1074 @@ -2448,7 +2449,7 @@
 41.1075  
 41.1076  //  static native int getMembers(Class<?> defc, String matchName, String matchSig,
 41.1077  //          int matchFlags, Class<?> caller, int skip, MemberName[] results);
 41.1078 -JVM_ENTRY(jint, MHI_getMembers(JNIEnv *env, jobject igcls,
 41.1079 +JVM_ENTRY(jint, MHN_getMembers(JNIEnv *env, jobject igcls,
 41.1080                                 jclass clazz_jh, jstring name_jh, jstring sig_jh,
 41.1081                                 int mflags, jclass caller_jh, jint skip, jobjectArray results_jh)) {
 41.1082    if (clazz_jh == NULL || results_jh == NULL)  return -1;
 41.1083 @@ -2487,14 +2488,14 @@
 41.1084  }
 41.1085  JVM_END
 41.1086  
 41.1087 -JVM_ENTRY(void, MHI_registerBootstrap(JNIEnv *env, jobject igcls, jclass caller_jh, jobject bsm_jh)) {
 41.1088 +JVM_ENTRY(void, MHN_registerBootstrap(JNIEnv *env, jobject igcls, jclass caller_jh, jobject bsm_jh)) {
 41.1089    instanceKlassHandle ik = MethodHandles::resolve_instance_klass(caller_jh, THREAD);
 41.1090    if (!AllowTransitionalJSR292) {
 41.1091      THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
 41.1092                "registerBootstrapMethod is only supported in JSR 292 EDR");
 41.1093    }
 41.1094    ik->link_class(CHECK);
 41.1095 -  if (!java_dyn_MethodHandle::is_instance(JNIHandles::resolve(bsm_jh))) {
 41.1096 +  if (!java_lang_invoke_MethodHandle::is_instance(JNIHandles::resolve(bsm_jh))) {
 41.1097      THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "method handle");
 41.1098    }
 41.1099    const char* err = NULL;
 41.1100 @@ -2522,7 +2523,7 @@
 41.1101  }
 41.1102  JVM_END
 41.1103  
 41.1104 -JVM_ENTRY(jobject, MHI_getBootstrap(JNIEnv *env, jobject igcls, jclass caller_jh)) {
 41.1105 +JVM_ENTRY(jobject, MHN_getBootstrap(JNIEnv *env, jobject igcls, jclass caller_jh)) {
 41.1106    if (!AllowTransitionalJSR292)
 41.1107      THROW_MSG_NULL(vmSymbols::java_lang_IllegalArgumentException(), "getBootstrap: transitional only");
 41.1108    instanceKlassHandle ik = MethodHandles::resolve_instance_klass(caller_jh, THREAD);
 41.1109 @@ -2530,7 +2531,7 @@
 41.1110  }
 41.1111  JVM_END
 41.1112  
 41.1113 -JVM_ENTRY(void, MHI_setCallSiteTarget(JNIEnv *env, jobject igcls, jobject site_jh, jobject target_jh)) {
 41.1114 +JVM_ENTRY(void, MHN_setCallSiteTarget(JNIEnv *env, jobject igcls, jobject site_jh, jobject target_jh)) {
 41.1115    if (!AllowTransitionalJSR292)
 41.1116      THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), "setCallSite: transitional only");
 41.1117  }
 41.1118 @@ -2539,8 +2540,6 @@
 41.1119  
 41.1120  /// JVM_RegisterMethodHandleMethods
 41.1121  
 41.1122 -#define ADR "J"
 41.1123 -
 41.1124  #define LANG "Ljava/lang/"
 41.1125  #define JLINV "Ljava/lang/invoke/" /* standard package */
 41.1126  #define JDYN "Ljava/dyn/" /* alternative package to JLINV if AllowTransitionalJSR292 */
 41.1127 @@ -2561,31 +2560,31 @@
 41.1128  #define CC (char*)  /*cast a literal from (const char*)*/
 41.1129  #define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f)
 41.1130  
 41.1131 -// These are the native methods on sun.dyn.MethodHandleNatives.
 41.1132 +// These are the native methods on sun.invoke.MethodHandleNatives.
 41.1133  static JNINativeMethod methods[] = {
 41.1134    // void init(MemberName self, AccessibleObject ref)
 41.1135 -  {CC"init",                    CC"("AMH""MH"I)V",              FN_PTR(MHI_init_AMH)},
 41.1136 -  {CC"init",                    CC"("BMH""OBJ"I)V",             FN_PTR(MHI_init_BMH)},
 41.1137 -  {CC"init",                    CC"("DMH""OBJ"Z"CLS")V",        FN_PTR(MHI_init_DMH)},
 41.1138 -  {CC"init",                    CC"("MT")V",                    FN_PTR(MHI_init_MT)},
 41.1139 -  {CC"init",                    CC"("MEM""OBJ")V",              FN_PTR(MHI_init_Mem)},
 41.1140 -  {CC"expand",                  CC"("MEM")V",                   FN_PTR(MHI_expand_Mem)},
 41.1141 -  {CC"resolve",                 CC"("MEM""CLS")V",              FN_PTR(MHI_resolve_Mem)},
 41.1142 -  {CC"getTarget",               CC"("MH"I)"OBJ,                 FN_PTR(MHI_getTarget)},
 41.1143 -  {CC"getConstant",             CC"(I)I",                       FN_PTR(MHI_getConstant)},
 41.1144 +  {CC"init",                    CC"("AMH""MH"I)V",              FN_PTR(MHN_init_AMH)},
 41.1145 +  {CC"init",                    CC"("BMH""OBJ"I)V",             FN_PTR(MHN_init_BMH)},
 41.1146 +  {CC"init",                    CC"("DMH""OBJ"Z"CLS")V",        FN_PTR(MHN_init_DMH)},
 41.1147 +  {CC"init",                    CC"("MT")V",                    FN_PTR(MHN_init_MT)},
 41.1148 +  {CC"init",                    CC"("MEM""OBJ")V",              FN_PTR(MHN_init_Mem)},
 41.1149 +  {CC"expand",                  CC"("MEM")V",                   FN_PTR(MHN_expand_Mem)},
 41.1150 +  {CC"resolve",                 CC"("MEM""CLS")V",              FN_PTR(MHN_resolve_Mem)},
 41.1151 +  {CC"getTarget",               CC"("MH"I)"OBJ,                 FN_PTR(MHN_getTarget)},
 41.1152 +  {CC"getConstant",             CC"(I)I",                       FN_PTR(MHN_getConstant)},
 41.1153    //  static native int getNamedCon(int which, Object[] name)
 41.1154 -  {CC"getNamedCon",             CC"(I["OBJ")I",                 FN_PTR(MHI_getNamedCon)},
 41.1155 +  {CC"getNamedCon",             CC"(I["OBJ")I",                 FN_PTR(MHN_getNamedCon)},
 41.1156    //  static native int getMembers(Class<?> defc, String matchName, String matchSig,
 41.1157    //          int matchFlags, Class<?> caller, int skip, MemberName[] results);
 41.1158 -  {CC"getMembers",              CC"("CLS""STRG""STRG"I"CLS"I["MEM")I",  FN_PTR(MHI_getMembers)}
 41.1159 +  {CC"getMembers",              CC"("CLS""STRG""STRG"I"CLS"I["MEM")I",  FN_PTR(MHN_getMembers)}
 41.1160  };
 41.1161  
 41.1162  // More entry points specifically for EnableInvokeDynamic.
 41.1163  // FIXME: Remove methods2 after AllowTransitionalJSR292 is removed.
 41.1164  static JNINativeMethod methods2[] = {
 41.1165 -  {CC"registerBootstrap",       CC"("CLS MH")V",                FN_PTR(MHI_registerBootstrap)},
 41.1166 -  {CC"getBootstrap",            CC"("CLS")"MH,                  FN_PTR(MHI_getBootstrap)},
 41.1167 -  {CC"setCallSiteTarget",       CC"("CST MH")V",                FN_PTR(MHI_setCallSiteTarget)}
 41.1168 +  {CC"registerBootstrap",       CC"("CLS MH")V",                FN_PTR(MHN_registerBootstrap)},
 41.1169 +  {CC"getBootstrap",            CC"("CLS")"MH,                  FN_PTR(MHN_getBootstrap)},
 41.1170 +  {CC"setCallSiteTarget",       CC"("CST MH")V",                FN_PTR(MHN_setCallSiteTarget)}
 41.1171  };
 41.1172  
 41.1173  static void hack_signatures(JNINativeMethod* methods, jint num_methods, const char* from_sig, const char* to_sig) {
 41.1174 @@ -2692,9 +2691,11 @@
 41.1175        // We need to link the MethodHandleImpl klass before we generate
 41.1176        // the method handle adapters as the _raise_exception adapter uses
 41.1177        // one of its methods (and its c2i-adapter).
 41.1178 -      KlassHandle    k  = SystemDictionaryHandles::MethodHandleImpl_klass();
 41.1179 -      instanceKlass* ik = instanceKlass::cast(k());
 41.1180 -      ik->link_class(CHECK);
 41.1181 +      klassOop k = SystemDictionary::MethodHandleImpl_klass();
 41.1182 +      if (k != NULL) {
 41.1183 +        instanceKlass* ik = instanceKlass::cast(k);
 41.1184 +        ik->link_class(CHECK);
 41.1185 +      }
 41.1186      }
 41.1187  
 41.1188      MethodHandles::generate_adapters();
 41.1189 @@ -2711,8 +2712,8 @@
 41.1190  
 41.1191      int status = env->RegisterNatives(MHN_class, methods2, sizeof(methods2)/sizeof(JNINativeMethod));
 41.1192      if (env->ExceptionOccurred()) {
 41.1193 -      MethodHandles::set_enabled(false);
 41.1194 -      warning("JSR 292 method handle code is mismatched to this JVM.  Disabling support.");
 41.1195 +      // Don't do this, since it's too late:
 41.1196 +      //   MethodHandles::set_enabled(false)
 41.1197        env->ExceptionClear();
 41.1198      }
 41.1199    }
    42.1 --- a/src/share/vm/prims/methodHandles.hpp	Fri Mar 11 22:33:47 2011 -0800
    42.2 +++ b/src/share/vm/prims/methodHandles.hpp	Fri Mar 11 22:34:57 2011 -0800
    42.3 @@ -37,8 +37,8 @@
    42.4  
    42.5  class MethodHandles: AllStatic {
    42.6    // JVM support for MethodHandle, MethodType, and related types
    42.7 -  // in java.dyn and java.dyn.hotspot.
    42.8 -  // See also  javaClasses for layouts java_dyn_Method{Handle,Type,Type::Form}.
    42.9 +  // in java.lang.invoke and sun.invoke.
   42.10 +  // See also  javaClasses for layouts java_lang_invoke_Method{Handle,Type,Type::Form}.
   42.11   public:
   42.12    enum EntryKind {
   42.13      _raise_exception,           // stub for error generation from other stubs
   42.14 @@ -54,21 +54,21 @@
   42.15      _bound_long_direct_mh,
   42.16  
   42.17      _adapter_mh_first,     // adapter sequence goes here...
   42.18 -    _adapter_retype_only   = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY,
   42.19 -    _adapter_retype_raw    = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW,
   42.20 -    _adapter_check_cast    = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_CHECK_CAST,
   42.21 -    _adapter_prim_to_prim  = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM,
   42.22 -    _adapter_ref_to_prim   = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM,
   42.23 -    _adapter_prim_to_ref   = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_PRIM_TO_REF,
   42.24 -    _adapter_swap_args     = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS,
   42.25 -    _adapter_rot_args      = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_ROT_ARGS,
   42.26 -    _adapter_dup_args      = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_DUP_ARGS,
   42.27 -    _adapter_drop_args     = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_DROP_ARGS,
   42.28 -    _adapter_collect_args  = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_COLLECT_ARGS,
   42.29 -    _adapter_spread_args   = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS,
   42.30 -    _adapter_flyby         = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_FLYBY,
   42.31 -    _adapter_ricochet      = _adapter_mh_first + sun_dyn_AdapterMethodHandle::OP_RICOCHET,
   42.32 -    _adapter_mh_last       = _adapter_mh_first + sun_dyn_AdapterMethodHandle::CONV_OP_LIMIT - 1,
   42.33 +    _adapter_retype_only   = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY,
   42.34 +    _adapter_retype_raw    = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW,
   42.35 +    _adapter_check_cast    = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_CHECK_CAST,
   42.36 +    _adapter_prim_to_prim  = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_PRIM,
   42.37 +    _adapter_ref_to_prim   = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_REF_TO_PRIM,
   42.38 +    _adapter_prim_to_ref   = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF,
   42.39 +    _adapter_swap_args     = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_SWAP_ARGS,
   42.40 +    _adapter_rot_args      = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_ROT_ARGS,
   42.41 +    _adapter_dup_args      = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_DUP_ARGS,
   42.42 +    _adapter_drop_args     = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS,
   42.43 +    _adapter_collect_args  = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS,
   42.44 +    _adapter_spread_args   = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS,
   42.45 +    _adapter_flyby         = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_FLYBY,
   42.46 +    _adapter_ricochet      = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::OP_RICOCHET,
   42.47 +    _adapter_mh_last       = _adapter_mh_first + java_lang_invoke_AdapterMethodHandle::CONV_OP_LIMIT - 1,
   42.48  
   42.49      // Optimized adapter types
   42.50  
   42.51 @@ -107,16 +107,16 @@
   42.52    static void set_enabled(bool z);
   42.53  
   42.54   private:
   42.55 -  enum {  // import sun_dyn_AdapterMethodHandle::CONV_OP_*
   42.56 -    CONV_OP_LIMIT         = sun_dyn_AdapterMethodHandle::CONV_OP_LIMIT,
   42.57 -    CONV_OP_MASK          = sun_dyn_AdapterMethodHandle::CONV_OP_MASK,
   42.58 -    CONV_VMINFO_MASK      = sun_dyn_AdapterMethodHandle::CONV_VMINFO_MASK,
   42.59 -    CONV_VMINFO_SHIFT     = sun_dyn_AdapterMethodHandle::CONV_VMINFO_SHIFT,
   42.60 -    CONV_OP_SHIFT         = sun_dyn_AdapterMethodHandle::CONV_OP_SHIFT,
   42.61 -    CONV_DEST_TYPE_SHIFT  = sun_dyn_AdapterMethodHandle::CONV_DEST_TYPE_SHIFT,
   42.62 -    CONV_SRC_TYPE_SHIFT   = sun_dyn_AdapterMethodHandle::CONV_SRC_TYPE_SHIFT,
   42.63 -    CONV_STACK_MOVE_SHIFT = sun_dyn_AdapterMethodHandle::CONV_STACK_MOVE_SHIFT,
   42.64 -    CONV_STACK_MOVE_MASK  = sun_dyn_AdapterMethodHandle::CONV_STACK_MOVE_MASK
   42.65 +  enum {  // import java_lang_invoke_AdapterMethodHandle::CONV_OP_*
   42.66 +    CONV_OP_LIMIT         = java_lang_invoke_AdapterMethodHandle::CONV_OP_LIMIT,
   42.67 +    CONV_OP_MASK          = java_lang_invoke_AdapterMethodHandle::CONV_OP_MASK,
   42.68 +    CONV_VMINFO_MASK      = java_lang_invoke_AdapterMethodHandle::CONV_VMINFO_MASK,
   42.69 +    CONV_VMINFO_SHIFT     = java_lang_invoke_AdapterMethodHandle::CONV_VMINFO_SHIFT,
   42.70 +    CONV_OP_SHIFT         = java_lang_invoke_AdapterMethodHandle::CONV_OP_SHIFT,
   42.71 +    CONV_DEST_TYPE_SHIFT  = java_lang_invoke_AdapterMethodHandle::CONV_DEST_TYPE_SHIFT,
   42.72 +    CONV_SRC_TYPE_SHIFT   = java_lang_invoke_AdapterMethodHandle::CONV_SRC_TYPE_SHIFT,
   42.73 +    CONV_STACK_MOVE_SHIFT = java_lang_invoke_AdapterMethodHandle::CONV_STACK_MOVE_SHIFT,
   42.74 +    CONV_STACK_MOVE_MASK  = java_lang_invoke_AdapterMethodHandle::CONV_STACK_MOVE_MASK
   42.75    };
   42.76  
   42.77    static bool _enabled;
   42.78 @@ -471,7 +471,7 @@
   42.79  };
   42.80  
   42.81  
   42.82 -// Access methods for the "entry" field of a java.dyn.MethodHandle.
   42.83 +// Access methods for the "entry" field of a java.lang.invoke.MethodHandle.
   42.84  // The field is primarily a jump target for compiled calls.
   42.85  // However, we squirrel away some nice pointers for other uses,
   42.86  // just before the jump target.
    43.1 --- a/src/share/vm/prims/nativeLookup.cpp	Fri Mar 11 22:33:47 2011 -0800
    43.2 +++ b/src/share/vm/prims/nativeLookup.cpp	Fri Mar 11 22:34:57 2011 -0800
    43.3 @@ -116,6 +116,7 @@
    43.4    { CC"Java_java_io_ObjectInputStream_setPrimitiveFieldValues",    NULL, FN_PTR(JVM_SetPrimitiveFieldValues)     },  // intercept ObjectInputStream setPrimitiveFieldValues for faster serialization
    43.5  
    43.6    { CC"Java_sun_misc_Unsafe_registerNatives",                      NULL, FN_PTR(JVM_RegisterUnsafeMethods)       },
    43.7 +  { CC"Java_java_lang_invoke_MethodHandleNatives_registerNatives", NULL, FN_PTR(JVM_RegisterMethodHandleMethods) },
    43.8    { CC"Java_sun_dyn_MethodHandleNatives_registerNatives",          NULL, FN_PTR(JVM_RegisterMethodHandleMethods) },  // AllowTransitionalJSR292
    43.9    { CC"Java_java_dyn_MethodHandleNatives_registerNatives",         NULL, FN_PTR(JVM_RegisterMethodHandleMethods) },  // AllowTransitionalJSR292
   43.10    { CC"Java_sun_misc_Perf_registerNatives",                        NULL, FN_PTR(JVM_RegisterPerfMethods)         }

mercurial