changeset 3232:75a7c4a1290d

Remove Zero fix patch fragments upstreamed in 8155261. 2016-05-03 Andrew John Hughes <gnu.andrew@redhat.com> * patches/hotspot/hs23/zero_fixes.patch: Remove fragments upstreamed in 8155261. * patches/hotspot/hs23/zero_hs22.patch: Likewise.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Tue, 03 May 2016 21:20:57 +0100
parents 285f0a597b47
children 29a0ec98e779
files ChangeLog patches/hotspot/hs23/zero_fixes.patch patches/hotspot/hs23/zero_hs22.patch
diffstat 3 files changed, 20 insertions(+), 444 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Tue May 03 20:00:25 2016 +0100
+++ b/ChangeLog	Tue May 03 21:20:57 2016 +0100
@@ -1,3 +1,10 @@
+2016-05-03  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* patches/hotspot/hs23/zero_fixes.patch:
+	Remove fragments upstreamed in 8155261.
+	* patches/hotspot/hs23/zero_hs22.patch:
+	Likewise.
+
 2016-02-15  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	PR2849: wget not required when downloading is disabled
--- a/patches/hotspot/hs23/zero_fixes.patch	Tue May 03 20:00:25 2016 +0100
+++ b/patches/hotspot/hs23/zero_fixes.patch	Tue May 03 21:20:57 2016 +0100
@@ -1,60 +1,6 @@
-# HG changeset patch
-# User andrew
-# Date 1346354667 -3600
-#      Thu Aug 30 20:24:27 2012 +0100
-# Node ID 2a413d946cb1acdcbe1110098f79b7a1f267bf75
-# Parent  3e0087ab5e924827bc198557c8e4e5b1c4ff1fa3
-Fix Zero FTBFS issues
-
-diff --git a/src/cpu/zero/vm/assembler_zero.cpp b/src/cpu/zero/vm/assembler_zero.cpp
---- openjdk/hotspot/src/cpu/zero/vm/assembler_zero.cpp
-+++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.cpp
-@@ -91,3 +91,11 @@
- address ShouldNotCallThisEntry() {
-   return (address) should_not_call;
- }
-+
-+static void zero_null_fn() {
-+  return;
-+}
-+
-+address ZeroNullStubEntry(address fn) {
-+  return (address) fn;
-+}
-diff --git a/src/cpu/zero/vm/assembler_zero.hpp b/src/cpu/zero/vm/assembler_zero.hpp
---- openjdk/hotspot/src/cpu/zero/vm/assembler_zero.hpp
-+++ openjdk/hotspot/src/cpu/zero/vm/assembler_zero.hpp
-@@ -65,5 +65,6 @@
- 
- address ShouldNotCallThisStub();
- address ShouldNotCallThisEntry();
-+address ZeroNullStubEntry(address fn);
- 
- #endif // CPU_ZERO_VM_ASSEMBLER_ZERO_HPP
-diff --git a/src/cpu/zero/vm/copy_zero.hpp b/src/cpu/zero/vm/copy_zero.hpp
---- openjdk/hotspot/src/cpu/zero/vm/copy_zero.hpp
-+++ openjdk/hotspot/src/cpu/zero/vm/copy_zero.hpp
-@@ -169,7 +169,7 @@
- }
- 
- static void pd_fill_to_bytes(void* to, size_t count, jubyte value) {
--  memset(to, value, count);
-+  if ( count > 0 ) memset(to, value, count);
- }
- 
- static void pd_zero_to_words(HeapWord* tohw, size_t count) {
-@@ -177,7 +177,7 @@
- }
- 
- static void pd_zero_to_bytes(void* to, size_t count) {
--  memset(to, 0, count);
-+  if ( count > 0 ) memset(to, 0, count);
- }
- 
- #endif // CPU_ZERO_VM_COPY_ZERO_HPP
-diff --git a/src/cpu/zero/vm/cppInterpreter_zero.cpp b/src/cpu/zero/vm/cppInterpreter_zero.cpp
---- openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
-+++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2016-05-03 20:18:13.388935986 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp	2016-05-03 20:19:21.099818351 +0100
 @@ -36,6 +36,7 @@
  #include "oops/oop.inline.hpp"
  #include "prims/jvmtiExport.hpp"
@@ -77,81 +23,7 @@
  int CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) {
    JavaThread *thread = (JavaThread *) THREAD;
  
-@@ -699,6 +707,9 @@
-     method_handle = adapter;
-   }
- 
-+  CPPINT_DEBUG( tty->print_cr( "Process method_handle sp: 0x%x unwind_sp: 0x%x result_slots: %d.", \
-+			       stack->sp(), unwind_sp, result_slots ); )
-+
-   // Start processing
-   process_method_handle(method_handle, THREAD);
-   if (HAS_PENDING_EXCEPTION)
-@@ -718,6 +729,8 @@
-   }
- 
-   // Check
-+  CPPINT_DEBUG( tty->print_cr( "Exiting method_handle_entry,  sp: 0x%x unwind_sp: 0x%x result_slots: %d.", \
-+			       stack->sp(), unwind_sp, result_slots ); )
-   assert(stack->sp() == unwind_sp - result_slots, "should be");
- 
-   // No deoptimized frames on the stack
-@@ -725,6 +738,7 @@
- }
- 
- void CppInterpreter::process_method_handle(oop method_handle, TRAPS) {
-+
-   JavaThread *thread = (JavaThread *) THREAD;
-   ZeroStack *stack = thread->zero_stack();
-   intptr_t *vmslots = stack->sp();
-@@ -739,6 +753,7 @@
-     (MethodHandles::EntryKind) (((intptr_t) entry) & 0xffffffff);
- 
-   methodOop method = NULL;
-+  CPPINT_DEBUG( tty->print_cr( "\nEntering %s 0x%x.",MethodHandles::entry_name(entry_kind), (char *)vmslots ); )
-   switch (entry_kind) {
-   case MethodHandles::_invokestatic_mh:
-     direct_to_method = true;
-@@ -811,11 +826,15 @@
-   case MethodHandles::_bound_int_mh:
-   case MethodHandles::_bound_long_mh:
-     {
--      BasicType arg_type  = T_ILLEGAL;
--      int       arg_mask  = -1;
--      int       arg_slots = -1;
--      MethodHandles::get_ek_bound_mh_info(
--        entry_kind, arg_type, arg_mask, arg_slots);
-+      //     BasicType arg_type  = T_ILLEGAL;
-+      //     int       arg_mask  = -1;
-+      //     int       arg_slots = -1;
-+      //     MethodHandles::get_ek_bound_mh_info(
-+      //      entry_kind, arg_type, arg_mask, arg_slots);
-+      BasicType arg_type = MethodHandles::ek_bound_mh_arg_type(entry_kind);
-+      int arg_mask = 0;
-+      int arg_slots = type2size[arg_type];;
-+
-       int arg_slot =
-         java_lang_invoke_BoundMethodHandle::vmargslot(method_handle);
- 
-@@ -961,10 +980,13 @@
-         java_lang_invoke_AdapterMethodHandle::conversion(method_handle);
-       int arg2 = MethodHandles::adapter_conversion_vminfo(conv);
- 
--      int swap_bytes = 0, rotate = 0;
--      MethodHandles::get_ek_adapter_opt_swap_rot_info(
--        entry_kind, swap_bytes, rotate);
--      int swap_slots = swap_bytes >> LogBytesPerWord;
-+      // int swap_bytes = 0, rotate = 0;
-+      //     MethodHandles::get_ek_adapter_opt_swap_rot_info(
-+      //        entry_kind, swap_bytes, rotate);
-+      int swap_slots = MethodHandles::ek_adapter_opt_swap_slots(entry_kind);
-+      int rotate = MethodHandles::ek_adapter_opt_swap_mode(entry_kind);
-+      int swap_bytes = swap_slots * Interpreter::stackElementSize;
-+      swap_slots = swap_bytes >> LogBytesPerWord;
- 
-       intptr_t tmp;
-       switch (rotate) {
-@@ -1080,12 +1102,309 @@
+@@ -1079,12 +1094,309 @@
      }
      break;
  
@@ -464,17 +336,9 @@
    // Continue along the chain
    if (direct_to_method) {
      if (method == NULL) {
-@@ -1138,6 +1457,7 @@
-     tty->print_cr("dst_rtype = %s", type2name(dst_rtype));
-     ShouldNotReachHere();
-   }
-+  CPPINT_DEBUG( tty->print_cr( "LEAVING %s\n",MethodHandles::entry_name(entry_kind) ); )
- }
- 
- // The new slots will be inserted before slot insert_before.
-diff --git a/src/cpu/zero/vm/frame_zero.inline.hpp b/src/cpu/zero/vm/frame_zero.inline.hpp
---- openjdk/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
-+++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
+diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp openjdk/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
+--- openjdk.orig/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp	2013-09-13 00:30:29.930952968 +0100
++++ openjdk/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp	2016-05-03 20:19:21.099818351 +0100
 @@ -36,6 +36,8 @@
    _deopt_state = unknown;
  }
@@ -484,161 +348,3 @@
  inline frame::frame(ZeroFrame* zf, intptr_t* sp) {
    _zeroframe = zf;
    _sp = sp;
-diff --git a/src/cpu/zero/vm/methodHandles_zero.cpp b/src/cpu/zero/vm/methodHandles_zero.cpp
---- openjdk/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp
-+++ openjdk/hotspot/src/cpu/zero/vm/methodHandles_zero.cpp
-@@ -28,6 +28,8 @@
- #include "memory/allocation.inline.hpp"
- #include "prims/methodHandles.hpp"
- 
-+#define __ _masm->
-+
- int MethodHandles::adapter_conversion_ops_supported_mask() {
-   return ((1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_ONLY)
-          |(1<<java_lang_invoke_AdapterMethodHandle::OP_RETYPE_RAW)
-@@ -38,12 +40,73 @@
-          |(1<<java_lang_invoke_AdapterMethodHandle::OP_ROT_ARGS)
-          |(1<<java_lang_invoke_AdapterMethodHandle::OP_DUP_ARGS)
-          |(1<<java_lang_invoke_AdapterMethodHandle::OP_DROP_ARGS)
--         //|(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
-+         |(1<<java_lang_invoke_AdapterMethodHandle::OP_SPREAD_ARGS)
-          );
--  // FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS.
- }
- 
- void MethodHandles::generate_method_handle_stub(MacroAssembler*          masm,
-                                                 MethodHandles::EntryKind ek) {
-   init_entry(ek, (MethodHandleEntry *) ek);
- }
-+void MethodHandles::RicochetFrame::generate_ricochet_blob(MacroAssembler* _masm,
-+                                                          // output params:
-+                                                          int* bounce_offset,
-+                                                          int* exception_offset,
-+                                                          int* frame_size_in_words) {
-+  (*frame_size_in_words) = 0;
-+  address start = __ pc();
-+  (*bounce_offset) = __ pc() - start;
-+  (*exception_offset) = __ pc() - start;
-+}
-+
-+frame MethodHandles::ricochet_frame_sender(const frame& fr, RegisterMap *map) {
-+  //RicochetFrame* f = RicochetFrame::from_frame(fr);
-+  // Cf. is_interpreted_frame path of frame::sender
-+  //  intptr_t* younger_sp = fr.sp();
-+  //  intptr_t* sp         = fr.sender_sp();
-+  //  return frame(sp, younger_sp, this_frame_adjusted_stack);
-+  ShouldNotCallThis();  
-+}
-+
-+void MethodHandles::ricochet_frame_oops_do(const frame& fr, OopClosure* blk, const RegisterMap* reg_map) {
-+  //  ResourceMark rm;
-+  //  RicochetFrame* f = RicochetFrame::from_frame(fr);
-+
-+  // pick up the argument type descriptor:
-+  //  Thread* thread = Thread::current();
-+  // process fixed part
-+  //  blk->do_oop((oop*)f->saved_target_addr());
-+  //  blk->do_oop((oop*)f->saved_args_layout_addr());
-+
-+  // process variable arguments:
-+  //  if (cookie.is_null())  return;  // no arguments to describe
-+
-+  // the cookie is actually the invokeExact method for my target
-+  // his argument signature is what I'm interested in
-+  //  assert(cookie->is_method(), "");
-+  //  methodHandle invoker(thread, methodOop(cookie()));
-+  //  assert(invoker->name() == vmSymbols::invokeExact_name(), "must be this kind of method");
-+  //  assert(!invoker->is_static(), "must have MH argument");
-+  //  int slot_count = invoker->size_of_parameters();
-+  //  assert(slot_count >= 1, "must include 'this'");
-+  //  intptr_t* base = f->saved_args_base();
-+  //  intptr_t* retval = NULL;
-+  //  if (f->has_return_value_slot())
-+  //    retval = f->return_value_slot_addr();
-+  //  int slot_num = slot_count - 1;
-+  //  intptr_t* loc = &base[slot_num];
-+  //blk->do_oop((oop*) loc);   // original target, which is irrelevant
-+  //  int arg_num = 0;
-+  //  for (SignatureStream ss(invoker->signature()); !ss.is_done(); ss.next()) {
-+  //    if (ss.at_return_type())  continue;
-+  //    BasicType ptype = ss.type();
-+  //    if (ptype == T_ARRAY)  ptype = T_OBJECT; // fold all refs to T_OBJECT
-+  //    assert(ptype >= T_BOOLEAN && ptype <= T_OBJECT, "not array or void");
-+  //    slot_num -= type2size[ptype];
-+  //    loc = &base[slot_num];
-+  //    bool is_oop = (ptype == T_OBJECT && loc != retval);
-+  //    if (is_oop)  blk->do_oop((oop*)loc);
-+  //    arg_num += 1;
-+  //  }
-+  //  assert(slot_num == 0, "must have processed all the arguments");
-+}
-diff --git a/src/cpu/zero/vm/methodHandles_zero.hpp b/src/cpu/zero/vm/methodHandles_zero.hpp
---- openjdk/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp
-+++ openjdk/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp
-@@ -43,4 +43,12 @@
-     saved_target        *(rcx+&mh_vmtgt)    L2_stgt
-     continuation        #STUB_CON           L1_cont
-    */
-+ public:
-+
-+static void generate_ricochet_blob(MacroAssembler* _masm,
-+                                     // output params:
-+                                     int* bounce_offset,
-+                                     int* exception_offset,
-+                                     int* frame_size_in_words);
-+
- };
-diff --git a/src/cpu/zero/vm/sharedRuntime_zero.cpp b/src/cpu/zero/vm/sharedRuntime_zero.cpp
---- openjdk/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
-+++ openjdk/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
-@@ -48,6 +48,11 @@
- 
- 
- 
-+static address zero_null_code_stub() {
-+  address start = ShouldNotCallThisStub();
-+  return start;
-+}
-+
- int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
-                                            VMRegPair *regs,
-                                            int total_args_passed,
-@@ -64,9 +69,9 @@
-                         AdapterFingerPrint *fingerprint) {
-   return AdapterHandlerLibrary::new_entry(
-     fingerprint,
--    ShouldNotCallThisStub(),
--    ShouldNotCallThisStub(),
--    ShouldNotCallThisStub());
-+    ZeroNullStubEntry( CAST_FROM_FN_PTR(address,zero_null_code_stub) ),
-+    ZeroNullStubEntry( CAST_FROM_FN_PTR(address,zero_null_code_stub) ),
-+    ZeroNullStubEntry( CAST_FROM_FN_PTR(address,zero_null_code_stub) ));
- }
- 
- nmethod *SharedRuntime::generate_native_wrapper(MacroAssembler *masm,
-@@ -107,11 +112,11 @@
- }
- 
- static SafepointBlob* generate_empty_safepoint_blob() {
--  return NULL;
-+  return CAST_FROM_FN_PTR(SafepointBlob*,zero_stub);
- }
- 
- static DeoptimizationBlob* generate_empty_deopt_blob() {
--  return NULL;
-+  return CAST_FROM_FN_PTR(DeoptimizationBlob*,zero_stub);
- }
- 
- void SharedRuntime::generate_deopt_blob() {
-diff --git a/src/share/vm/asm/codeBuffer.cpp b/src/share/vm/asm/codeBuffer.cpp
---- openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp
-+++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp
-@@ -674,7 +674,7 @@
-     }
-   }
- 
--  if (dest->blob() == NULL) {
-+  if ((dest->blob() == NULL) && dest_filled ) {
-     // Destination is a final resting place, not just another buffer.
-     // Normalize uninitialized bytes in the final padding.
-     Copy::fill_to_bytes(dest_filled, dest_end - dest_filled,
--- a/patches/hotspot/hs23/zero_hs22.patch	Tue May 03 20:00:25 2016 +0100
+++ b/patches/hotspot/hs23/zero_hs22.patch	Tue May 03 21:20:57 2016 +0100
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/hotspot/make/linux/makefiles/defs.make openjdk/hotspot/make/linux/makefiles/defs.make
---- openjdk.orig/hotspot/make/linux/makefiles/defs.make	2013-08-15 14:22:31.083536693 +0100
-+++ openjdk/hotspot/make/linux/makefiles/defs.make	2013-08-15 14:38:48.102899192 +0100
+--- openjdk.orig/hotspot/make/linux/makefiles/defs.make	2016-05-03 20:02:04.292927351 +0100
++++ openjdk/hotspot/make/linux/makefiles/defs.make	2016-05-03 20:13:14.185874164 +0100
 @@ -232,6 +232,7 @@
  # client and server subdirectories have symbolic links to ../libjsig.so
  EXPORT_LIST += $(EXPORT_JRE_LIB_ARCH_DIR)/libjsig.$(LIBRARY_SUFFIX)
@@ -49,128 +49,17 @@
  ADD_SA_BINARIES/ia64  = 
  ADD_SA_BINARIES/arm   = 
 diff -Nru openjdk.orig/hotspot/make/linux/platform_zero.in openjdk/hotspot/make/linux/platform_zero.in
---- openjdk.orig/hotspot/make/linux/platform_zero.in	2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/make/linux/platform_zero.in	2013-08-15 14:28:43.109389844 +0100
+--- openjdk.orig/hotspot/make/linux/platform_zero.in	2010-06-14 19:53:45.000000000 +0100
++++ openjdk/hotspot/make/linux/platform_zero.in	2016-05-03 20:13:14.185874164 +0100
 @@ -14,4 +14,4 @@
  
  gnu_dis_arch = zero
  
 -sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -D@ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
 +sysdefs = -DLINUX -D_GNU_SOURCE -DCC_INTERP -DZERO -DTARGET_ARCH_NYI_6939861=1 -D@ZERO_ARCHDEF@ -DZERO_LIBARCH=\"@ZERO_LIBARCH@\"
-diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp openjdk/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp
---- openjdk.orig/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp	2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/src/cpu/zero/vm/methodHandles_zero.hpp	2013-08-15 14:37:15.525444593 +0100
-@@ -1,6 +1,6 @@
- /*
-  * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-- * Copyright 2011 Red Hat, Inc.
-+ * Copyright 2011, 2012 Red Hat, Inc.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -29,3 +29,18 @@
-   adapter_code_size = 0
- };
- 
-+class RicochetFrame : public ResourceObj {
-+  friend class MethodHandles;
-+ private:
-+  /*
-+    RF field            x86                 SPARC
-+    sender_pc           *(rsp+0)            I7-0x8
-+    sender_link         rbp                 I6+BIAS
-+    exact_sender_sp     rsi/r13             I5_savedSP
-+    conversion          *(rcx+&amh_conv)    L5_conv
-+    saved_args_base     rax                 L4_sab (cf. Gargs = G4)
-+    saved_args_layout   #NULL               L3_sal
-+    saved_target        *(rcx+&mh_vmtgt)    L2_stgt
-+    continuation        #STUB_CON           L1_cont
-+   */
-+};
-diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp openjdk/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp
---- openjdk.orig/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp	2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp	2013-08-15 14:29:56.398542324 +0100
-@@ -1,6 +1,6 @@
- /*
-  * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
-- * Copyright 2007, 2008, 2009, 2010, 2011 Red Hat, Inc.
-+ * Copyright 2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc.
-  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-  *
-  * This code is free software; you can redistribute it and/or modify it
-@@ -47,6 +47,7 @@
- #endif
- 
- 
-+
- int SharedRuntime::java_calling_convention(const BasicType *sig_bt,
-                                            VMRegPair *regs,
-                                            int total_args_passed,
-@@ -96,19 +97,20 @@
-   ShouldNotCallThis();
- }
- 
-+JRT_LEAF(void, zero_stub())
-+  ShouldNotCallThis();
-+JRT_END
-+
- static RuntimeStub* generate_empty_runtime_stub(const char* name) {
--  CodeBuffer buffer(name, 0, 0);
--  return RuntimeStub::new_runtime_stub(name, &buffer, 0, 0, NULL, false);
-+  return CAST_FROM_FN_PTR(RuntimeStub*,zero_stub);
- }
- 
- static SafepointBlob* generate_empty_safepoint_blob() {
--  CodeBuffer buffer("handler_blob", 0, 0);
--  return SafepointBlob::create(&buffer, NULL, 0);
-+  return NULL;
- }
- 
- static DeoptimizationBlob* generate_empty_deopt_blob() {
--  CodeBuffer buffer("handler_blob", 0, 0);
--  return DeoptimizationBlob::create(&buffer, NULL, 0, 0, 0, 0);
-+  return NULL;
- }
- 
- 
-@@ -124,6 +126,7 @@
-   return generate_empty_runtime_stub("resolve_blob");
- }
- 
-+
- int SharedRuntime::c_calling_convention(const BasicType *sig_bt,
-                                          VMRegPair *regs,
-                                          int total_args_passed) {
-diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/vmStructs.cpp	2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/vmStructs.cpp	2013-08-15 14:28:43.113389906 +0100
-@@ -827,10 +827,10 @@
-   /* CodeBlobs (NOTE: incomplete, but only a little) */                                                                              \
-   /***************************************************/                                                                              \
-                                                                                                                                      \
--  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_pc,                                     address))                   \
--  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _exact_sender_sp,                              intptr_t*))                  \
--  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_link,                                  intptr_t*))                  \
--  X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _saved_args_base,                              intptr_t*))                  \
-+  NOT_ZERO(X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_pc,                                     address)))                   \
-+  NOT_ZERO(X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _exact_sender_sp,                              intptr_t*)))                  \
-+  NOT_ZERO(X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _sender_link,                                  intptr_t*)))                  \
-+  NOT_ZERO(X86_ONLY(nonstatic_field(MethodHandles::RicochetFrame, _saved_args_base,                              intptr_t*)))                  \
-                                                                                                                                      \
-      static_field(SharedRuntime,               _ricochet_blob,                                RicochetBlob*)                         \
-                                                                                                                                      \
-@@ -2529,7 +2529,7 @@
-   /* frame              */                                                \
-   /**********************/                                                \
-                                                                           \
--  X86_ONLY(declare_constant(frame::entry_frame_call_wrapper_offset))      \
-+  NOT_ZERO(X86_ONLY(declare_constant(frame::entry_frame_call_wrapper_offset)))      \
-   declare_constant(frame::pc_return_offset)                               \
-                                                                           \
-   /*************/                                                         \
 diff -Nru openjdk.orig/hotspot/src/share/vm/shark/sharkCompiler.cpp openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp
---- openjdk.orig/hotspot/src/share/vm/shark/sharkCompiler.cpp	2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp	2013-08-15 14:28:43.113389906 +0100
+--- openjdk.orig/hotspot/src/share/vm/shark/sharkCompiler.cpp	2013-09-13 00:30:29.750950170 +0100
++++ openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp	2016-05-03 20:13:14.189874098 +0100
 @@ -1,6 +1,6 @@
  /*
   * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
@@ -188,29 +77,3 @@
    assert(SafepointSynchronize::is_at_safepoint(), "must be at safepoint");
  
    SharkEntry *entry = (SharkEntry *) code;
-diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp
---- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp	2013-06-04 18:47:35.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/utilities/macros.hpp	2013-08-15 14:28:43.113389906 +0100
-@@ -177,6 +177,22 @@
- #define NOT_WIN64(code) code
- #endif
- 
-+#if defined(ZERO)
-+#define ZERO_ONLY(code) code
-+#define NOT_ZERO(code)
-+#else
-+#define ZERO_ONLY(code) 
-+#define NOT_ZERO(code) code
-+#endif
-+
-+#if defined(SHARK)
-+#define SHARK_ONLY(code) code
-+#define NOT_SHARK(code)
-+#else
-+#define SHARK_ONLY(code) 
-+#define NOT_SHARK(code) code
-+#endif
-+
- #if defined(IA32) || defined(AMD64)
- #define X86
- #define X86_ONLY(code) code