src/cpu/sparc/vm/methodHandles_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 7118863 Sdiff src/cpu/sparc/vm

src/cpu/sparc/vm/methodHandles_sparc.cpp

Print this page




1081 
1082   // Argument registers for _raise_exception:
1083   const Register O0_code     = O0;
1084   const Register O1_actual   = O1;
1085   const Register O2_required = O2;
1086 
1087   guarantee(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
1088 
1089   // Some handy addresses:
1090   Address G3_mh_vmtarget(   G3_method_handle, java_lang_invoke_MethodHandle::vmtarget_offset_in_bytes());
1091 
1092   Address G3_dmh_vmindex(   G3_method_handle, java_lang_invoke_DirectMethodHandle::vmindex_offset_in_bytes());
1093 
1094   Address G3_bmh_vmargslot( G3_method_handle, java_lang_invoke_BoundMethodHandle::vmargslot_offset_in_bytes());
1095   Address G3_bmh_argument(  G3_method_handle, java_lang_invoke_BoundMethodHandle::argument_offset_in_bytes());
1096 
1097   Address G3_amh_vmargslot( G3_method_handle, java_lang_invoke_AdapterMethodHandle::vmargslot_offset_in_bytes());
1098   Address G3_amh_argument ( G3_method_handle, java_lang_invoke_AdapterMethodHandle::argument_offset_in_bytes());
1099   Address G3_amh_conversion(G3_method_handle, java_lang_invoke_AdapterMethodHandle::conversion_offset_in_bytes());
1100 
1101   const int java_mirror_offset = klassOopDesc::klass_part_offset_in_bytes() + Klass::java_mirror_offset_in_bytes();
1102 
1103   if (have_entry(ek)) {
1104     __ nop();  // empty stubs make SG sick
1105     return;
1106   }
1107 
1108   address interp_entry = __ pc();
1109 
1110   trace_method_handle(_masm, entry_name(ek));
1111 
1112   BLOCK_COMMENT(err_msg("Entry %s {", entry_name(ek)));
1113 
1114   switch ((int) ek) {
1115   case _raise_exception:
1116     {
1117       // Not a real MH entry, but rather shared code for raising an
1118       // exception.  For sharing purposes the arguments are passed into registers
1119       // and then placed in the intepreter calling convention here.
1120       assert(raise_exception_method(), "must be set");
1121       assert(raise_exception_method()->from_compiled_entry(), "method must be linked");




1081 
1082   // Argument registers for _raise_exception:
1083   const Register O0_code     = O0;
1084   const Register O1_actual   = O1;
1085   const Register O2_required = O2;
1086 
1087   guarantee(java_lang_invoke_MethodHandle::vmentry_offset_in_bytes() != 0, "must have offsets");
1088 
1089   // Some handy addresses:
1090   Address G3_mh_vmtarget(   G3_method_handle, java_lang_invoke_MethodHandle::vmtarget_offset_in_bytes());
1091 
1092   Address G3_dmh_vmindex(   G3_method_handle, java_lang_invoke_DirectMethodHandle::vmindex_offset_in_bytes());
1093 
1094   Address G3_bmh_vmargslot( G3_method_handle, java_lang_invoke_BoundMethodHandle::vmargslot_offset_in_bytes());
1095   Address G3_bmh_argument(  G3_method_handle, java_lang_invoke_BoundMethodHandle::argument_offset_in_bytes());
1096 
1097   Address G3_amh_vmargslot( G3_method_handle, java_lang_invoke_AdapterMethodHandle::vmargslot_offset_in_bytes());
1098   Address G3_amh_argument ( G3_method_handle, java_lang_invoke_AdapterMethodHandle::argument_offset_in_bytes());
1099   Address G3_amh_conversion(G3_method_handle, java_lang_invoke_AdapterMethodHandle::conversion_offset_in_bytes());
1100 
1101   const int java_mirror_offset = in_bytes(Klass::java_mirror_offset());
1102 
1103   if (have_entry(ek)) {
1104     __ nop();  // empty stubs make SG sick
1105     return;
1106   }
1107 
1108   address interp_entry = __ pc();
1109 
1110   trace_method_handle(_masm, entry_name(ek));
1111 
1112   BLOCK_COMMENT(err_msg("Entry %s {", entry_name(ek)));
1113 
1114   switch ((int) ek) {
1115   case _raise_exception:
1116     {
1117       // Not a real MH entry, but rather shared code for raising an
1118       // exception.  For sharing purposes the arguments are passed into registers
1119       // and then placed in the intepreter calling convention here.
1120       assert(raise_exception_method(), "must be set");
1121       assert(raise_exception_method()->from_compiled_entry(), "method must be linked");


src/cpu/sparc/vm/methodHandles_sparc.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File