changeset 2024:7100c9f14ffa

Fix Shark build breakages. 2009-10-28 Andrew John Hughes <ahughes@redhat.com> Fix build failures with Shark. * patches/icedtea-shark.patch: Removed, unused. * patches/hotspot/default/icedtea-shark-build.patch: Derive Shark IncludeDB from Zero not Core. * patches/hotspot/default/icedtea-shark.patch: Regenerated. * patches/icedtea-shark-build.patch: Fix naming of target with new Zero patch.
author Andrew John Hughes <ahughes@redhat.com>
date Thu, 29 Oct 2009 15:00:12 +0000
parents 15bb2a9fc989
children d3256a5c9afe
files ChangeLog patches/hotspot/default/icedtea-shark-build.patch patches/hotspot/default/icedtea-shark.patch patches/icedtea-shark-build.patch patches/icedtea-shark.patch
diffstat 5 files changed, 74 insertions(+), 427 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Oct 12 06:54:47 2009 -0400
+++ b/ChangeLog	Thu Oct 29 15:00:12 2009 +0000
@@ -1,3 +1,14 @@
+2009-10-28  Andrew John Hughes  <ahughes@redhat.com>
+
+	Fix build failures with Shark.
+	* patches/icedtea-shark.patch: Removed, unused.
+	* patches/hotspot/default/icedtea-shark-build.patch:
+	Derive Shark IncludeDB from Zero not Core.
+	* patches/hotspot/default/icedtea-shark.patch:
+	Regenerated.
+	* patches/icedtea-shark-build.patch:
+	Fix naming of target with new Zero patch.
+
 2009-10-12  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/shark_globals.hpp:
--- a/patches/hotspot/default/icedtea-shark-build.patch	Mon Oct 12 06:54:47 2009 -0400
+++ b/patches/hotspot/default/icedtea-shark-build.patch	Thu Oct 29 15:00:12 2009 +0000
@@ -121,7 +121,7 @@
  Include_DBs/COMPILER2   = $(Include_DBs/CORE) $(VM)/includeDB_compiler2
  Include_DBs/TIERED      = $(Include_DBs/CORE) $(VM)/includeDB_compiler1 $(VM)/includeDB_compiler2
  Include_DBs/ZERO        = $(Include_DBs/CORE) $(VM)/includeDB_zero
-+Include_DBs/SHARK       = $(Include_DBs/CORE) $(VM)/includeDB_shark
++Include_DBs/SHARK       = $(Include_DBs/ZERO) $(VM)/includeDB_shark
  Include_DBs = $(Include_DBs/$(TYPE))
  
  Cached_plat = $(GENERATED)/platform.current
--- a/patches/hotspot/default/icedtea-shark.patch	Mon Oct 12 06:54:47 2009 -0400
+++ b/patches/hotspot/default/icedtea-shark.patch	Thu Oct 29 15:00:12 2009 +0000
@@ -1,14 +1,14 @@
 diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.cpp openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp
---- openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.cpp	2009-03-30 17:15:27.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -548,3 +548,4 @@
    }
    return impl;
  }
 +
 diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.hpp openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp
---- openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.hpp	2009-03-30 17:15:27.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.hpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp	2009-10-29 13:19:18.000000000 +0000
 @@ -198,4 +198,5 @@
    // What kind of ciObject is this?
    bool is_instance_klass() { return true; }
@@ -16,8 +16,8 @@
 +
  };
 diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciMethod.cpp openjdk/hotspot/src/share/vm/ci/ciMethod.cpp
---- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.cpp	2009-06-30 14:25:09.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/ci/ciMethod.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/ci/ciMethod.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -56,9 +56,9 @@
    _liveness           = NULL;
    _bcea = NULL;
@@ -103,8 +103,8 @@
  
  // ------------------------------------------------------------------
 diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciMethod.hpp openjdk/hotspot/src/share/vm/ci/ciMethod.hpp
---- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.hpp	2009-05-08 17:40:25.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/ci/ciMethod.hpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.hpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/ci/ciMethod.hpp	2009-10-29 13:19:18.000000000 +0000
 @@ -69,7 +69,7 @@
  
    // Optional liveness analyzer.
@@ -124,23 +124,9 @@
    address       native_entry();
    address       interpreter_entry();
  
-diff -r 0d80af392e67 openjdk/hotspot/src/share/vm/code/nmethod.cpp
---- openjdk/hotspot/src/share/vm/code/nmethod.cpp	Thu Jul 30 10:00:04 2009 +0100
-+++ openjdk/hotspot/src/share/vm/code/nmethod.cpp	Fri Jul 31 15:39:43 2009 +0100
-@@ -1296,6 +1296,10 @@
-     ec = next;
-   }
- 
-+#ifdef SHARK
-+  ((SharkCompiler *) compiler())->free_compiled_method(instructions_begin());
-+#endif // SHARK
-+  
-   ((CodeBlob*)(this))->flush();
- 
-   CodeCache::free(this);
 diff -Nru openjdk.orig/hotspot/src/share/vm/code/nmethod.cpp openjdk/hotspot/src/share/vm/code/nmethod.cpp
---- openjdk.orig/hotspot/src/share/vm/code/nmethod.cpp	2009-09-21 17:12:24.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/code/nmethod.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/code/nmethod.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/code/nmethod.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -65,6 +65,11 @@
    assert(compiler() != NULL, "must be");
    return compiler()->is_c2();
@@ -153,7 +139,18 @@
  
  
  
-@@ -1588,6 +1593,7 @@
+@@ -1321,6 +1326,10 @@
+     CodeCache::drop_scavenge_root_nmethod(this);
+   }
+ 
++#ifdef SHARK
++  ((SharkCompiler *) compiler())->free_compiled_method(instructions_begin());
++#endif // SHARK
++  
+   ((CodeBlob*)(this))->flush();
+ 
+   CodeCache::free(this);
+@@ -1712,6 +1721,7 @@
  // Method that knows how to preserve outgoing arguments at call. This method must be
  // called with a frame corresponding to a Java invoke
  void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) {
@@ -161,7 +158,7 @@
    if (!method()->is_native()) {
      SimpleScopeDesc ssd(this, fr.pc());
      Bytecode_invoke* call = Bytecode_invoke_at(ssd.method(), ssd.bci());
-@@ -1595,6 +1601,7 @@
+@@ -1719,6 +1729,7 @@
      symbolOop signature = call->signature();
      fr.oops_compiled_arguments_do(signature, is_static, reg_map, f);
    }
@@ -169,7 +166,7 @@
  }
  
  
-@@ -2024,6 +2031,8 @@
+@@ -2186,6 +2197,8 @@
      tty->print("(c1) ");
    } else if (is_compiled_by_c2()) {
      tty->print("(c2) ");
@@ -179,9 +176,9 @@
      tty->print("(nm) ");
    }
 diff -Nru openjdk.orig/hotspot/src/share/vm/code/nmethod.hpp openjdk/hotspot/src/share/vm/code/nmethod.hpp
---- openjdk.orig/hotspot/src/share/vm/code/nmethod.hpp	2009-09-21 17:12:24.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/code/nmethod.hpp	2009-09-23 12:40:53.000000000 +0100
-@@ -317,6 +317,7 @@
+--- openjdk.orig/hotspot/src/share/vm/code/nmethod.hpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/code/nmethod.hpp	2009-10-29 13:19:18.000000000 +0000
+@@ -324,6 +324,7 @@
  
    bool is_compiled_by_c1() const;
    bool is_compiled_by_c2() const;
@@ -190,8 +187,8 @@
    // boundaries for different parts
    address code_begin         () const             { return _entry_point; }
 diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/abstractCompiler.hpp openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp
---- openjdk.orig/hotspot/src/share/vm/compiler/abstractCompiler.hpp	2009-03-30 17:15:27.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/compiler/abstractCompiler.hpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp	2009-10-29 13:19:18.000000000 +0000
 @@ -45,18 +45,26 @@
    // Missing feature tests
    virtual bool supports_native()                 { return true; }
@@ -221,8 +218,8 @@
  
    // Customization
 diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp
---- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp	2009-08-06 13:19:29.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -554,6 +554,14 @@
  #endif
  #endif // COMPILER2
@@ -239,8 +236,8 @@
    _task_free_list = NULL;
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/memory/cardTableModRefBS.hpp openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp
---- openjdk.orig/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	2009-09-21 17:12:26.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	2009-10-29 13:19:18.000000000 +0000
 @@ -44,6 +44,7 @@
    friend class VMStructs;
    friend class CardTableRS;
@@ -250,8 +247,8 @@
    // For debugging.
    friend class GuaranteeNotModClosure;
 diff -Nru openjdk.orig/hotspot/src/share/vm/oops/methodOop.cpp openjdk/hotspot/src/share/vm/oops/methodOop.cpp
---- openjdk.orig/hotspot/src/share/vm/oops/methodOop.cpp	2009-08-06 13:19:32.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/oops/methodOop.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/oops/methodOop.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/oops/methodOop.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -738,10 +738,14 @@
    }
  
@@ -268,8 +265,8 @@
  }
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp	2009-08-06 13:19:34.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -229,6 +229,7 @@
  
    }
@@ -345,8 +342,8 @@
 -#endif // COMPILER2
 +#endif // COMPILER2 || SHARK
 diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.cpp openjdk/hotspot/src/share/vm/runtime/globals.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/globals.cpp	2009-03-30 17:15:28.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/globals.cpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/runtime/globals.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/globals.cpp	2009-10-29 13:19:18.000000000 +0000
 @@ -176,6 +176,18 @@
    #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 notproduct}", DEFAULT },
  #endif
@@ -377,8 +374,8 @@
  };
  
 diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp	2009-09-23 12:25:43.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp	2009-09-23 12:40:53.000000000 +0100
+--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp	2009-10-29 13:15:51.000000000 +0000
++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp	2009-10-29 13:19:18.000000000 +0000
 @@ -22,7 +22,7 @@
   *
   */
@@ -389,18 +386,22 @@
  define_pd_global(bool, UseTLAB,                      false);
  define_pd_global(bool, CICompileOSR,                 false);
 diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp	2009-09-22 20:05:25.000000000 +0100
-+++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp	2009-09-23 12:42:19.000000000 +0100
-@@ -97,8 +97,12 @@
+--- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp	2009-10-21 12:46:24.000000000 +0100
++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp	2009-10-29 13:20:39.000000000 +0000
+@@ -94,12 +94,16 @@
+ #ifdef TIERED
+   #define VMTYPE "Server"
+ #else // TIERED
++#ifdef SHARK                                                                                                             
++  #define VMTYPE "Shark"
++#else
  #ifdef ZERO
    #define VMTYPE "Zero"
  #else // ZERO
-+#ifdef SHARK
-+  #define VMTYPE "Shark"
-+#else // SHARK
     #define VMTYPE COMPILER1_PRESENT("Client")   \
                    COMPILER2_PRESENT("Server")
+ #endif // ZERO
 +#endif // SHARK
- #endif // ZERO
  #endif // TIERED
  #endif // KERNEL
+ 
--- a/patches/icedtea-shark-build.patch	Mon Oct 12 06:54:47 2009 -0400
+++ b/patches/icedtea-shark-build.patch	Thu Oct 29 15:00:12 2009 +0000
@@ -1,6 +1,6 @@
 diff -Nru openjdk.orig/jdk/make/java/redist/Makefile openjdk/jdk/make/java/redist/Makefile
---- openjdk.orig/jdk/make/java/redist/Makefile	2009-09-22 20:24:29.000000000 +0100
-+++ openjdk/jdk/make/java/redist/Makefile	2009-09-23 12:02:13.000000000 +0100
+--- openjdk.orig/jdk/make/java/redist/Makefile	2009-10-26 21:42:20.000000000 +0000
++++ openjdk/jdk/make/java/redist/Makefile	2009-10-29 11:53:21.000000000 +0000
 @@ -96,11 +96,13 @@
  
  # Hotspot client is only available on 32-bit non-Zero builds
@@ -33,15 +33,16 @@
  
  #  NOT Windows ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ NOT Windows
 diff -Nru openjdk.orig/make/hotspot-rules.gmk openjdk/make/hotspot-rules.gmk
---- openjdk.orig/make/hotspot-rules.gmk	2009-09-22 21:17:14.000000000 +0100
-+++ openjdk/make/hotspot-rules.gmk	2009-09-23 12:01:14.000000000 +0100
-@@ -75,6 +75,9 @@
+--- openjdk.orig/make/hotspot-rules.gmk	2009-10-29 11:51:56.000000000 +0000
++++ openjdk/make/hotspot-rules.gmk	2009-10-29 11:52:56.000000000 +0000
+@@ -74,6 +74,10 @@
+ 
  ifeq ($(ZERO_BUILD), true)
    HOTSPOT_TARGET := $(HOTSPOT_TARGET)zero
++else
++ifdef ICEDTEA_SHARK_BUILD                                                                                                
++  HOTSPOT_TARGET := $(HOTSPOT_TARGET)shark                                                                               
++endif      
  endif
-+ifdef ICEDTEA_SHARK_BUILD
-+  HOTSPOT_TARGET := $(HOTSPOT_TARGET)shark
-+endif
  
  HOTSPOT_BUILD_ARGUMENTS += $(COMMON_BUILD_ARGUMENTS)
- HOTSPOT_BUILD_ARGUMENTS += ALT_OUTPUTDIR=$(HOTSPOT_OUTPUTDIR)
--- a/patches/icedtea-shark.patch	Mon Oct 12 06:54:47 2009 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,366 +0,0 @@
---- openjdk/hotspot/src/share/vm/oops/methodOop.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/oops/methodOop.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -727,10 +727,14 @@
-   }
- 
-   OrderAccess::storestore();
-+#ifdef SHARK
-+  mh->_from_interpreted_entry = code->instructions_begin();
-+#else
-   mh->_from_compiled_entry = code->verified_entry_point();
-   OrderAccess::storestore();
-   // Instantly compiled code can execute.
-   mh->_from_interpreted_entry = mh->get_i2c_entry();
-+#endif // SHARK
- 
- }
- 
---- openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp	2008-12-03 14:33:48.000000000 +0000
-@@ -44,6 +44,7 @@
-   friend class VMStructs;
-   friend class CardTableRS;
-   friend class CheckForUnmarkedOops; // Needs access to raw card bytes.
-+  friend class SharkBuilder;
- #ifndef PRODUCT
-   // For debugging.
-   friend class GuaranteeNotModClosure;
---- openjdk/hotspot/src/share/vm/runtime/globals.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/globals.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -176,6 +176,18 @@
-   #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 notproduct}", DEFAULT },
- #endif
- 
-+#define SHARK_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark product}", DEFAULT },
-+#define SHARK_PD_PRODUCT_FLAG_STRUCT(type, name, doc)     { #type, XSTR(name), &name, "{Shark pd product}", DEFAULT },
-+#define SHARK_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark diagnostic}", DEFAULT },
-+#ifdef PRODUCT
-+  #define SHARK_DEVELOP_FLAG_STRUCT(type, name, value, doc) /* flag is constant */
-+  #define SHARK_PD_DEVELOP_FLAG_STRUCT(type, name, doc)     /* flag is constant */
-+  #define SHARK_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc)
-+#else
-+  #define SHARK_DEVELOP_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark}", DEFAULT },
-+  #define SHARK_PD_DEVELOP_FLAG_STRUCT(type, name, doc)     { #type, XSTR(name), &name, "{Shark pd}", DEFAULT },
-+  #define SHARK_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{Shark notproduct}", DEFAULT },
-+#endif
- 
- static Flag flagTable[] = {
-  RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_EXPERIMENTAL_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT, RUNTIME_MANAGEABLE_FLAG_STRUCT, RUNTIME_PRODUCT_RW_FLAG_STRUCT, RUNTIME_LP64_PRODUCT_FLAG_STRUCT)
-@@ -189,6 +201,9 @@
- #ifdef COMPILER2
-  C2_FLAGS(C2_DEVELOP_FLAG_STRUCT, C2_PD_DEVELOP_FLAG_STRUCT, C2_PRODUCT_FLAG_STRUCT, C2_PD_PRODUCT_FLAG_STRUCT, C2_DIAGNOSTIC_FLAG_STRUCT, C2_NOTPRODUCT_FLAG_STRUCT)
- #endif
-+#ifdef SHARK
-+ SHARK_FLAGS(SHARK_DEVELOP_FLAG_STRUCT, SHARK_PD_DEVELOP_FLAG_STRUCT, SHARK_PRODUCT_FLAG_STRUCT, SHARK_PD_PRODUCT_FLAG_STRUCT, SHARK_DIAGNOSTIC_FLAG_STRUCT, SHARK_NOTPRODUCT_FLAG_STRUCT)
-+#endif
-  {0, NULL, NULL}
- };
- 
---- openjdk/hotspot/src/share/vm/runtime/vframeArray.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/vframeArray.cpp	2008-12-03 14:33:49.000000000 +0000
-@@ -64,6 +64,11 @@
-       assert(monitor->owner() == NULL || (!monitor->owner()->is_unlocked() && !monitor->owner()->has_bias_pattern()), "object must be null or locked, and unbiased");
-       BasicObjectLock* dest = _monitors->at(index);
-       dest->set_obj(monitor->owner());
-+#ifdef SHARK
-+      // XXX This can be removed when Shark knows
-+      // which monitors are in use.
-+      if (monitor->owner())
-+#endif // SHARK
-       monitor->lock()->move_to(monitor->owner(), dest->lock());
-     }
-   }
-@@ -262,6 +267,11 @@
-     top = iframe()->previous_monitor_in_interpreter_frame(top);
-     BasicObjectLock* src = _monitors->at(index);
-     top->set_obj(src->obj());
-+#ifdef SHARK
-+    // XXX This can be removed when Shark knows
-+    // which monitors are in use.
-+    if (src->obj())
-+#endif // SHARK    
-     src->lock()->move_to(src->obj(), top->lock());
-   }
-   if (ProfileInterpreter) {
---- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp.orig	2008-12-03 14:23:37.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -94,12 +94,16 @@
- #ifdef TIERED
-   #define VMTYPE "Server"
- #else
-+#ifdef SHARK
-+  #define VMTYPE "Shark"
-+#else
- #if defined(COMPILER1) || defined(COMPILER2)
--   #define VMTYPE COMPILER1_PRESENT("Client")   \
--                  COMPILER2_PRESENT("Server")
-+  #define VMTYPE COMPILER1_PRESENT("Client")   \
-+                 COMPILER2_PRESENT("Server")
- #else
-   #define VMTYPE "Core"
- #endif // COMPILER1 || COMPILER2
-+#endif // SHARK
- #endif // TIERED
- #endif // KERNEL
- 
---- openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -229,6 +229,7 @@
- 
-   }
- 
-+#ifndef SHARK
-   // Compute the caller frame based on the sender sp of stub_frame and stored frame sizes info.
-   CodeBlob* cb = stub_frame.cb();
-   // Verify we have the right vframeArray
-@@ -239,6 +240,10 @@
-   assert(cb->is_deoptimization_stub() || cb->is_uncommon_trap_stub(), "just checking");
-   Events::log("fetch unroll sp " INTPTR_FORMAT, unpack_sp);
- #endif
-+#else
-+  intptr_t* unpack_sp = stub_frame.sender(&dummy_map).unextended_sp();
-+#endif // !SHARK
-+  
-   // This is a guarantee instead of an assert because if vframe doesn't match
-   // we will unpack the wrong deoptimized frame and wind up in strange places
-   // where it will be very difficult to figure out what went wrong. Better
-@@ -349,7 +354,9 @@
- 
-   frame_pcs[0] = deopt_sender.raw_pc();
- 
-+#ifndef SHARK
-   assert(CodeCache::find_blob_unsafe(frame_pcs[0]) != NULL, "bad pc");
-+#endif // SHARK
- 
-   UnrollBlock* info = new UnrollBlock(array->frame_size() * BytesPerWord,
-                                       caller_adjustment * BytesPerWord,
-@@ -890,7 +897,20 @@
-   // stuff a C2I adapter we can properly fill in the callee-save
-   // register locations.
-   frame caller = fr.sender(reg_map);
-+#ifdef ZERO
-+  int frame_size;
-+  {
-+    // In zero, frame::sp() is the *end* of the frame, so
-+    // caller.sp() - fr.sp() is the size of the *caller*.
-+    RegisterMap dummy_map(thread, false);
-+    frame frame_1 = thread->last_frame();
-+    frame frame_2 = frame_1.sender(&dummy_map);
-+    assert(frame_2.sp() == fr.sp(), "should be");
-+    frame_size = frame_2.sp() - frame_1.sp();
-+  }
-+#else
-   int frame_size = caller.sp() - fr.sp();
-+#endif // ZERO
- 
-   frame sender = caller;
- 
-@@ -1057,7 +1077,7 @@
- JRT_END
- 
- 
--#ifdef COMPILER2
-+#if defined(COMPILER2) || defined(SHARK)
- void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index, TRAPS) {
-   // in case of an unresolved klass entry, load the class.
-   if (constant_pool->tag_at(index).is_unresolved_klass()) {
-@@ -1808,7 +1828,7 @@
-     if (xtty != NULL)  xtty->tail("statistics");
-   }
- }
--#else // COMPILER2
-+#else // COMPILER2 || SHARK
- 
- 
- // Stubs for C1 only system.
-@@ -1844,4 +1864,4 @@
-   return buf;
- }
- 
--#endif // COMPILER2
-+#endif // COMPILER2 || SHARK
---- openjdk/hotspot/src/share/vm/runtime/globals.hpp.orig	2008-12-03 14:22:17.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp	2008-12-03 14:33:48.000000000 +0000
-@@ -22,7 +22,7 @@
-  *
-  */
- 
--#if !defined(COMPILER1) && !defined(COMPILER2)
-+#if !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK)
- define_pd_global(bool, BackgroundCompilation,        false);
- define_pd_global(bool, UseTLAB,                      false);
- define_pd_global(bool, CICompileOSR,                 false);
---- openjdk/hotspot/src/share/vm/code/nmethod.hpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/code/nmethod.hpp	2008-12-03 14:33:48.000000000 +0000
-@@ -318,6 +318,7 @@
- 
-   bool is_compiled_by_c1() const;
-   bool is_compiled_by_c2() const;
-+  bool is_compiled_by_shark() const;
- 
-   // boundaries for different parts
-   address code_begin         () const             { return _entry_point; }
---- openjdk/hotspot/src/share/vm/code/nmethod.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/code/nmethod.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -65,6 +65,11 @@
-   assert(compiler() != NULL, "must be");
-   return compiler()->is_c2();
- }
-+bool nmethod::is_compiled_by_shark() const {
-+  if (is_native_method()) return false;
-+  assert(compiler() != NULL, "must be");
-+  return compiler()->is_shark();
-+}
- 
- 
- 
-@@ -1567,6 +1572,7 @@
- // Method that knows how to preserve outgoing arguments at call. This method must be
- // called with a frame corresponding to a Java invoke
- void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) {
-+#ifndef SHARK
-   if (!method()->is_native()) {
-     SimpleScopeDesc ssd(this, fr.pc());
-     Bytecode_invoke* call = Bytecode_invoke_at(ssd.method(), ssd.bci());
-@@ -1574,6 +1580,7 @@
-     symbolOop signature = call->signature();
-     fr.oops_compiled_arguments_do(signature, is_static, reg_map, f);
-   }
-+#endif // !SHARK
- }
- 
- 
-@@ -2003,6 +2010,8 @@
-     tty->print("(c1) ");
-   } else if (is_compiled_by_c2()) {
-     tty->print("(c2) ");
-+  } else if (is_compiled_by_shark()) {
-+    tty->print("(shark) ");
-   } else {
-     tty->print("(nm) ");
-   }
---- openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -554,6 +554,14 @@
- #endif
- #endif // COMPILER2
- 
-+#ifdef SHARK
-+#if defined(COMPILER1) || defined(COMPILER2)
-+#error "Can't use COMPILER1 or COMPILER2 with shark"
-+#endif
-+  _compilers[0] = new SharkCompiler();
-+  _compilers[1] = _compilers[0];  
-+#endif
-+  
-   // Initialize the CompileTask free list
-   _task_free_list = NULL;
- 
---- openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp	2008-12-03 14:33:48.000000000 +0000
-@@ -45,18 +45,26 @@
-   // Missing feature tests
-   virtual bool supports_native()                 { return true; }
-   virtual bool supports_osr   ()                 { return true; }
--#if defined(TIERED) || ( !defined(COMPILER1) && !defined(COMPILER2))
-+#if defined(TIERED) || ( !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK))
-   virtual bool is_c1   ()                        { return false; }
-   virtual bool is_c2   ()                        { return false; }
-+  virtual bool is_shark()                        { return false; }
- #else
- #ifdef COMPILER1
-   bool is_c1   ()                                { return true; }
-   bool is_c2   ()                                { return false; }
-+  bool is_shark()                                { return false; }
- #endif // COMPILER1
- #ifdef COMPILER2
-   bool is_c1   ()                                { return false; }
-   bool is_c2   ()                                { return true; }
-+  bool is_shark()                                { return false; }
- #endif // COMPILER2
-+#ifdef SHARK
-+  bool is_c1   ()                                { return false; }
-+  bool is_c2   ()                                { return false; }
-+  bool is_shark()                                { return true; }
-+#endif // SHARK  
- #endif // TIERED
- 
-   // Customization
---- openjdk/hotspot/src/share/vm/ci/ciMethod.hpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/ci/ciMethod.hpp	2008-12-03 14:33:48.000000000 +0000
-@@ -69,7 +69,7 @@
- 
-   // Optional liveness analyzer.
-   MethodLiveness* _liveness;
--#ifdef COMPILER2
-+#if defined(COMPILER2) || defined(SHARK)
-   ciTypeFlow*     _flow;
- #endif
- 
---- openjdk/hotspot/src/share/vm/ci/ciMethod.cpp.orig	2008-11-22 00:11:18.000000000 +0000
-+++ openjdk/hotspot/src/share/vm/ci/ciMethod.cpp	2008-12-03 14:33:48.000000000 +0000
-@@ -56,9 +56,9 @@
-   _liveness           = NULL;
-   _bcea = NULL;
-   _method_blocks = NULL;
--#ifdef COMPILER2
-+#if defined(COMPILER2) || defined(SHARK)
-   _flow               = NULL;
--#endif // COMPILER2
-+#endif // COMPILER2 || SHARK
- 
-   if (JvmtiExport::can_hotswap_or_post_breakpoint() && _is_compilable) {
-     // 6328518 check hotswap conditions under the right lock.
-@@ -124,9 +124,9 @@
-   _bcea = NULL;
-   _method_blocks = NULL;
-   _method_data = NULL;
--#ifdef COMPILER2
-+#if defined(COMPILER2) || defined(SHARK)
-   _flow = NULL;
--#endif // COMPILER2
-+#endif // COMPILER2 || SHARK
- }
- 
- 
-@@ -294,34 +294,34 @@
- // ------------------------------------------------------------------
- // ciMethod::get_flow_analysis
- ciTypeFlow* ciMethod::get_flow_analysis() {
--#ifdef COMPILER2
-+#if defined(COMPILER2) || defined(SHARK)
-   if (_flow == NULL) {
-     ciEnv* env = CURRENT_ENV;
-     _flow = new (env->arena()) ciTypeFlow(env, this);
-     _flow->do_flow();
-   }
-   return _flow;
--#else // COMPILER2
-+#else // COMPILER2 || SHARK
-   ShouldNotReachHere();
-   return NULL;
--#endif // COMPILER2
-+#endif // COMPILER2 || SHARK
- }
- 
- 
- // ------------------------------------------------------------------
- // ciMethod::get_osr_flow_analysis
- ciTypeFlow* ciMethod::get_osr_flow_analysis(int osr_bci) {
--#ifdef COMPILER2
-+#if defined(COMPILER2) || defined(SHARK)
-   // OSR entry points are always place after a call bytecode of some sort
-   assert(osr_bci >= 0, "must supply valid OSR entry point");
-   ciEnv* env = CURRENT_ENV;
-   ciTypeFlow* flow = new (env->arena()) ciTypeFlow(env, this, osr_bci);
-   flow->do_flow();
-   return flow;
--#else // COMPILER2
-+#else // COMPILER2 || SHARK
-   ShouldNotReachHere();
-   return NULL;
--#endif // COMPILER2
-+#endif // COMPILER2 || SHARK
- }
- 
- // ------------------------------------------------------------------