changeset 1733:019ce4c19ba2

2009-03-12 Gary Benson <gbenson@redhat.com> * ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::parse_bytecode): Ensure that state setup code is the first code for the block. (transplanted from 832443ed76f7032e2e26d4453ce420cbd0c6d72d)
author Gary Benson <gbenson@redhat.com>
date Thu, 12 Mar 2009 07:08:14 -0400
parents 5caf65dd9bd3
children 1c92b0f7c071
files ChangeLog ports/hotspot/src/share/vm/shark/sharkBlock.cpp
diffstat 2 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Mar 11 09:03:27 2009 -0400
+++ b/ChangeLog	Thu Mar 12 07:08:14 2009 -0400
@@ -1,3 +1,9 @@
+2009-03-12  Gary Benson  <gbenson@redhat.com>
+
+	* ports/hotspot/src/share/vm/shark/sharkBlock.cpp
+	(SharkBlock::parse_bytecode): Ensure that state setup
+	code is the first code for the block.
+
 2009-03-11  Gary Benson  <gbenson@redhat.com>
 
 	* ports/hotspot/src/share/vm/shark/sharkIntrinsics.hpp: New file.
--- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp	Wed Mar 11 09:03:27 2009 -0400
+++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp	Thu Mar 12 07:08:14 2009 -0400
@@ -33,6 +33,11 @@
   SharkValue *a, *b, *c, *d;
   int i;
 
+  // Ensure the current state is initialized before we emit any code,
+  // so that any setup code for the state is at the start of the block
+  current_state();
+
+  // Parse the bytecodes
   iter()->reset_to_bci(start);
   while (iter()->next_bci() < limit) {
     NOT_PRODUCT(a = b = c = d = NULL);