changeset in /hg/icedtea: 2009-06-05 Gary Benson <gbenson at redh...

Gary Benson gbenson at redhat.com
Wed Jun 10 13:45:37 PDT 2009


changeset 2493b242458e in /hg/icedtea
details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2493b242458e
description:
	2009-06-05  Gary Benson  <gbenson at redhat.com>

		* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
		(SharkTopLevelBlock::do_full_instance_check): Add class argument.
		* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
		(SharkTopLevelBlock::do_instance_check): Removed constant pool check.
		(SharkTopLevelBlock::do_full_instance_check): Removed constant
		pool lookup.

diffstat:

3 files changed, 20 insertions(+), 18 deletions(-)
ChangeLog                                               |    9 +++++
ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp |   27 +++++----------
ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp |    2 -

diffs (74 lines):

diff -r 99fc93351f7f -r 2493b242458e ChangeLog
--- a/ChangeLog	Fri Jun 05 12:12:00 2009 +0100
+++ b/ChangeLog	Fri Jun 05 08:17:22 2009 -0400
@@ -1,3 +1,12 @@ 2009-06-05  Gary Benson  <gbenson at redhat
+2009-06-05  Gary Benson  <gbenson at redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
+	(SharkTopLevelBlock::do_full_instance_check): Add class argument.
+	* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
+	(SharkTopLevelBlock::do_instance_check): Removed constant pool check.
+	(SharkTopLevelBlock::do_full_instance_check): Removed constant
+	pool lookup.
+
 2009-06-05  Gary Benson  <gbenson at redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
diff -r 99fc93351f7f -r 2493b242458e ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp
--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp	Fri Jun 05 12:12:00 2009 +0100
+++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp	Fri Jun 05 08:17:22 2009 -0400
@@ -1166,23 +1166,17 @@ void SharkTopLevelBlock::do_call()
 
 void SharkTopLevelBlock::do_instance_check()
 {
-  constantTag tag =
-    target()->holder()->constant_pool_tag_at(iter()->get_klass_index());
-  if (!tag.is_klass()) {
-    assert(tag.is_unresolved_klass(), "should be");
-    do_trapping_instance_check();
-  }
-  else {
-    do_full_instance_check();
-  }
-}
-
-void SharkTopLevelBlock::do_full_instance_check()
-{ 
   bool will_link;
   ciKlass *klass = iter()->get_klass(will_link);
-  assert(will_link, "should do");
-
+
+  if (will_link)
+    do_full_instance_check(klass);
+  else
+    do_trapping_instance_check();
+}
+
+void SharkTopLevelBlock::do_full_instance_check(ciKlass* klass)
+{ 
   BasicBlock *not_null      = function()->CreateBlock("not_null");
   BasicBlock *subtype_check = function()->CreateBlock("subtype_check");
   BasicBlock *is_instance   = function()->CreateBlock("is_instance");
@@ -1208,8 +1202,7 @@ void SharkTopLevelBlock::do_full_instanc
 
   // Get the class we're checking against
   builder()->SetInsertPoint(not_null);
-  SharkConstantPool constants(this);
-  Value *check_klass = constants.object_at(iter()->get_klass_index());
+  Value *check_klass = builder()->CreateInlineOop(klass);
 
   // Get the class of the object being tested
   Value *object_klass = builder()->CreateValueOfStructEntry(
diff -r 99fc93351f7f -r 2493b242458e ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp
--- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp	Fri Jun 05 12:12:00 2009 +0100
+++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp	Fri Jun 05 08:17:22 2009 -0400
@@ -386,7 +386,7 @@ class SharkTopLevelBlock : public SharkB
 
   // checkcast and instanceof
  private:
-  void do_full_instance_check();
+  void do_full_instance_check(ciKlass* klass);
   void do_trapping_instance_check();
 
   void do_instance_check();



More information about the distro-pkg-dev mailing list