mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-18 10:04:42 +02:00
8263679: C1: Remove vtable call
Reviewed-by: vlivanov, kvn
This commit is contained in:
parent
11c8c78c47
commit
a67a679c78
13 changed files with 11 additions and 68 deletions
|
@ -2958,14 +2958,10 @@ void LIRGenerator::do_Invoke(Invoke* x) {
|
|||
__ call_opt_virtual(target, receiver, result_register,
|
||||
SharedRuntime::get_resolve_opt_virtual_call_stub(),
|
||||
arg_list, info);
|
||||
} else if (x->vtable_index() < 0) {
|
||||
} else {
|
||||
__ call_icvirtual(target, receiver, result_register,
|
||||
SharedRuntime::get_resolve_virtual_call_stub(),
|
||||
arg_list, info);
|
||||
} else {
|
||||
int entry_offset = in_bytes(Klass::vtable_start_offset()) + x->vtable_index() * vtableEntry::size_in_bytes();
|
||||
int vtable_offset = entry_offset + vtableEntry::method_offset_in_bytes();
|
||||
__ call_virtual(target, receiver, result_register, vtable_offset, arg_list, info);
|
||||
}
|
||||
break;
|
||||
case Bytecodes::_invokedynamic: {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue