From 8ec3bd2b31ccbc9027b8e9b1949dd1804bb6d30f Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Wed, 3 Aug 2016 12:46:23 +0100 Subject: Instruction: Add new formats 45cc and 4rcc. These are new 4 byte formats with the following properties. - The first three (16 bit) words of these instructions have the same format as 35c and 3rc respectively. - The fourth 16 bit word encodes an additional constant index reference. This change includes placeholder opcodes for invoke-polymorphic and invoke-polymorphic/range which will be the first dex instructions that use this new format. In addition to a method_idx that gives the invoked method, these instructions also provide a proto_idx which gives the (static) type signature of the call site. The only reason these are included in this change is because we need an instruction with a given format to write a unit_test using the Instruction API. bug: 30550796 test: make test-art-host Change-Id: I02612ddee47169757175a8079d82f811f6545945 --- runtime/interpreter/interpreter_switch_impl.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'runtime/interpreter/interpreter_switch_impl.cc') diff --git a/runtime/interpreter/interpreter_switch_impl.cc b/runtime/interpreter/interpreter_switch_impl.cc index 3623db2a35..a6349fcf88 100644 --- a/runtime/interpreter/interpreter_switch_impl.cc +++ b/runtime/interpreter/interpreter_switch_impl.cc @@ -2322,9 +2322,12 @@ JValue ExecuteSwitchImpl(Thread* self, const DexFile::CodeItem* code_item, inst = inst->Next_2xx(); break; case Instruction::UNUSED_3E ... Instruction::UNUSED_43: - case Instruction::UNUSED_F3 ... Instruction::UNUSED_FF: + case Instruction::UNUSED_F3 ... Instruction::UNUSED_F9: + case Instruction::UNUSED_FC ... Instruction::UNUSED_FF: case Instruction::UNUSED_79: case Instruction::UNUSED_7A: + case Instruction::INVOKE_POLYMORPHIC: + case Instruction::INVOKE_POLYMORPHIC_RANGE: UnexpectedOpcode(inst, shadow_frame); } } while (!interpret_one_instruction); -- cgit v1.2.3-59-g8ed1b