Home
last modified time | relevance | path

Searched refs:Instruction (Results 1 – 25 of 140) 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::UNUSED_73; in IsInstructionInvoke()
71 constexpr bool IsInstructionInvokeStatic(Instruction::Code opcode) { in IsInstructionInvokeStatic()
[all …]
Ddex_instruction-inl.h24 inline constexpr size_t Instruction::SizeInCodeUnits(Format format) { in SizeInCodeUnits()
59 inline bool Instruction::HasVRegA() const { in HasVRegA()
91 inline int32_t Instruction::VRegA() const { in VRegA()
95 inline int32_t Instruction::VRegA(Format format, uint16_t inst_data) const { in VRegA()
130 inline int8_t Instruction::VRegA_10t(uint16_t inst_data) const { in VRegA_10t()
135 inline uint8_t Instruction::VRegA_10x(uint16_t inst_data) const { in VRegA_10x()
140 inline uint4_t Instruction::VRegA_11n(uint16_t inst_data) const { in VRegA_11n()
145 inline uint8_t Instruction::VRegA_11x(uint16_t inst_data) const { in VRegA_11x()
150 inline uint4_t Instruction::VRegA_12x(uint16_t inst_data) const { in VRegA_12x()
155 inline int16_t Instruction::VRegA_20t() const { in VRegA_20t()
[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.cc94 const Instruction& instruction = pair.Inst(); in FindBranches()
165 int VeriFlowAnalysis::GetBranchFlags(const Instruction& instruction) const { in GetBranchFlags()
168 case Instruction::IF_##cond: { \ in GetBranchFlags()
173 return Instruction::kBranch; \ in GetBranchFlags()
175 return Instruction::kContinue; \ in GetBranchFlags()
180 case Instruction::IF_##cond##Z: { \ in GetBranchFlags()
184 return Instruction::kBranch; \ in GetBranchFlags()
186 return Instruction::kContinue; \ in GetBranchFlags()
205 return Instruction::FlagsOf(instruction.Opcode()); in GetBranchFlags()
227 const Instruction& inst = *Instruction::At(insns); in AnalyzeCode()
[all …]
Dhidden_api_finder.cc73 case Instruction::CONST_STRING: { in CollectAccesses()
101 case Instruction::INVOKE_DIRECT: in CollectAccesses()
102 case Instruction::INVOKE_INTERFACE: in CollectAccesses()
103 case Instruction::INVOKE_STATIC: in CollectAccesses()
104 case Instruction::INVOKE_SUPER: in CollectAccesses()
105 case Instruction::INVOKE_VIRTUAL: { in CollectAccesses()
110 case Instruction::INVOKE_DIRECT_RANGE: in CollectAccesses()
111 case Instruction::INVOKE_INTERFACE_RANGE: in CollectAccesses()
112 case Instruction::INVOKE_STATIC_RANGE: in CollectAccesses()
113 case Instruction::INVOKE_SUPER_RANGE: in CollectAccesses()
[all …]
/art/compiler/optimizing/
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 …]
Dliveness_test.cc88 Instruction::CONST_4 | 0 | 0, in TEST_F()
89 Instruction::RETURN_VOID); in TEST_F()
110 Instruction::CONST_4 | 0 | 0, in TEST_F()
111 Instruction::RETURN); in TEST_F()
136 Instruction::CONST_4 | 3 << 12 | 0, in TEST_F()
137 Instruction::CONST_4 | 4 << 12 | 1 << 8, in TEST_F()
138 Instruction::ADD_INT_2ADDR | 1 << 12, in TEST_F()
139 Instruction::GOTO | 0x100, in TEST_F()
140 Instruction::RETURN); in TEST_F()
183 Instruction::CONST_4 | 0 | 0, in TEST_F()
[all …]
Dlinearize_test.cc71 Instruction::CONST_4 | 0 | 0, in TEST_F()
72 Instruction::IF_EQ, 5, in TEST_F()
73 Instruction::IF_EQ, 0xFFFE, in TEST_F()
74 Instruction::GOTO | 0xFE00, in TEST_F()
75 Instruction::RETURN_VOID); in TEST_F()
96 Instruction::CONST_4 | 0 | 0, in TEST_F()
97 Instruction::IF_EQ, 3, in TEST_F()
98 Instruction::RETURN_VOID, in TEST_F()
99 Instruction::IF_EQ, 0xFFFD, in TEST_F()
100 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 …]
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 …]
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 …]
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 …]
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 …]
Dcodegen_test.cc104 const std::vector<uint16_t> data = ZERO_REGISTER_CODE_ITEM(Instruction::RETURN_VOID); in TEST_F()
110 Instruction::GOTO | 0x100, in TEST_F()
111 Instruction::RETURN_VOID); in TEST_F()
118 Instruction::GOTO | 0x100, in TEST_F()
119 Instruction::GOTO | 0x100, in TEST_F()
120 Instruction::RETURN_VOID); in TEST_F()
127 Instruction::GOTO | 0x200, in TEST_F()
128 Instruction::RETURN_VOID, in TEST_F()
129 Instruction::GOTO | 0xFF00); in TEST_F()
134 Instruction::GOTO_16, 3, 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 …]
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 …]
Dinstruction_builder.cc527 case Instruction::MOVE_EXCEPTION: { in FindNativeDebugInfoLocations()
646 void HInstructionBuilder::If_22t(const Instruction& instruction, uint32_t dex_pc) { in If_22t()
656 void HInstructionBuilder::If_21t(const Instruction& instruction, uint32_t dex_pc) { in If_21t()
665 void HInstructionBuilder::Unop_12x(const Instruction& instruction, in Unop_12x()
673 void HInstructionBuilder::Conversion_12x(const Instruction& instruction, in Conversion_12x()
683 void HInstructionBuilder::Binop_23x(const Instruction& instruction, in Binop_23x()
693 void HInstructionBuilder::Binop_23x_shift(const Instruction& instruction, in Binop_23x_shift()
702 void HInstructionBuilder::Binop_23x_cmp(const Instruction& instruction, in Binop_23x_cmp()
713 void HInstructionBuilder::Binop_12x_shift(const Instruction& instruction, in Binop_12x_shift()
723 void HInstructionBuilder::Binop_12x(const Instruction& instruction, in Binop_12x()
[all …]
Dlive_ranges_test.cc62 Instruction::CONST_4 | 0 | 0, in TEST_F()
63 Instruction::RETURN); in TEST_F()
105 Instruction::CONST_4 | 0 | 0, in TEST_F()
106 Instruction::IF_EQ, 3, in TEST_F()
107 Instruction::GOTO | 0x100, in TEST_F()
108 Instruction::RETURN | 0 << 8); in TEST_F()
152 Instruction::CONST_4 | 0 | 0, in TEST_F()
153 Instruction::IF_EQ, 3, in TEST_F()
154 Instruction::CONST_4 | 4 << 12 | 0, in TEST_F()
155 Instruction::RETURN | 0 << 8); in TEST_F()
[all …]
Dinstruction_builder.h38 class Instruction; variable
71 bool ProcessDexInstruction(const Instruction& instruction, uint32_t dex_pc);
93 void Unop_12x(const Instruction& instruction, DataType::Type type, uint32_t dex_pc);
96 void Binop_23x(const Instruction& instruction, DataType::Type type, uint32_t dex_pc);
99 void Binop_23x_shift(const Instruction& instruction, DataType::Type type, uint32_t dex_pc);
101 void Binop_23x_cmp(const Instruction& instruction,
107 void Binop_12x(const Instruction& instruction, DataType::Type type, uint32_t dex_pc);
110 void Binop_12x_shift(const Instruction& instruction, DataType::Type type, uint32_t dex_pc);
113 void Binop_22b(const Instruction& instruction, bool reverse, uint32_t dex_pc);
116 void Binop_22s(const Instruction& instruction, bool reverse, uint32_t dex_pc);
[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/runtime/
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_SUPER: in IsValidImplicitCheck()
[all …]
/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/verifier/
Dmethod_verifier.cc131 constexpr bool IsCompatThrow(Instruction::Code opcode) { in IsCompatThrow()
132 return opcode == Instruction::Code::RETURN_OBJECT || opcode == Instruction::Code::MOVE_EXCEPTION; in IsCompatThrow()
308 bool VerifyInstruction(const Instruction* inst, uint32_t code_offset);
468 …bool CheckSignaturePolymorphicReceiver(const Instruction* inst) REQUIRES_SHARED(Locks::mutator_loc…
544 void VerifyNewArray(const Instruction* inst, bool is_filled, bool is_range)
555 void VerifyAGet(const Instruction* inst, const RegType& insn_type,
559 void VerifyAPut(const Instruction* inst, const RegType& insn_type,
571 void VerifyISFieldAccess(const Instruction* inst, const RegType& insn_type,
619 ArtMethod* VerifyInvocationArgs(const Instruction* inst, MethodType method_type, bool is_range)
624 void VerifyInvocationArgsUnresolvedMethod(const Instruction* inst, MethodType method_type,
[all …]

123456