Mercurial > hg > truffle
diff src/share/vm/opto/parseHelper.cpp @ 4739:52b5d32fbfaf
7117052: instanceKlass::_init_state can be u1 type
Summary: Change instanceKlass::_init_state field to u1 type.
Reviewed-by: bdelsart, coleenp, dholmes, phh, never
Contributed-by: Jiangli Zhou <jiangli.zhou@oracle.com>
author | coleenp |
---|---|
date | Tue, 06 Dec 2011 18:28:51 -0500 |
parents | f95d63e2154a |
children | 22cee0ee8927 |
line wrap: on
line diff
--- a/src/share/vm/opto/parseHelper.cpp Tue Nov 29 14:44:44 2011 -0500 +++ b/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);