changeset in /hg/icedtea6: 2009-02-27 Gary Benson <gbenson at red...

Gary Benson gbenson at redhat.com
Fri Feb 27 06:53:04 PST 2009


changeset 9f1c16638724 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9f1c16638724
description:
	2009-02-27  Gary Benson  <gbenson at redhat.com>

		* ports/hotspot/src/share/vm/shark/sharkState.cpp
		(SharkEntryState::initialize): Mark the receiver as
		zero-checked for non-static methods.

		* ports/hotspot/src/share/vm/shark/sharkValue.hpp
		(SharkValue::jint_constant): Mark non-zero constants
		as zero-checked.
		(SharkValue::jlong_constant): Likewise.

diffstat:

3 files changed, 25 insertions(+), 2 deletions(-)
ChangeLog                                       |   11 +++++++++++
ports/hotspot/src/share/vm/shark/sharkState.cpp |    6 ++++++
ports/hotspot/src/share/vm/shark/sharkValue.hpp |   10 ++++++++--

diffs (57 lines):

diff -r fd98e848b25c -r 9f1c16638724 ChangeLog
--- a/ChangeLog	Fri Feb 27 04:08:04 2009 -0500
+++ b/ChangeLog	Fri Feb 27 14:52:57 2009 +0000
@@ -1,3 +1,14 @@ 2009-02-27  Gary Benson  <gbenson at redhat
+2009-02-27  Gary Benson  <gbenson at redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkState.cpp
+	(SharkEntryState::initialize): Mark the receiver as
+	zero-checked for non-static methods.
+
+	* ports/hotspot/src/share/vm/shark/sharkValue.hpp
+	(SharkValue::jint_constant): Mark non-zero constants
+	as zero-checked.
+	(SharkValue::jlong_constant): Likewise.
+
 2009-02-27  Gary Benson  <gbenson at redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp
diff -r fd98e848b25c -r 9f1c16638724 ports/hotspot/src/share/vm/shark/sharkState.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkState.cpp	Fri Feb 27 04:08:04 2009 -0500
+++ b/ports/hotspot/src/share/vm/shark/sharkState.cpp	Fri Feb 27 14:52:57 2009 +0000
@@ -94,6 +94,12 @@ void SharkEntryState::initialize(Value* 
     set_local(i, value);
   }
 
+  // Non-static methods have a guaranteed non-null receiver
+  if (!function()->target()->is_static()) {
+    assert(local(0)->is_jobject(), "should be");
+    local(0)->set_zero_checked(true);
+  }
+
   // Expression stack
   assert(!stack_depth_at_entry(), "entry block shouldn't have stack");
 }
diff -r fd98e848b25c -r 9f1c16638724 ports/hotspot/src/share/vm/shark/sharkValue.hpp
--- a/ports/hotspot/src/share/vm/shark/sharkValue.hpp	Fri Feb 27 04:08:04 2009 -0500
+++ b/ports/hotspot/src/share/vm/shark/sharkValue.hpp	Fri Feb 27 14:52:57 2009 +0000
@@ -149,11 +149,17 @@ class SharkValue : public ResourceObj {
  public:
   static SharkValue* jint_constant(jint value)
   {
-    return create_jint(LLVMValue::jint_constant(value));
+    SharkValue *result = create_jint(LLVMValue::jint_constant(value));
+    if (value != 0)
+      result->set_zero_checked(true);
+    return result;
   }
   static SharkValue* jlong_constant(jlong value)
   {
-    return create_jlong(LLVMValue::jlong_constant(value));
+    SharkValue *result = create_jlong(LLVMValue::jlong_constant(value));
+    if (value != 0)
+      result->set_zero_checked(true);
+    return result;
   }
   static SharkValue* jfloat_constant(jfloat value)
   {



More information about the distro-pkg-dev mailing list