Merge

Thu, 19 Jan 2012 17:20:39 -0800

author
jrose
date
Thu, 19 Jan 2012 17:20:39 -0800
changeset 3436
469e0a46f2fe
parent 3435
898522ae3c32
parent 3434
15d394228cfa
child 3437
50d9b7a0072c

Merge

     1.1 --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp	Thu Jan 19 10:56:51 2012 -0800
     1.2 +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp	Thu Jan 19 17:20:39 2012 -0800
     1.3 @@ -1045,7 +1045,7 @@
     1.4           |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS)
     1.5            // OP_COLLECT_ARGS is below...
     1.6           |(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS)
     1.7 -         |(!UseRicochetFrames ? 0 :
     1.8 +         |(
     1.9             java_lang_invoke_MethodTypeForm::vmlayout_offset_in_bytes() <= 0 ? 0 :
    1.10             ((1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF)
    1.11             |(1<<java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS)
     2.1 --- a/src/cpu/x86/vm/methodHandles_x86.cpp	Thu Jan 19 10:56:51 2012 -0800
     2.2 +++ b/src/cpu/x86/vm/methodHandles_x86.cpp	Thu Jan 19 17:20:39 2012 -0800
     2.3 @@ -1005,7 +1005,7 @@
     2.4    intptr_t* base_sp = last_sp;
     2.5    typedef MethodHandles::RicochetFrame RicochetFrame;
     2.6    RicochetFrame* rfp = (RicochetFrame*)((address)saved_bp - RicochetFrame::sender_link_offset_in_bytes());
     2.7 -  if (!UseRicochetFrames || Universe::heap()->is_in((address) rfp->saved_args_base())) {
     2.8 +  if (Universe::heap()->is_in((address) rfp->saved_args_base())) {
     2.9      // Probably an interpreter frame.
    2.10      base_sp = (intptr_t*) saved_bp[frame::interpreter_frame_monitor_block_top_offset];
    2.11    }
    2.12 @@ -1104,7 +1104,7 @@
    2.13           |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS)
    2.14            //OP_COLLECT_ARGS is below...
    2.15           |(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS)
    2.16 -         |(!UseRicochetFrames ? 0 :
    2.17 +         |(
    2.18             java_lang_invoke_MethodTypeForm::vmlayout_offset_in_bytes() <= 0 ? 0 :
    2.19             ((1<<java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF)
    2.20             |(1<<java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS)
     3.1 --- a/src/cpu/zero/vm/methodHandles_zero.hpp	Thu Jan 19 10:56:51 2012 -0800
     3.2 +++ b/src/cpu/zero/vm/methodHandles_zero.hpp	Thu Jan 19 17:20:39 2012 -0800
     3.3 @@ -29,43 +29,3 @@
     3.4    adapter_code_size = 0
     3.5  };
     3.6  
     3.7 -#define TARGET_ARCH_NYI_6939861 1
     3.8 -// ..#ifdef TARGET_ARCH_NYI_6939861
     3.9 -// ..  // Here are some backward compatible declarations until the 6939861 ports are updated.
    3.10 -// ..  #define _adapter_flyby    (_EK_LIMIT + 10)
    3.11 -// ..  #define _adapter_ricochet (_EK_LIMIT + 11)
    3.12 -// ..  #define _adapter_opt_spread_1    _adapter_opt_spread_1_ref
    3.13 -// ..  #define _adapter_opt_spread_more _adapter_opt_spread_ref
    3.14 -// ..  enum {
    3.15 -// ..    _INSERT_NO_MASK   = -1,
    3.16 -// ..    _INSERT_REF_MASK  = 0,
    3.17 -// ..    _INSERT_INT_MASK  = 1,
    3.18 -// ..    _INSERT_LONG_MASK = 3
    3.19 -// ..  };
    3.20 -// ..  static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) {
    3.21 -// ..    arg_type = ek_bound_mh_arg_type(ek);
    3.22 -// ..    arg_mask = 0;
    3.23 -// ..    arg_slots = type2size[arg_type];;
    3.24 -// ..  }
    3.25 -// ..  static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) {
    3.26 -// ..    int swap_slots = ek_adapter_opt_swap_slots(ek);
    3.27 -// ..    rotate = ek_adapter_opt_swap_mode(ek);
    3.28 -// ..    swap_bytes = swap_slots * Interpreter::stackElementSize;
    3.29 -// ..  }
    3.30 -// ..  static int get_ek_adapter_opt_spread_info(EntryKind ek) {
    3.31 -// ..    return ek_adapter_opt_spread_count(ek);
    3.32 -// ..  }
    3.33 -// ..
    3.34 -// ..  static void insert_arg_slots(MacroAssembler* _masm,
    3.35 -// ..                               RegisterOrConstant arg_slots,
    3.36 -// ..                               int arg_mask,
    3.37 -// ..                               Register argslot_reg,
    3.38 -// ..                               Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
    3.39 -// ..
    3.40 -// ..  static void remove_arg_slots(MacroAssembler* _masm,
    3.41 -// ..                               RegisterOrConstant arg_slots,
    3.42 -// ..                               Register argslot_reg,
    3.43 -// ..                               Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
    3.44 -// ..
    3.45 -// ..  static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
    3.46 -// ..#endif //TARGET_ARCH_NYI_6939861
     4.1 --- a/src/share/vm/prims/methodHandles.cpp	Thu Jan 19 10:56:51 2012 -0800
     4.2 +++ b/src/share/vm/prims/methodHandles.cpp	Thu Jan 19 17:20:39 2012 -0800
     4.3 @@ -194,9 +194,6 @@
     4.4  // MethodHandles::generate_adapters
     4.5  //
     4.6  void MethodHandles::generate_adapters() {
     4.7 -#ifdef TARGET_ARCH_NYI_6939861
     4.8 -  if (FLAG_IS_DEFAULT(UseRicochetFrames))  UseRicochetFrames = false;
     4.9 -#endif
    4.10    if (!EnableInvokeDynamic || SystemDictionary::MethodHandle_klass() == NULL)  return;
    4.11  
    4.12    assert(_adapter_code == NULL, "generate only once");
    4.13 @@ -230,18 +227,6 @@
    4.14  }
    4.15  
    4.16  
    4.17 -#ifdef TARGET_ARCH_NYI_6939861
    4.18 -// these defs belong in methodHandles_<arch>.cpp
    4.19 -frame MethodHandles::ricochet_frame_sender(const frame& fr, RegisterMap *map) {
    4.20 -  ShouldNotCallThis();
    4.21 -  return fr;
    4.22 -}
    4.23 -void MethodHandles::ricochet_frame_oops_do(const frame& fr, OopClosure* f, const RegisterMap* reg_map) {
    4.24 -  ShouldNotCallThis();
    4.25 -}
    4.26 -#endif //TARGET_ARCH_NYI_6939861
    4.27 -
    4.28 -
    4.29  //------------------------------------------------------------------------------
    4.30  // MethodHandles::ek_supported
    4.31  //
    4.32 @@ -251,28 +236,11 @@
    4.33    case _adapter_unused_13:
    4.34      return false;  // not defined yet
    4.35    case _adapter_prim_to_ref:
    4.36 -    return UseRicochetFrames && conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF);
    4.37 +    return conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_PRIM_TO_REF);
    4.38    case _adapter_collect_args:
    4.39 -    return UseRicochetFrames && conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS);
    4.40 +    return conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_COLLECT_ARGS);
    4.41    case _adapter_fold_args:
    4.42 -    return UseRicochetFrames && conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_FOLD_ARGS);
    4.43 -  case _adapter_opt_return_any:
    4.44 -    return UseRicochetFrames;
    4.45 -#ifdef TARGET_ARCH_NYI_6939861
    4.46 -  // ports before 6939861 supported only three kinds of spread ops
    4.47 -  case _adapter_spread_args:
    4.48 -    // restrict spreads to three kinds:
    4.49 -    switch (ek) {
    4.50 -    case _adapter_opt_spread_0:
    4.51 -    case _adapter_opt_spread_1:
    4.52 -    case _adapter_opt_spread_more:
    4.53 -      break;
    4.54 -    default:
    4.55 -      return false;
    4.56 -      break;
    4.57 -    }
    4.58 -    break;
    4.59 -#endif //TARGET_ARCH_NYI_6939861
    4.60 +    return conv_op_supported(java_lang_invoke_AdapterMethodHandle::OP_FOLD_ARGS);
    4.61    }
    4.62    return true;
    4.63  }
    4.64 @@ -1988,9 +1956,6 @@
    4.65      case _adapter_prim_to_ref:    // boxer MH to use
    4.66      case _adapter_collect_args:   // method handle which collects the args
    4.67      case _adapter_fold_args:      // method handle which collects the args
    4.68 -      if (!UseRicochetFrames) {
    4.69 -        { err = "box/collect/fold operators are not supported"; break; }
    4.70 -      }
    4.71        if (!java_lang_invoke_MethodHandle::is_instance(argument()))
    4.72          { err = "MethodHandle adapter argument required"; break; }
    4.73        arg_mtype = Handle(THREAD, java_lang_invoke_MethodHandle::type(argument()));
    4.74 @@ -2370,7 +2335,6 @@
    4.75  
    4.76    case _adapter_prim_to_ref:
    4.77      {
    4.78 -      assert(UseRicochetFrames, "else don't come here");
    4.79        // vminfo will be the location to insert the return value
    4.80        vminfo = argslot;
    4.81        ek_opt = _adapter_opt_collect_ref;
    4.82 @@ -2436,20 +2400,6 @@
    4.83  
    4.84    case _adapter_spread_args:
    4.85      {
    4.86 -#ifdef TARGET_ARCH_NYI_6939861
    4.87 -      // ports before 6939861 supported only three kinds of spread ops
    4.88 -      if (!UseRicochetFrames) {
    4.89 -        int array_size   = slots_pushed + 1;
    4.90 -        assert(array_size >= 0, "");
    4.91 -        vminfo = array_size;
    4.92 -        switch (array_size) {
    4.93 -        case 0:   ek_opt = _adapter_opt_spread_0;       break;
    4.94 -        case 1:   ek_opt = _adapter_opt_spread_1;       break;
    4.95 -        default:  ek_opt = _adapter_opt_spread_more;    break;
    4.96 -        }
    4.97 -        break;
    4.98 -      }
    4.99 -#endif //TARGET_ARCH_NYI_6939861
   4.100        // vminfo will be the required length of the array
   4.101        int array_size = (slots_pushed + 1) / (type2size[dest] == 2 ? 2 : 1);
   4.102        vminfo = array_size;
   4.103 @@ -2494,7 +2444,6 @@
   4.104  
   4.105    case _adapter_collect_args:
   4.106      {
   4.107 -      assert(UseRicochetFrames, "else don't come here");
   4.108        int elem_slots = argument_slot_count(java_lang_invoke_MethodHandle::type(argument()));
   4.109        // vminfo will be the location to insert the return value
   4.110        vminfo = argslot;
   4.111 @@ -2563,7 +2512,6 @@
   4.112  
   4.113    case _adapter_fold_args:
   4.114      {
   4.115 -      assert(UseRicochetFrames, "else don't come here");
   4.116        int elem_slots = argument_slot_count(java_lang_invoke_MethodHandle::type(argument()));
   4.117        // vminfo will be the location to insert the return value
   4.118        vminfo = argslot + elem_slots;
     5.1 --- a/src/share/vm/prims/methodHandles.hpp	Thu Jan 19 10:56:51 2012 -0800
     5.2 +++ b/src/share/vm/prims/methodHandles.hpp	Thu Jan 19 17:20:39 2012 -0800
     5.3 @@ -738,46 +738,6 @@
     5.4  #ifdef TARGET_ARCH_ppc
     5.5  # include "methodHandles_ppc.hpp"
     5.6  #endif
     5.7 -
     5.8 -#ifdef TARGET_ARCH_NYI_6939861
     5.9 -  // Here are some backward compatible declarations until the 6939861 ports are updated.
    5.10 -  #define _adapter_flyby    (_EK_LIMIT + 10)
    5.11 -  #define _adapter_ricochet (_EK_LIMIT + 11)
    5.12 -  #define _adapter_opt_spread_1    _adapter_opt_spread_1_ref
    5.13 -  #define _adapter_opt_spread_more _adapter_opt_spread_ref
    5.14 -  enum {
    5.15 -    _INSERT_NO_MASK   = -1,
    5.16 -    _INSERT_REF_MASK  = 0,
    5.17 -    _INSERT_INT_MASK  = 1,
    5.18 -    _INSERT_LONG_MASK = 3
    5.19 -  };
    5.20 -  static void get_ek_bound_mh_info(EntryKind ek, BasicType& arg_type, int& arg_mask, int& arg_slots) {
    5.21 -    arg_type = ek_bound_mh_arg_type(ek);
    5.22 -    arg_mask = 0;
    5.23 -    arg_slots = type2size[arg_type];;
    5.24 -  }
    5.25 -  static void get_ek_adapter_opt_swap_rot_info(EntryKind ek, int& swap_bytes, int& rotate) {
    5.26 -    int swap_slots = ek_adapter_opt_swap_slots(ek);
    5.27 -    rotate = ek_adapter_opt_swap_mode(ek);
    5.28 -    swap_bytes = swap_slots * Interpreter::stackElementSize;
    5.29 -  }
    5.30 -  static int get_ek_adapter_opt_spread_info(EntryKind ek) {
    5.31 -    return ek_adapter_opt_spread_count(ek);
    5.32 -  }
    5.33 -
    5.34 -  static void insert_arg_slots(MacroAssembler* _masm,
    5.35 -                               RegisterOrConstant arg_slots,
    5.36 -                               int arg_mask,
    5.37 -                               Register argslot_reg,
    5.38 -                               Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
    5.39 -
    5.40 -  static void remove_arg_slots(MacroAssembler* _masm,
    5.41 -                               RegisterOrConstant arg_slots,
    5.42 -                               Register argslot_reg,
    5.43 -                               Register temp_reg, Register temp2_reg, Register temp3_reg = noreg);
    5.44 -
    5.45 -  static void trace_method_handle(MacroAssembler* _masm, const char* adaptername) PRODUCT_RETURN;
    5.46 -#endif //TARGET_ARCH_NYI_6939861
    5.47  };
    5.48  
    5.49  
     6.1 --- a/src/share/vm/runtime/globals.hpp	Thu Jan 19 10:56:51 2012 -0800
     6.2 +++ b/src/share/vm/runtime/globals.hpp	Thu Jan 19 17:20:39 2012 -0800
     6.3 @@ -3826,10 +3826,6 @@
     6.4    develop(bool, StressMethodHandleWalk, false,                              \
     6.5            "Process all method handles with MethodHandleWalk")               \
     6.6                                                                              \
     6.7 -  diagnostic(bool, UseRicochetFrames, true,                                 \
     6.8 -          "use ricochet stack frames for method handle combination, "       \
     6.9 -          "if the platform supports them")                                  \
    6.10 -                                                                            \
    6.11    experimental(bool, TrustFinalNonStaticFields, false,                      \
    6.12            "trust final non-static declarations for constant folding")       \
    6.13                                                                              \
     7.1 --- a/src/share/vm/runtime/sharedRuntime.cpp	Thu Jan 19 10:56:51 2012 -0800
     7.2 +++ b/src/share/vm/runtime/sharedRuntime.cpp	Thu Jan 19 17:20:39 2012 -0800
     7.3 @@ -121,7 +121,6 @@
     7.4  void SharedRuntime::generate_ricochet_blob() {
     7.5    if (!EnableInvokeDynamic)  return;  // leave it as a null
     7.6  
     7.7 -#ifndef TARGET_ARCH_NYI_6939861
     7.8    // allocate space for the code
     7.9    ResourceMark rm;
    7.10    // setup code generation tools
    7.11 @@ -142,7 +141,6 @@
    7.12    }
    7.13  
    7.14    _ricochet_blob = RicochetBlob::create(&buffer, bounce_offset, exception_offset, frame_size_in_words);
    7.15 -#endif
    7.16  }
    7.17  
    7.18  

mercurial