Mercurial > hg > graal-compiler
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); |