Mercurial > hg > truffle
comparison 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 |
comparison
equal
deleted
inserted
replaced
4738:da4dd142ea01 | 4739:52b5d32fbfaf |
---|---|
228 set_control(IfTrue(iff)); | 228 set_control(IfTrue(iff)); |
229 merge->set_req(1, IfFalse(iff)); | 229 merge->set_req(1, IfFalse(iff)); |
230 | 230 |
231 Node* init_state_offset = _gvn.MakeConX(instanceKlass::init_state_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes()); | 231 Node* init_state_offset = _gvn.MakeConX(instanceKlass::init_state_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes()); |
232 adr_node = basic_plus_adr(kls, kls, init_state_offset); | 232 adr_node = basic_plus_adr(kls, kls, init_state_offset); |
233 Node* init_state = make_load(NULL, adr_node, TypeInt::INT, T_INT); | 233 // Use T_BOOLEAN for instanceKlass::_init_state so the compiler |
234 // can generate code to load it as unsigned byte. | |
235 Node* init_state = make_load(NULL, adr_node, TypeInt::UBYTE, T_BOOLEAN); | |
234 Node* being_init = _gvn.intcon(instanceKlass::being_initialized); | 236 Node* being_init = _gvn.intcon(instanceKlass::being_initialized); |
235 tst = Bool( CmpI( init_state, being_init), BoolTest::eq); | 237 tst = Bool( CmpI( init_state, being_init), BoolTest::eq); |
236 iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN); | 238 iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN); |
237 set_control(IfTrue(iff)); | 239 set_control(IfTrue(iff)); |
238 merge->set_req(2, IfFalse(iff)); | 240 merge->set_req(2, IfFalse(iff)); |