changeset 1733:b21607ae7b62

Merge
author Andrew John Hughes <ahughes@redhat.com>
date Sun, 18 Oct 2009 21:41:46 +0100
parents e09a901109fa (current diff) 80a697e98bff (diff)
children 2673464ac328
files ChangeLog Makefile.am
diffstat 10 files changed, 218 insertions(+), 76 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Oct 07 22:44:35 2009 +0100
+++ b/ChangeLog	Sun Oct 18 21:41:46 2009 +0100
@@ -119,6 +119,46 @@
 	* patches/openjdk/6432567-debugger-socket-overflow.patch:
 	Renamed from oj100013-debugger-socket-overflow.patch.
 
+2009-10-14  Mark Wielaard  <mjw@redhat.com>
+
+	* configure.ac: When enabling systemtap support check sys/sdt.h
+	and g++ are recent enough to allow probes in class constructors
+	and destructors.
+	* patches/icedtea-systemtap.patch: Enable compiling probes in
+	jni.cpp. Rewrite Set<prim>Field and SetStatic<prim>Field macros
+	to use DTRACE_PROBE interface directly instead of generating
+	dtrace implementation calls. Clean up dtrace.hpp.
+	* tapset/hotspot.stp.in: Enable hotspot.monitor_notify. Fix up
+	comments.
+
+2009-10-13  Mark Wielaard  <mjw@redhat.com>
+
+	* tapsets/hotspot.stp.in (hotspot.gc_end): Match gc__end, not begin.
+
+2009-10-12  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/shark_globals.hpp:
+	Removed SharkStartAt, SharkStopAfter and SharkOnlyCompile.
+	* ports/hotspot/src/share/vm/shark/shark_globals.hpp
+	(SharkCompiler::compile_method): Likewise.
+
+2009-10-09  Edward Nevill   <ed@camswl.com>
+
+	* Added initial support for Shark + ARM asm
+
+2009-10-09  Edward Nevill   <ed@camswl.com>
+
+	* Bug fix to irem
+	* Stop icedtea-debug build falling over in test_gamma
+
+2009-10-08  Matthias Klose  <doko@ubuntu.com>
+
+	* Makefile.am (stamps/icedtea.stamp, stamps/icedtea-debug.stamp):
+	Add shark aliases to jvm.cfg.
+	(stamps/add-zero.stamp): Install as shark if default vm is zero.
+	* configure.ac: Allow shark as additional vm when default vm is zero.
+	* INSTALL, README: Document new build options.
+
 2009-10-06  Gary Benson  <gbenson@redhat.com>
 
 	* patches/icedtea-s390-serialize.patch: New file.
--- a/INSTALL	Wed Oct 07 22:44:35 2009 +0100
+++ b/INSTALL	Sun Oct 18 21:41:46 2009 +0100
@@ -125,10 +125,13 @@
    --with-additional-vms=cacao
 to build the additional VM's.  It's not possible to build cacao as the
 default VM, and zero as additional VM.
+To build zero as the default VM and shark as an additional VM, use
+   --enable-zero --with-additional-vms=shark
 
 The additional VM's are available by calling the java with the option
-`-cacao' or `-zero' (for shark as well), or by calling the java tools with
-`-J-<vm name>'.
+`-cacao', `-zero' or `-shark', or by calling the java tools with
+`-J-<vm name>'. If the build was configured with '--enable-shark',
+use `-Xint' to just use the zero VM.
 
 Support for different versions of HotSpot
 ----------------------------------------- 
--- a/Makefile.am	Wed Oct 07 22:44:35 2009 +0100
+++ b/Makefile.am	Sun Oct 18 21:41:46 2009 +0100
@@ -504,8 +504,14 @@
 # These options are provided mainly to assist debugging by returning the bytecode interpreter
 # to a 'vanilla' interpreter.
 #
+if SHARK_BUILD
+${ZERO_ASM_BC_ASM}: ${ZERO_ASM_BC_DEF} $(abs_top_srcdir)/mkbc
+	gcc -E -DDISABLE_NOTICE_SAFEPOINTS - < $< | $(abs_top_srcdir)/mkbc - $@
+else
 ${ZERO_ASM_BC_ASM}: ${ZERO_ASM_BC_DEF} $(abs_top_srcdir)/mkbc
 	gcc -E - < $< | $(abs_top_srcdir)/mkbc - $@
+endif
+
 
 # Link ports sources into tree
 stamps/ports.stamp: stamps/replace-hotspot.stamp
@@ -1181,6 +1187,9 @@
 if ZERO_BUILD
 	printf -- '-zero ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
 endif
+if SHARK_BUILD
+	printf -- '-shark ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
+endif
 if WITH_CACAO
 	printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
 endif
@@ -1270,6 +1279,9 @@
 if ZERO_BUILD
 	printf -- '-zero ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
 endif
+if SHARK_BUILD
+	printf -- '-shark ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
+endif
 if WITH_CACAO
 	printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
 endif
@@ -1867,12 +1879,20 @@
 	$(ADD_ZERO_EXTRA_BUILD_ENV) \
 		$(ARCH_PREFIX) $(MAKE) -C zerovm $(ICEDTEA_BUILD_TARGET)
 
+if ZERO_BUILD
+	mkdir -p $(BUILD_JRE_ARCH_DIR)/shark
+	cp -a zerovm/openjdk/build/$(OS_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
+		$(BUILD_JRE_ARCH_DIR)/shark/
+	printf -- '-shark KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
+else
 	mkdir -p $(BUILD_JRE_ARCH_DIR)/zero
 	cp -a zerovm/openjdk/build/$(OS_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
 		$(BUILD_JRE_ARCH_DIR)/zero/
 	printf -- '-zero KNOWN\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
+endif
 else
 	printf -- '-zero ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
+	printf -- '-shark ERROR\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
 endif
 	touch $@
 
@@ -1887,12 +1907,20 @@
 	$(ADD_ZERO_EXTRA_BUILD_ENV) \
 		$(ARCH_PREFIX) $(MAKE) -C zerovm $(ICEDTEA_DEBUG_BUILD_TARGET)
 
+if ZERO_BUILD
+	mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/shark
+	cp -a zerovm/openjdk/build/$(OS_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
+		$(BUILD_DEBUG_JRE_ARCH_DIR)/shark/
+	printf -- '-shark KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
+else
 	mkdir -p $(BUILD_DEBUG_JRE_ARCH_DIR)/zero
 	cp -a zerovm/openjdk/build/$(OS_DIR)/hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server/* \
 		$(BUILD_DEBUG_JRE_ARCH_DIR)/zero/
 	printf -- '-zero KNOWN\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
+endif
 else
 	printf -- '-zero ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
+	printf -- '-shark ERROR\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
 endif
 	touch $@
 
--- a/README	Wed Oct 07 22:44:35 2009 +0100
+++ b/README	Sun Oct 18 21:41:46 2009 +0100
@@ -153,13 +153,16 @@
 machine, addtional VM's can be built without building the other components
 multiple times.
 
-On architectures where hotspot is available, use 
+On architectures where hotspot is available, use
    --with-additional-vms=cacao,zero  (or shark instead of zero)
 on architectures where only zero (or shark) is available, use
-   --with-additional-vms=cacao  
-to build the additional VM's.  It's not possible to build cacao as the 
+   --with-additional-vms=cacao
+to build the additional VM's.  It's not possible to build cacao as the
 default VM, and zero as additional VM.
+To build zero as the default VM and shark as an additional VM, use
+   --enable-zero --with-additional-vms=shark
 
-If the build was configured with --with-additional-vms, the additional VM's
-are available by calling the java with the option `-cacao' or `-zero' (for
-shark as well), or by calling the java tools with `-J-<vm name>'.
+The additional VM's are available by calling the java with the option
+`-cacao', `-zero' or `-shark', or by calling the java tools with
+`-J-<vm name>'. If the build was configured with '--enable-shark',
+use `-Xint' to just use the zero VM.
--- a/configure.ac	Wed Oct 07 22:44:35 2009 +0100
+++ b/configure.ac	Sun Oct 18 21:41:46 2009 +0100
@@ -335,6 +335,43 @@
                 [SDT_H_FOUND='no';
                    AC_MSG_ERROR([systemtap support needs sys/sdt.h header])])
 
+ AC_MSG_CHECKING([working sys/sdt.h and g++ support])
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/sdt.h>
+class ProbeClass
+{
+private:
+  int& ref;
+  const char *name;
+
+public:
+  ProbeClass(int& v, const char *n) : ref(v), name(n)
+  {
+    DTRACE_PROBE2(_test_, cons, name, ref);
+  }
+
+  void method(int min)
+  {
+    DTRACE_PROBE3(_test_, meth, name, ref, min);
+    ref -= min;
+  }
+
+  ~ProbeClass()
+  {
+    DTRACE_PROBE2(_test_, dest, name, ref);
+  }
+};
+]],
+[[
+  int i = 64;
+  DTRACE_PROBE1(_test_, call, i);
+  ProbeClass inst = ProbeClass(i, "call");
+  inst.method(24);
+]])], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([systemtap sdt.h or g++ too old])])
+  AC_LANG_RESTORE
+
   AC_MSG_CHECKING([for absolute java home install dir])
   AC_ARG_WITH([abs-install-dir],
 	      [AS_HELP_STRING([--with-abs-install-dir], 
@@ -532,7 +569,10 @@
 if test "x${WITH_CACAO}" = xyes && test "x${ADD_CACAO_BUILD_TRUE}" = x; then
   AC_MSG_ERROR([additional vm is the default vm])
 fi
-if test "x${ZERO_BUILD_TRUE}" = x && test "x${ADD_ZERO_BUILD_TRUE}" = x; then
+if test "x${ZERO_BUILD_TRUE}" = x && test "x${ADD_ZERO_BUILD_TRUE}" = x && test "x${ADD_SHARK_BUILD_TRUE}" != x; then
+  AC_MSG_ERROR([additional vm is the default vm])
+fi
+if test "x${SHARK_BUILD_TRUE}" = x && test "x${ADD_SHARK_BUILD_TRUE}" = x; then
   AC_MSG_ERROR([additional vm is the default vm])
 fi
 if test "x${USE_SYSTEM_CACAO_TRUE}" = x; then
@@ -562,7 +602,7 @@
 
 if test "x${SHARK_BUILD_TRUE}" = x || test "x${ADD_SHARK_BUILD_TRUE}" = x; then
   FIND_TOOL([LLVM_CONFIG], [llvm-config])
-  llvm_components="engine nativecodegen"
+  llvm_components="jit engine nativecodegen"
   LLVM_CFLAGS=`$LLVM_CONFIG --cxxflags $llvm_components | \
     sed -e 's/-O.//g' | sed -e 's/-fomit-frame-pointer//g' | \
     sed -e 's/-D_DEBUG//g'`
--- a/patches/icedtea-systemtap.patch	Wed Oct 07 22:44:35 2009 +0100
+++ b/patches/icedtea-systemtap.patch	Sun Oct 18 21:41:46 2009 +0100
@@ -9,22 +9,33 @@
 +CFLAGS += -DDTRACE_ENABLED
 +
 +# It doesn't support HAVE_DTRACE_H though.
-diff -r 945bf7540697 src/share/vm/prims/jni.cpp
---- openjdk/hotspot/src/share/vm/prims/jni.cpp	Thu Jan 22 14:42:01 2009 -0800
-+++ openjdk/hotspot/src/share/vm/prims/jni.cpp	Mon Feb 02 13:47:34 2009 +0100
-@@ -22,6 +22,12 @@
-  *
-  */
- 
-+#ifdef __GNUC__
-+// Unfortunately the gcc c preprocessor doesn't like some of the
-+// FP_SELECT defines below, so for now we make sure to disable them.
-+#undef DTRACE_ENABLED
-+#endif
-+
- # include "incls/_precompiled.incl"
- # include "incls/_jni.cpp.incl"
- 
+--- openjdk/hotspot/src/share/vm/prims/jni.cpp	2009-10-13 15:34:52.499809508 +0200
++++ openjdk/hotspot/src/share/vm/prims/jni.cpp	2009-10-13 15:31:26.117823588 +0200
+@@ -1747,10 +1744,7 @@
+ JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \
+   JNIWrapper("Set" XSTR(Result) "Field"); \
+ \
+-  HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \
+-    ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \
+-  HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \
+-    ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \
++  FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \
+ \
+   oop o = JNIHandles::resolve_non_null(obj); \
+   klassOop k = o->klass(); \
+@@ -1924,10 +1918,7 @@
+ \
+ JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \
+   JNIWrapper("SetStatic" XSTR(Result) "Field"); \
+-  HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\
+-    ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \
+-  HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \
+-    ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \
++  FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \
+ \
+   JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \
+   assert(id->is_static_field_id(), "invalid static field id"); \
+-
 diff -r 945bf7540697 src/share/vm/utilities/dtrace.hpp
 --- openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	Thu Jan 22 14:42:01 2009 -0800
 +++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp	Mon Feb 02 13:47:34 2009 +0100
@@ -52,7 +63,7 @@
  
  #define DTRACE_ONLY(x)
  #define NOT_DTRACE(x) x
-@@ -40,9 +41,15 @@
+@@ -40,9 +41,16 @@
  #define DTRACE_PROBE3(a,b,c,d,e) {;}
  #define DTRACE_PROBE4(a,b,c,d,e,f) {;}
  #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;}
@@ -60,6 +71,7 @@
 +#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;}
 +#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;}
 +#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;}
++#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;}
  
  #endif
  
@@ -68,30 +80,28 @@
  #define HS_DTRACE_PROBE_FN(provider,name)\
    __dtrace_##provider##___##name
  
-@@ -50,6 +57,13 @@
+@@ -50,6 +58,11 @@
    DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args)
  #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \
    DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args)
 +#else
 +// Systemtap dtrace compatible probes on GNU/Linux don't.
-+#define HS_DTRACE_PROBE_FN(provider,name)
-+
 +#define HS_DTRACE_PROBE_DECL_N(provider,name,args)
 +#define HS_DTRACE_PROBE_CDECL_N(provider,name,args)
 +#endif 
  
  /* Dtrace probe declarations */
  #define HS_DTRACE_PROBE_DECL(provider,name) \
-@@ -91,6 +105,8 @@
+@@ -88,6 +101,8 @@
+     uintptr_t,uintptr_t,uintptr_t))
+ 
+ /* Dtrace probe definitions */
++#if defined(SOLARIS)
++// Solaris dtrace uses actual function calls.
  #define HS_DTRACE_PROBE_N(provider,name, args) \
    DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args)
  
-+#if defined(SOLARIS)
-+// Solaris dtrace uses actual function calls.
- #define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name)
- #define HS_DTRACE_PROBE0(provider,name)\
-   HS_DTRACE_PROBE_N(provider,name,())
-@@ -123,3 +139,27 @@
+@@ -123,3 +138,29 @@
    HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\
      (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\
      (uintptr_t)a8,(uintptr_t)a9))
@@ -118,6 +128,8 @@
 +  DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)
 +#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
 +  DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
++#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\
++  DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)
 +#endif
 --- openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2009-03-04 14:39:43.000000000 +0100
 +++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp	2009-03-04 22:11:37.000000000 +0100
--- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S	Wed Oct 07 22:44:35 2009 +0100
+++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_arm.S	Sun Oct 18 21:41:46 2009 +0100
@@ -17,6 +17,10 @@
 
 #ifdef HOTSPOT_ASM
 
+#ifdef SHARK
+#define USE_COMPILER
+#endif
+
 #define ARMv4
 
 #ifndef DISABLE_NOTICE_SAFEPOINTS
@@ -1058,7 +1062,7 @@
 asm_generate_method_entry:
 	mov	r3, r0
 	mov	r0, #0
-
+#ifdef PRODUCT
 	adrl	ip, dispatch_init_adcon
 	ldm	ip, {r1, r2}
 	add	r1, r1, ip
@@ -1085,6 +1089,7 @@
 	adrcc	ip, asm_method_table
 	ldrcc	r0, [ip, r3, lsl #2]
 1:
+#endif // PRODUCT
 	bx	lr
 asm_method_table:
 	.word	normal_entry
@@ -2162,8 +2167,8 @@
         bne     .r_loop2
         movs    lr, lr, lsl #1
 	DISPATCH_NEXT
-	DISPATCH_NEXT
 	rsbmi	tmp1, tmp1, #0
+	DISPATCH_NEXT
 	PUSH	tmp1
 	DISPATCH_FINISH
 
@@ -3988,12 +3993,34 @@
 	add	dispatch, r1, r0
 	ldr	r0, [istate, #ISTATE_METHOD]
 	CACHE_STACK
+  USEC	ldr	r2, [r0, #METHOD_INVOCATIONCOUNTER]
+  USEC	ldr	lr, [dispatch, #InterpreterInvocationLimit_Address-XXX]
+  USEC	add	r2, r2, #INVOCATIONCOUNTER_COUNTINCREMENT
+  USEC	ldr	lr, [lr]
+  USEC	str	r2, [r0, #METHOD_INVOCATIONCOUNTER]
+  USEC	cmp	r2, lr
+	ldr	r3, [r0, #METHOD_ACCESSFLAGS]
+  USEC	bcs	sync_method_entry_freq_count_overflow
+	CACHE_LOCALS
+	tst	r3, #JVM_ACC_SYNCHRONIZED
+	CACHE_CP
+	bne	normal_do_synchronization
+	DISPATCH	0
+
+#ifdef USE_COMPILER
+sync_method_entry_freq_count_overflow:
+	mov	r1, #0
+	mov	r0, tmp1
+	bl	_ZN18InterpreterRuntime26frequency_counter_overflowEP10JavaThreadPh
+	ldr	r0, [istate, #ISTATE_METHOD]
+	CACHE_JPC
 	ldr	r3, [r0, #METHOD_ACCESSFLAGS]
 	CACHE_LOCALS
 	tst	r3, #JVM_ACC_SYNCHRONIZED
 	CACHE_CP
 	bne	normal_do_synchronization
 	DISPATCH	0
+#endif
 
 do_execute_java_bytecodes_restore_locals_and_jpc:
 	CACHE_JPC
@@ -4546,11 +4573,18 @@
 	DISPATCH_START	48
         ldr     constpool, [constpool, #CONSTANTPOOL_CACHE]
         str     ip, [tmp1, #THREAD_TOP_ZERO_FRAME]
+  USEC	ldr	r3, [r10, #METHOD_INVOCATIONCOUNTER]
         str     ip, [tmp1, #THREAD_LAST_JAVA_SP]
 	DISPATCH_NEXT
+  USEC	ldr	lr, [dispatch, #InterpreterInvocationLimit_Address-XXX]
+  USEC	add	r3, r3, #INVOCATIONCOUNTER_COUNTINCREMENT
         str     tmp1, [istate, #ISTATE_THREAD]
+  USEC	ldr	lr, [lr]
+  USEC	str	r3, [tmp2, #METHOD_INVOCATIONCOUNTER]
 	str	locals, [istate, #ISTATE_LOCALS]
+  USEC	cmp	r3, lr
 	str	constpool, [istate, #ISTATE_CONSTANTS]
+  USEC	bcs	method_entry_freq_count_overflow
 	DISPATCH_NEXT
 	DISPATCH_NEXT
 	DISPATCH_NEXT
@@ -4559,6 +4593,18 @@
 @        str     lr, [istate, #ISTATE_PREV_LINK]
 @	str	lr, [istate, #ISTATE_CALLEE]
 	DISPATCH_FINISH
+#ifdef USE_COMPILER
+method_entry_freq_count_overflow:
+	DECACHE_JPC
+	str	r10, [istate, #ISTATE_METHOD]
+	mov	r1, #0
+	mov	r0, tmp1
+	bl	_ZN18InterpreterRuntime26frequency_counter_overflowEP10JavaThreadPh
+	CACHE_JPC
+	CACHE_CP
+	DISPATCH	0
+#endif
+
 
 handle_return:
 @	CHECK_CONSTPOOL
@@ -6301,6 +6347,7 @@
 	.word	PrintCommandLineFlags(GOT)
 	.word	_ZN11JvmtiExport28_can_post_interpreter_eventsE(GOT)
 	.word	UseCompiler(GOT)
+	.word	_ZN17InvocationCounter26InterpreterInvocationLimitE(GOT)
 	.word	0
 
 	ALIGN_DATA
@@ -6580,10 +6627,10 @@
 CodeTrace_Buffer_Base:
 	.space	CODETRACE_BUFFER_SIZE
 #endif
-	.word	0
 DispatchBreakPoint:					.word	0
 VFP_Flag:						.word	0
 CodeTrace_Idx:						.word	0
+InterpreterInvocationLimit_Address:			.word	0
 UseCompiler_Address:					.word	0
 can_post_interpreter_events:				.word	0
 PrintCommandLineFlags_Address:				.word	0
--- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp	Wed Oct 07 22:44:35 2009 +0100
+++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp	Sun Oct 18 21:41:46 2009 +0100
@@ -94,27 +94,6 @@
   ResourceMark rm;
   const char *name = methodname(target);
 
-#ifndef PRODUCT
-  // Skip methods if requested
-  static uintx methods_seen = 0;
-  methods_seen++;
-  if (methods_seen < SharkStartAt) {
-    env->record_method_not_compilable("methods_seen < SharkStartAt");
-    return;
-  }
-  else if (methods_seen > SharkStopAfter) {
-    while (true)
-      sleep(1);
-  }
-#endif // !PRODUCT
-
-  if (SharkOnlyCompile != NULL) {
-    if (fnmatch(SharkOnlyCompile, name, 0)) {
-      env->record_method_not_compilable("does not match SharkOnlyCompile");
-      return;
-    }
-  }
-
   // Do the typeflow analysis
   ciTypeFlow *flow;
   if (entry_bci == InvocationEntryBci)
--- a/ports/hotspot/src/share/vm/shark/shark_globals.hpp	Wed Oct 07 22:44:35 2009 +0100
+++ b/ports/hotspot/src/share/vm/shark/shark_globals.hpp	Sun Oct 18 21:41:46 2009 +0100
@@ -37,15 +37,6 @@
           "Maximum bytecode size of methods to inline when using Shark")      \
                                                                               \
   /* compiler debugging */                                                    \
-  develop(uintx, SharkStartAt, 0,                                             \
-          "First method to consider when using Shark")                        \
-                                                                              \
-  develop(uintx, SharkStopAfter, max_uintx,                                   \
-          "Last method to consider when using Shark")                         \
-                                                                              \
-  develop(ccstr, SharkOnlyCompile, NULL,                                      \
-          "Only compile the specified method")                                \
-                                                                              \
   develop(ccstr, SharkPrintTypeflowOf, NULL,                                  \
           "Print the typeflow of the specified method")                       \
                                                                               \
--- a/tapset/hotspot.stp.in	Wed Oct 07 22:44:35 2009 +0100
+++ b/tapset/hotspot.stp.in	Sun Oct 18 21:41:46 2009 +0100
@@ -51,8 +51,8 @@
    Has no arguments.
  */
 probe hotspot.gc_end =
-  process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__begin"),
-  process("@ABS_SERVER_LIBJVM_SO@").mark("gc__begin")
+  process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__end"),
+  process("@ABS_SERVER_LIBJVM_SO@").mark("gc__end")
 {
   name = "gc_end";
   probestr = name;
@@ -311,12 +311,12 @@
                      name, thread_id, id, class);
 }
 
-/* Doesn't resolve atm.
-   hotspot.monitor_notify (extended probe)
+/* hotspot.monitor_notify (extended probe)
    Triggers when a thread calls Object.notify().
    Sets thread_id to the current java thread, id to the unique id
    for this monitor and class to the class name of the object.
    Needs -XX:+ExtendedDTraceProbes.
+ */
 probe hotspot.monitor_notify =
   process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__notify"),
   process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__notify")
@@ -328,7 +328,6 @@
   probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')",
                      name, thread_id, id, class);
 }
- */
 
 /* hotspot.monitor_notifyAll (extended probe)
    Triggers when a thread calls Object.notifyAll().
@@ -369,7 +368,7 @@
                      name, thread_id, id, class);
 }
 
-/* hotspot.monitor_contended_enter (extended probe)
+/* hotspot.monitor_contended_entered (extended probe)
    Triggers when a thread acquires a contended monotor (after
    hotspot.monitor_contended_enter has been triggered on this thread,
    and the other thread triggered a hotspot.monitor_contended_exit).