hotspot/src/share/vm/opto/parseHelper.cpp
changeset 11407 5399831730cd
parent 7397 5b173b4ca846
child 11439 7af64224c70b
--- a/hotspot/src/share/vm/opto/parseHelper.cpp	Tue Nov 29 14:44:44 2011 -0500
+++ b/hotspot/src/share/vm/opto/parseHelper.cpp	Tue Dec 06 18:28:51 2011 -0500
@@ -230,7 +230,9 @@
 
   Node* init_state_offset = _gvn.MakeConX(instanceKlass::init_state_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes());
   adr_node = basic_plus_adr(kls, kls, init_state_offset);
-  Node* init_state = make_load(NULL, adr_node, TypeInt::INT, T_INT);
+  // Use T_BOOLEAN for instanceKlass::_init_state so the compiler
+  // can generate code to load it as unsigned byte.
+  Node* init_state = make_load(NULL, adr_node, TypeInt::UBYTE, T_BOOLEAN);
   Node* being_init = _gvn.intcon(instanceKlass::being_initialized);
   tst   = Bool( CmpI( init_state, being_init), BoolTest::eq);
   iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN);