comparison src/share/vm/graal/graalCompiler.cpp @ 5000:b5dc2403c1e7

add option to inline VTable stubs
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 01 Mar 2012 12:11:19 +0100
parents 8aa283b5e173
children 5e6f1026a63e
comparison
equal deleted inserted replaced
4999:71bcf0a9e875 5000:b5dc2403c1e7
272 HotSpotMethodResolved::set_codeSize(obj, method->code_size()); 272 HotSpotMethodResolved::set_codeSize(obj, method->code_size());
273 HotSpotMethodResolved::set_accessFlags(obj, method->access_flags().as_int()); 273 HotSpotMethodResolved::set_accessFlags(obj, method->access_flags().as_int());
274 HotSpotMethodResolved::set_maxLocals(obj, method->max_locals()); 274 HotSpotMethodResolved::set_maxLocals(obj, method->max_locals());
275 HotSpotMethodResolved::set_maxStackSize(obj, method->max_stack()); 275 HotSpotMethodResolved::set_maxStackSize(obj, method->max_stack());
276 HotSpotMethodResolved::set_canBeInlined(obj, !CompilerOracle::should_not_inline(method)); 276 HotSpotMethodResolved::set_canBeInlined(obj, !CompilerOracle::should_not_inline(method));
277
278 int vtable_entry_offset;
279 if (instanceKlass::cast(method->method_holder())->is_interface()) {
280 vtable_entry_offset = -1;
281 } else {
282 // get entry offset in words
283 vtable_entry_offset = instanceKlass::vtable_start_offset() + method->vtable_index() * vtableEntry::size();
284 // convert to bytes
285 vtable_entry_offset = vtable_entry_offset * wordSize + vtableEntry::method_offset_in_bytes();
286 }
287 HotSpotMethodResolved::set_vtableEntryOffset(obj, vtable_entry_offset);
277 288
278 method->set_graal_mirror(obj()); 289 method->set_graal_mirror(obj());
279 return obj; 290 return obj;
280 } 291 }
281 292