Home
last modified time | relevance | path

Searched refs:Instruction (Results 1 – 25 of 132) sorted by relevance

123456

/art/libdexfile/dex/
Ddex_instruction_utils.h54 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 …]
Ddex_instruction-inl.h27 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 …]
Ddex_instruction_test.cc24 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/
Dflow_analysis.cc90 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 …]
Dhidden_api_finder.cc70 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/
Dliveness_test.cc86 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 …]
Dssa_test.cc123 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 …]
Dlinearize_test.cc69 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 …]
Ddominator_test.cc55 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 …]
Dpretty_printer_test.cc44 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 …]
Dfind_loops_test.cc35 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 …]
Dsuspend_check_test.cc47 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 …]
Ddead_code_elimination_test.cc72 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 …]
Dgraph_checker_test.cc62 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 …]
Dcodegen_test.cc110 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 …]
Dconstant_folding_test.cc99 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 …]
Dlive_ranges_test.cc59 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/
Ddex_to_dex_decompiler.cc45 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 …]
Dcommon_throws.cc463 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/
Ddex_to_dex_compiler.cc77 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/
Dinline_method_analyser.cc61 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 …]
Dinline_method_analyser.h106 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/
Ddexanalyze_bytecode.cc192 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 …]
Ddexanalyze_experiments.cc37 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/
Dmterp.cc78 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 …]

123456