Mercurial > hg > truffle
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 |