[vm/bytecode] Replace InstanceCall instruction with InterfaceCall and DynamicCall.

Dispatch interface calls via hashtable rather than inline cache.
InterfaceCall doesn't need to take arguments descriptor into account
when doing method lookup.

Change-Id: I30eae6ea638d1d2ad2cf3ff073c653fee3377f31
Reviewed-on: https://dart-review.googlesource.com/c/86106
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
This commit is contained in:
Régis Crelier
2018-12-14 16:51:51 +00:00
committed by commit-bot@chromium.org
parent e2007126eb
commit 25851db73d
25 changed files with 1103 additions and 712 deletions
@@ -214,7 +214,8 @@ static bool HasLoadFromPool(KBCInstr instr) {
case KernelBytecode::kLoadConstant:
case KernelBytecode::kPushConstant:
case KernelBytecode::kIndirectStaticCall:
case KernelBytecode::kInstanceCall:
case KernelBytecode::kInterfaceCall:
case KernelBytecode::kDynamicCall:
case KernelBytecode::kStoreStaticTOS:
case KernelBytecode::kPushStatic:
case KernelBytecode::kAllocate: