/art/libdexfile/dex/ |
D | dex_instruction_utils.h | 54 constexpr bool IsInstructionDirectConst(Instruction::Code opcode) { in IsInstructionDirectConst() 55 return Instruction::CONST_4 <= opcode && opcode <= Instruction::CONST_WIDE_HIGH16; in IsInstructionDirectConst() 58 constexpr bool IsInstructionConstWide(Instruction::Code opcode) { in IsInstructionConstWide() 59 return Instruction::CONST_WIDE_16 <= opcode && opcode <= Instruction::CONST_WIDE_HIGH16; in IsInstructionConstWide() 62 constexpr bool IsInstructionReturn(Instruction::Code opcode) { in IsInstructionReturn() 63 return Instruction::RETURN_VOID <= opcode && opcode <= Instruction::RETURN_OBJECT; in IsInstructionReturn() 66 constexpr bool IsInstructionInvoke(Instruction::Code opcode) { in IsInstructionInvoke() 67 return Instruction::INVOKE_VIRTUAL <= opcode && opcode <= Instruction::INVOKE_INTERFACE_RANGE && in IsInstructionInvoke() 68 opcode != Instruction::RETURN_VOID_NO_BARRIER; in IsInstructionInvoke() 71 constexpr bool IsInstructionQuickInvoke(Instruction::Code opcode) { in IsInstructionQuickInvoke() [all …]
|
D | dex_instruction-inl.h | 27 inline bool Instruction::HasVRegA() const { in HasVRegA() 59 inline int32_t Instruction::VRegA() const { in VRegA() 93 inline int8_t Instruction::VRegA_10t(uint16_t inst_data) const { in VRegA_10t() 98 inline uint8_t Instruction::VRegA_10x(uint16_t inst_data) const { in VRegA_10x() 103 inline uint4_t Instruction::VRegA_11n(uint16_t inst_data) const { in VRegA_11n() 108 inline uint8_t Instruction::VRegA_11x(uint16_t inst_data) const { in VRegA_11x() 113 inline uint4_t Instruction::VRegA_12x(uint16_t inst_data) const { in VRegA_12x() 118 inline int16_t Instruction::VRegA_20t() const { in VRegA_20t() 123 inline uint8_t Instruction::VRegA_21c(uint16_t inst_data) const { in VRegA_21c() 128 inline uint8_t Instruction::VRegA_21h(uint16_t inst_data) const { in VRegA_21h() [all …]
|
D | dex_instruction_test.cc | 24 Instruction::Code nop = Instruction::NOP; in TEST() 25 EXPECT_STREQ("nop", Instruction::Name(nop)); in TEST() 26 EXPECT_EQ(Instruction::k10x, Instruction::FormatOf(nop)); in TEST() 27 EXPECT_EQ(Instruction::kIndexNone, Instruction::IndexTypeOf(nop)); in TEST() 28 EXPECT_EQ(Instruction::kContinue, Instruction::FlagsOf(nop)); in TEST() 29 EXPECT_EQ(Instruction::kVerifyNothing, Instruction::VerifyFlagsOf(nop)); in TEST() 72 TEST(Instruction, PropertiesOf45cc) { in TEST() argument 102 uint32_t arg_regs[Instruction::kMaxVarArgRegs]; in TEST() 110 TEST(Instruction, PropertiesOf4rcc) { in TEST() argument 142 Instruction::Code code, in Build35c() [all …]
|
/art/tools/veridex/ |
D | flow_analysis.cc | 90 const Instruction& instruction = pair.Inst(); in FindBranches() 147 int VeriFlowAnalysis::GetBranchFlags(const Instruction& instruction) const { in GetBranchFlags() 150 case Instruction::IF_##cond: { \ in GetBranchFlags() 155 return Instruction::kBranch; \ in GetBranchFlags() 157 return Instruction::kContinue; \ in GetBranchFlags() 162 case Instruction::IF_##cond##Z: { \ in GetBranchFlags() 166 return Instruction::kBranch; \ in GetBranchFlags() 168 return Instruction::kContinue; \ in GetBranchFlags() 187 return Instruction::FlagsOf(instruction.Opcode()); in GetBranchFlags() 204 const Instruction& inst = *Instruction::At(insns); in AnalyzeCode() [all …]
|
D | hidden_api_finder.cc | 70 case Instruction::CONST_STRING: { in CollectAccesses() 98 case Instruction::INVOKE_DIRECT: in CollectAccesses() 99 case Instruction::INVOKE_INTERFACE: in CollectAccesses() 100 case Instruction::INVOKE_STATIC: in CollectAccesses() 101 case Instruction::INVOKE_SUPER: in CollectAccesses() 102 case Instruction::INVOKE_VIRTUAL: { in CollectAccesses() 107 case Instruction::INVOKE_DIRECT_RANGE: in CollectAccesses() 108 case Instruction::INVOKE_INTERFACE_RANGE: in CollectAccesses() 109 case Instruction::INVOKE_STATIC_RANGE: in CollectAccesses() 110 case Instruction::INVOKE_SUPER_RANGE: in CollectAccesses() [all …]
|
/art/compiler/optimizing/ |
D | liveness_test.cc | 86 Instruction::CONST_4 | 0 | 0, in TEST_F() 87 Instruction::RETURN_VOID); in TEST_F() 108 Instruction::CONST_4 | 0 | 0, in TEST_F() 109 Instruction::RETURN); in TEST_F() 134 Instruction::CONST_4 | 3 << 12 | 0, in TEST_F() 135 Instruction::CONST_4 | 4 << 12 | 1 << 8, in TEST_F() 136 Instruction::ADD_INT_2ADDR | 1 << 12, in TEST_F() 137 Instruction::GOTO | 0x100, in TEST_F() 138 Instruction::RETURN); in TEST_F() 181 Instruction::CONST_4 | 0 | 0, in TEST_F() [all …]
|
D | ssa_test.cc | 123 Instruction::CONST_4 | 0 | 0, in TEST_F() 124 Instruction::IF_EQ, 3, in TEST_F() 125 Instruction::GOTO | 0x100, in TEST_F() 126 Instruction::RETURN_VOID); in TEST_F() 154 Instruction::CONST_4 | 0 | 0, in TEST_F() 155 Instruction::IF_EQ, 3, in TEST_F() 156 Instruction::CONST_4 | 4 << 12 | 0, in TEST_F() 157 Instruction::RETURN | 0 << 8); in TEST_F() 185 Instruction::CONST_4 | 0 | 0, in TEST_F() 186 Instruction::IF_EQ, 4, in TEST_F() [all …]
|
D | linearize_test.cc | 69 Instruction::CONST_4 | 0 | 0, in TEST_F() 70 Instruction::IF_EQ, 5, in TEST_F() 71 Instruction::IF_EQ, 0xFFFE, in TEST_F() 72 Instruction::GOTO | 0xFE00, in TEST_F() 73 Instruction::RETURN_VOID); in TEST_F() 94 Instruction::CONST_4 | 0 | 0, in TEST_F() 95 Instruction::IF_EQ, 3, in TEST_F() 96 Instruction::RETURN_VOID, in TEST_F() 97 Instruction::IF_EQ, 0xFFFD, in TEST_F() 98 Instruction::GOTO | 0xFE00); in TEST_F() [all …]
|
D | dominator_test.cc | 55 Instruction::RETURN_VOID); // Block number 1 in TEST_F() 68 Instruction::GOTO | 0x100, // Block number 1 in TEST_F() 69 Instruction::RETURN_VOID); // Block number 2 in TEST_F() 83 Instruction::GOTO | 0x100, // Block number 1 in TEST_F() 84 Instruction::GOTO | 0x100, // Block number 2 in TEST_F() 85 Instruction::RETURN_VOID); // Block number 3 in TEST_F() 100 Instruction::GOTO | 0x200, // Block number 1 in TEST_F() 101 Instruction::RETURN_VOID, // Block number 2 in TEST_F() 102 Instruction::GOTO | 0xFF00); // Block number 3 in TEST_F() 115 Instruction::GOTO_16, 3, in TEST_F() [all …]
|
D | pretty_printer_test.cc | 44 Instruction::RETURN_VOID); in TEST_F() 72 Instruction::GOTO | 0x100, in TEST_F() 73 Instruction::RETURN_VOID); in TEST_F() 93 Instruction::GOTO | 0x100, in TEST_F() 94 Instruction::GOTO | 0x100, in TEST_F() 95 Instruction::RETURN_VOID); in TEST_F() 115 Instruction::GOTO | 0x200, in TEST_F() 116 Instruction::RETURN_VOID, in TEST_F() 117 Instruction::GOTO | 0xFF00); in TEST_F() 122 Instruction::GOTO_16, 3, in TEST_F() [all …]
|
D | find_loops_test.cc | 35 Instruction::CONST_4 | 0 | 0, in TEST_F() 36 Instruction::RETURN_VOID); in TEST_F() 46 Instruction::CONST_4 | 0 | 0, in TEST_F() 47 Instruction::RETURN); in TEST_F() 57 Instruction::CONST_4 | 3 << 12 | 0, in TEST_F() 58 Instruction::CONST_4 | 4 << 12 | 1 << 8, in TEST_F() 59 Instruction::ADD_INT_2ADDR | 1 << 12, in TEST_F() 60 Instruction::GOTO | 0x100, in TEST_F() 61 Instruction::RETURN); in TEST_F() 71 Instruction::CONST_4 | 0 | 0, in TEST_F() [all …]
|
D | suspend_check_test.cc | 47 Instruction::NOP, in TEST_F() 48 Instruction::GOTO | 0xFF00); in TEST_F() 55 Instruction::GOTO_32, 0, 0); in TEST_F() 62 Instruction::CONST_4 | 0 | 0, in TEST_F() 63 Instruction::IF_EQ, 0xFFFF, in TEST_F() 64 Instruction::RETURN_VOID); in TEST_F() 71 Instruction::CONST_4 | 0 | 0, in TEST_F() 72 Instruction::IF_NE, 0xFFFF, in TEST_F() 73 Instruction::RETURN_VOID); in TEST_F() 80 Instruction::CONST_4 | 0 | 0, in TEST_F() [all …]
|
D | dead_code_elimination_test.cc | 72 Instruction::CONST_4 | 1 << 8 | 1 << 12, in TEST_F() 73 Instruction::CONST_4 | 0 << 8 | 0 << 12, in TEST_F() 74 Instruction::IF_GEZ | 1 << 8, 3, in TEST_F() 75 Instruction::MOVE | 0 << 8 | 1 << 12, in TEST_F() 76 Instruction::ADD_INT | 2 << 8, 0 | 1 << 8, in TEST_F() 77 Instruction::RETURN_VOID); in TEST_F() 134 Instruction::CONST_4 | 0 << 8 | 0 << 12, in TEST_F() 135 Instruction::CONST_4 | 1 << 8 | 1 << 12, in TEST_F() 136 Instruction::ADD_INT | 2 << 8, 0 | 1 << 8, in TEST_F() 137 Instruction::GOTO | 4 << 8, in TEST_F() [all …]
|
D | graph_checker_test.cc | 62 Instruction::RETURN_VOID); in TEST_F() 69 Instruction::GOTO | 0x100, in TEST_F() 70 Instruction::RETURN_VOID); in TEST_F() 77 Instruction::CONST_4 | 0 | 0, in TEST_F() 78 Instruction::IF_EQ, 3, in TEST_F() 79 Instruction::GOTO | 0x100, in TEST_F() 80 Instruction::RETURN_VOID); in TEST_F() 87 Instruction::CONST_4 | 0 | 0, in TEST_F() 88 Instruction::IF_EQ, 3, in TEST_F() 89 Instruction::GOTO | 0x100, in TEST_F() [all …]
|
D | codegen_test.cc | 110 const std::vector<uint16_t> data = ZERO_REGISTER_CODE_ITEM(Instruction::RETURN_VOID); in TEST_F() 116 Instruction::GOTO | 0x100, in TEST_F() 117 Instruction::RETURN_VOID); in TEST_F() 124 Instruction::GOTO | 0x100, in TEST_F() 125 Instruction::GOTO | 0x100, in TEST_F() 126 Instruction::RETURN_VOID); in TEST_F() 133 Instruction::GOTO | 0x200, in TEST_F() 134 Instruction::RETURN_VOID, in TEST_F() 135 Instruction::GOTO | 0xFF00); in TEST_F() 140 Instruction::GOTO_16, 3, in TEST_F() [all …]
|
D | constant_folding_test.cc | 99 Instruction::CONST_4 | 0 << 8 | 1 << 12, in TEST_F() 100 Instruction::NEG_INT | 1 << 8 | 0 << 12, in TEST_F() 101 Instruction::RETURN | 1 << 8); in TEST_F() 160 Instruction::CONST_WIDE | 0 << 8, word0, word1, word2, word3, in TEST_F() 161 Instruction::NEG_LONG | 2 << 8 | 0 << 12, in TEST_F() 162 Instruction::RETURN_WIDE | 2 << 8); in TEST_F() 218 Instruction::CONST_4 | 0 << 8 | 1 << 12, in TEST_F() 219 Instruction::CONST_4 | 1 << 8 | 2 << 12, in TEST_F() 220 Instruction::ADD_INT | 2 << 8, 0 | 1 << 8, in TEST_F() 221 Instruction::RETURN | 2 << 8); in TEST_F() [all …]
|
D | live_ranges_test.cc | 59 Instruction::CONST_4 | 0 | 0, in TEST_F() 60 Instruction::RETURN); in TEST_F() 102 Instruction::CONST_4 | 0 | 0, in TEST_F() 103 Instruction::IF_EQ, 3, in TEST_F() 104 Instruction::GOTO | 0x100, in TEST_F() 105 Instruction::RETURN | 0 << 8); in TEST_F() 149 Instruction::CONST_4 | 0 | 0, in TEST_F() 150 Instruction::IF_EQ, 3, in TEST_F() 151 Instruction::CONST_4 | 4 << 12 | 0, in TEST_F() 152 Instruction::RETURN | 0 << 8); in TEST_F() [all …]
|
/art/runtime/ |
D | dex_to_dex_decompiler.cc | 45 void DecompileInstanceFieldAccess(Instruction* inst, Instruction::Code new_opcode) { in DecompileInstanceFieldAccess() 51 void DecompileInvokeVirtual(Instruction* inst, Instruction::Code new_opcode, bool is_range) { in DecompileInvokeVirtual() 61 void DecompileNop(Instruction* inst) { in DecompileNop() 68 inst->SetOpcode(Instruction::CHECK_CAST); in DecompileNop() 95 Instruction* inst = const_cast<Instruction*>(&pair.Inst()); in Decompile() 98 case Instruction::RETURN_VOID_NO_BARRIER: in Decompile() 100 inst->SetOpcode(Instruction::RETURN_VOID); in Decompile() 104 case Instruction::NOP: in Decompile() 113 case Instruction::IGET_QUICK: in Decompile() 114 DecompileInstanceFieldAccess(inst, Instruction::IGET); in Decompile() [all …]
|
D | common_throws.cc | 463 static bool IsValidImplicitCheck(uintptr_t addr, const Instruction& instr) in IsValidImplicitCheck() 470 case Instruction::INVOKE_DIRECT: in IsValidImplicitCheck() 471 case Instruction::INVOKE_DIRECT_RANGE: in IsValidImplicitCheck() 472 case Instruction::INVOKE_VIRTUAL: in IsValidImplicitCheck() 473 case Instruction::INVOKE_VIRTUAL_RANGE: in IsValidImplicitCheck() 474 case Instruction::INVOKE_INTERFACE: in IsValidImplicitCheck() 475 case Instruction::INVOKE_INTERFACE_RANGE: in IsValidImplicitCheck() 476 case Instruction::INVOKE_POLYMORPHIC: in IsValidImplicitCheck() 477 case Instruction::INVOKE_POLYMORPHIC_RANGE: in IsValidImplicitCheck() 478 case Instruction::INVOKE_VIRTUAL_QUICK: in IsValidImplicitCheck() [all …]
|
/art/dex2oat/dex/ |
D | dex_to_dex_compiler.cc | 77 void CompileReturnVoid(Instruction* inst, uint32_t dex_pc); 82 Instruction* CompileCheckCast(Instruction* inst, uint32_t dex_pc); 90 void CompileInstanceFieldAccess(Instruction* inst, uint32_t dex_pc, 91 Instruction::Code new_opcode, bool is_put); 99 void CompileInvokeVirtual(Instruction* inst, uint32_t dex_pc, 100 Instruction::Code new_opcode, bool is_range); 106 uint16_t GetIndexForInstruction(const Instruction* inst, uint32_t index); 195 uint16_t DexToDexCompiler::CompilationState::GetIndexForInstruction(const Instruction* inst, in GetIndexForInstruction() 216 Instruction* inst = const_cast<Instruction*>(&it.Inst()); in Compile() 223 case Instruction::RETURN_VOID: in Compile() [all …]
|
/art/compiler/dex/ |
D | inline_method_analyser.cc | 61 template <Instruction::Code opcode> bool Opcode(); 111 template <Instruction::Code opcode> 119 (instruction_->Opcode() == Instruction::CONST_WIDE ? instruction_->VRegB_51l() == 0 in Const0() 141 ArtMethod* GetTargetConstructor(ArtMethod* method, const Instruction* invoke_direct) in GetTargetConstructor() 143 DCHECK_EQ(invoke_direct->Opcode(), Instruction::INVOKE_DIRECT); in GetTargetConstructor() 164 const Instruction* invoke_direct, in CountForwardedConstructorArguments() 166 DCHECK_EQ(invoke_direct->Opcode(), Instruction::INVOKE_DIRECT); in CountForwardedConstructorArguments() 169 uint32_t args[Instruction::kMaxVarArgRegs]; in CountForwardedConstructorArguments() 187 uint16_t GetZeroVRegMask(const Instruction* const0) { in GetZeroVRegMask() 189 DCHECK((const0->Opcode() == Instruction::CONST_WIDE) ? const0->VRegB_51l() == 0u in GetZeroVRegMask() [all …]
|
D | inline_method_analyser.h | 106 static constexpr bool IsInstructionIGet(Instruction::Code opcode) { in IsInstructionIGet() 107 return Instruction::IGET <= opcode && opcode <= Instruction::IGET_SHORT; in IsInstructionIGet() 110 static constexpr bool IsInstructionIPut(Instruction::Code opcode) { in IsInstructionIPut() 111 return Instruction::IPUT <= opcode && opcode <= Instruction::IPUT_SHORT; in IsInstructionIPut() 114 static constexpr uint16_t IGetVariant(Instruction::Code opcode) { in IGetVariant() 115 return opcode - Instruction::IGET; in IGetVariant() 118 static constexpr uint16_t IPutVariant(Instruction::Code opcode) { in IPutVariant() 119 return opcode - Instruction::IPUT; in IPutVariant()
|
/art/tools/dexanalyze/ |
D | dexanalyze_bytecode.cc | 192 os << Instruction::Name(static_cast<Instruction::Code>(idx)); in Dump() 208 << Instruction::Name(static_cast<Instruction::Code>(pairs[i].second[0])) in Dump() 237 const Instruction::Code opcode = inst->Opcode(); in ProcessCodeItem() 238 Instruction::Code new_opcode = opcode; in ProcessCodeItem() 241 case Instruction::IGET: in ProcessCodeItem() 242 case Instruction::IGET_WIDE: in ProcessCodeItem() 243 case Instruction::IGET_OBJECT: in ProcessCodeItem() 244 case Instruction::IGET_BOOLEAN: in ProcessCodeItem() 245 case Instruction::IGET_BYTE: in ProcessCodeItem() 246 case Instruction::IGET_CHAR: in ProcessCodeItem() [all …]
|
D | dexanalyze_experiments.cc | 37 bool IsRange(Instruction::Code code) { in IsRange() 38 return code == Instruction::INVOKE_VIRTUAL_RANGE || in IsRange() 39 code == Instruction::INVOKE_DIRECT_RANGE || in IsRange() 40 code == Instruction::INVOKE_SUPER_RANGE || in IsRange() 41 code == Instruction::INVOKE_STATIC_RANGE || in IsRange() 42 code == Instruction::INVOKE_INTERFACE_RANGE; in IsRange() 45 uint16_t NumberOfArgs(const Instruction& inst) { in NumberOfArgs() 49 uint16_t DexMethodIndex(const Instruction& inst) { in DexMethodIndex() 283 auto ProcessInstanceField = [&](const Instruction& inst, in ProcessDexFile() 298 auto ProcessStaticField = [&](const Instruction& inst, in ProcessDexFile() [all …]
|
/art/runtime/interpreter/mterp/ |
D | mterp.cc | 78 DCHECK_EQ(signature, static_cast<uint16_t>(art::Instruction::kSparseSwitchSignature)); in MterpDoSparseSwitch() 126 DCHECK_EQ(signature, static_cast<uint16_t>(art::Instruction::kPackedSwitchSignature)); in MterpDoPackedSwitch() 171 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeVirtual() 182 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeSuper() 193 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeInterface() 204 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeDirect() 215 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeStatic() 226 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeCustom() 237 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokePolymorphic() 248 const Instruction* inst = Instruction::At(dex_pc_ptr); in MterpInvokeVirtualRange() [all …]
|