comparison src/share/vm/opto/parseHelper.cpp @ 4762:069ab3f976d3

7118863: Move sizeof(klassOopDesc) into the *Klass::*_offset_in_bytes() functions Summary: Moved sizeof(klassOopDesc), changed the return type to ByteSize and removed the _in_bytes suffix. Reviewed-by: never, bdelsart, coleenp, jrose
author stefank
date Wed, 07 Dec 2011 11:35:03 +0100
parents f95d63e2154a
children 22cee0ee8927
comparison
equal deleted inserted replaced
4761:65149e74c706 4762:069ab3f976d3
198 } 198 }
199 199
200 // Come here for polymorphic array klasses 200 // Come here for polymorphic array klasses
201 201
202 // Extract the array element class 202 // Extract the array element class
203 int element_klass_offset = objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc); 203 int element_klass_offset = in_bytes(objArrayKlass::element_klass_offset());
204 Node *p2 = basic_plus_adr(array_klass, array_klass, element_klass_offset); 204 Node *p2 = basic_plus_adr(array_klass, array_klass, element_klass_offset);
205 Node *a_e_klass = _gvn.transform( LoadKlassNode::make(_gvn, immutable_memory(), p2, tak) ); 205 Node *a_e_klass = _gvn.transform( LoadKlassNode::make(_gvn, immutable_memory(), p2, tak) );
206 206
207 // Check (the hard way) and throw if not a subklass. 207 // Check (the hard way) and throw if not a subklass.
208 // Result is ignored, we just need the CFG effects. 208 // Result is ignored, we just need the CFG effects.
218 Node* cur_thread = _gvn.transform( new (C, 1) ThreadLocalNode() ); 218 Node* cur_thread = _gvn.transform( new (C, 1) ThreadLocalNode() );
219 Node* merge = new (C, 3) RegionNode(3); 219 Node* merge = new (C, 3) RegionNode(3);
220 _gvn.set_type(merge, Type::CONTROL); 220 _gvn.set_type(merge, Type::CONTROL);
221 Node* kls = makecon(TypeKlassPtr::make(klass)); 221 Node* kls = makecon(TypeKlassPtr::make(klass));
222 222
223 Node* init_thread_offset = _gvn.MakeConX(instanceKlass::init_thread_offset_in_bytes() + klassOopDesc::klass_part_offset_in_bytes()); 223 Node* init_thread_offset = _gvn.MakeConX(in_bytes(instanceKlass::init_thread_offset()));
224 Node* adr_node = basic_plus_adr(kls, kls, init_thread_offset); 224 Node* adr_node = basic_plus_adr(kls, kls, init_thread_offset);
225 Node* init_thread = make_load(NULL, adr_node, TypeRawPtr::BOTTOM, T_ADDRESS); 225 Node* init_thread = make_load(NULL, adr_node, TypeRawPtr::BOTTOM, T_ADDRESS);
226 Node *tst = Bool( CmpP( init_thread, cur_thread), BoolTest::eq); 226 Node *tst = Bool( CmpP( init_thread, cur_thread), BoolTest::eq);
227 IfNode* iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN); 227 IfNode* iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN);
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(in_bytes(instanceKlass::init_state_offset()));
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 Node* init_state = make_load(NULL, adr_node, TypeInt::INT, T_INT);
234 Node* being_init = _gvn.intcon(instanceKlass::being_initialized); 234 Node* being_init = _gvn.intcon(instanceKlass::being_initialized);
235 tst = Bool( CmpI( init_state, being_init), BoolTest::eq); 235 tst = Bool( CmpI( init_state, being_init), BoolTest::eq);
236 iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN); 236 iff = create_and_map_if(control(), tst, PROB_ALWAYS, COUNT_UNKNOWN);