< prev index next >

src/hotspot/cpu/s390/sharedRuntime_s390.cpp

Print this page
@@ -917,12 +917,15 @@
  
    if (ref_kind != 0) {
      member_arg_pos = total_args_passed - 1;  // trailing MemberName argument
      member_reg = Z_R9;                       // Known to be free at this point.
      has_receiver = MethodHandles::ref_kind_has_receiver(ref_kind);
+   } else if (iid == vmIntrinsics::_linkToNative) {
+     member_arg_pos = method->size_of_parameters() - 1;  // trailing NativeEntryPoint argument
+     member_reg = Z_R9;  // known to be free at this point
    } else {
-     guarantee(special_dispatch == vmIntrinsics::_invokeBasic || special_dispatch == vmIntrinsics::_linkToNative,
+     guarantee(special_dispatch == vmIntrinsics::_invokeBasic,
                "special_dispatch=%d", vmIntrinsics::as_int(special_dispatch));
      has_receiver = true;
    }
  
    if (member_reg != noreg) {

@@ -3273,15 +3276,5 @@
  
  extern "C"
  int SpinPause() {
    return 0;
  }
- 
- #ifdef COMPILER2
- RuntimeStub* SharedRuntime::make_native_invoker(address call_target,
-                                                 int shadow_space_bytes,
-                                                 const GrowableArray<VMReg>& input_registers,
-                                                 const GrowableArray<VMReg>& output_registers) {
-   Unimplemented();
-   return nullptr;
- }
- #endif
< prev index next >