Lines Matching refs:Instruction
36 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET), "iget type");
37 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_WIDE), "iget_wide type");
38 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_OBJECT),
40 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_BOOLEAN),
42 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_BYTE), "iget_byte type");
43 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_CHAR), "iget_char type");
44 static_assert(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_SHORT), "iget_short type");
45 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT), "iput type");
46 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_WIDE), "iput_wide type");
47 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_OBJECT),
49 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_BOOLEAN),
51 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_BYTE), "iput_byte type");
52 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_CHAR), "iput_char type");
53 static_assert(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_SHORT), "iput_short type");
54 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET) ==
55 InlineMethodAnalyser::IPutVariant(Instruction::IPUT), "iget/iput variant");
56 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET_WIDE) ==
57 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_WIDE), "iget/iput_wide variant");
58 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET_OBJECT) ==
59 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_OBJECT), "iget/iput_object variant");
60 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET_BOOLEAN) ==
61 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_BOOLEAN), "iget/iput_boolean variant");
62 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET_BYTE) ==
63 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_BYTE), "iget/iput_byte variant");
64 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET_CHAR) ==
65 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_CHAR), "iget/iput_char variant");
66 static_assert(InlineMethodAnalyser::IGetVariant(Instruction::IGET_SHORT) ==
67 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_SHORT), "iget/iput_short variant");
84 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseMethodCode()
85 Instruction::Code opcode = instruction->Opcode(); in AnalyseMethodCode()
88 case Instruction::RETURN_VOID: in AnalyseMethodCode()
95 case Instruction::RETURN: in AnalyseMethodCode()
96 case Instruction::RETURN_OBJECT: in AnalyseMethodCode()
97 case Instruction::RETURN_WIDE: in AnalyseMethodCode()
99 case Instruction::CONST: in AnalyseMethodCode()
100 case Instruction::CONST_4: in AnalyseMethodCode()
101 case Instruction::CONST_16: in AnalyseMethodCode()
102 case Instruction::CONST_HIGH16: in AnalyseMethodCode()
105 case Instruction::IGET: in AnalyseMethodCode()
106 case Instruction::IGET_OBJECT: in AnalyseMethodCode()
107 case Instruction::IGET_BOOLEAN: in AnalyseMethodCode()
108 case Instruction::IGET_BYTE: in AnalyseMethodCode()
109 case Instruction::IGET_CHAR: in AnalyseMethodCode()
110 case Instruction::IGET_SHORT: in AnalyseMethodCode()
111 case Instruction::IGET_WIDE: in AnalyseMethodCode()
117 case Instruction::IPUT: in AnalyseMethodCode()
118 case Instruction::IPUT_OBJECT: in AnalyseMethodCode()
119 case Instruction::IPUT_BOOLEAN: in AnalyseMethodCode()
120 case Instruction::IPUT_BYTE: in AnalyseMethodCode()
121 case Instruction::IPUT_CHAR: in AnalyseMethodCode()
122 case Instruction::IPUT_SHORT: in AnalyseMethodCode()
123 case Instruction::IPUT_WIDE: in AnalyseMethodCode()
145 const Instruction* return_instruction = Instruction::At(code_item->insns_); in AnalyseReturnMethod()
146 Instruction::Code return_opcode = return_instruction->Opcode(); in AnalyseReturnMethod()
150 DCHECK_LT((return_opcode == Instruction::RETURN_WIDE) ? reg + 1 : reg, in AnalyseReturnMethod()
158 data->is_wide = (return_opcode == Instruction::RETURN_WIDE) ? 1u : 0u; in AnalyseReturnMethod()
159 data->is_object = (return_opcode == Instruction::RETURN_OBJECT) ? 1u : 0u; in AnalyseReturnMethod()
168 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseConstMethod()
169 const Instruction* return_instruction = instruction->Next(); in AnalyseConstMethod()
170 Instruction::Code return_opcode = return_instruction->Opcode(); in AnalyseConstMethod()
171 if (return_opcode != Instruction::RETURN && in AnalyseConstMethod()
172 return_opcode != Instruction::RETURN_OBJECT) { in AnalyseConstMethod()
180 if (instruction->Opcode() == Instruction::CONST_HIGH16) { in AnalyseConstMethod()
187 if (return_opcode == Instruction::RETURN_OBJECT && const_value != 0) { in AnalyseConstMethod()
201 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseIGetMethod()
202 Instruction::Code opcode = instruction->Opcode(); in AnalyseIGetMethod()
205 const Instruction* return_instruction = instruction->Next(); in AnalyseIGetMethod()
206 Instruction::Code return_opcode = return_instruction->Opcode(); in AnalyseIGetMethod()
207 if (!(return_opcode == Instruction::RETURN_WIDE && opcode == Instruction::IGET_WIDE) && in AnalyseIGetMethod()
208 !(return_opcode == Instruction::RETURN_OBJECT && opcode == Instruction::IGET_OBJECT) && in AnalyseIGetMethod()
209 !(return_opcode == Instruction::RETURN && opcode != Instruction::IGET_WIDE && in AnalyseIGetMethod()
210 opcode != Instruction::IGET_OBJECT)) { in AnalyseIGetMethod()
215 DCHECK_LT(return_opcode == Instruction::RETURN_WIDE ? return_reg + 1 : return_reg, in AnalyseIGetMethod()
226 DCHECK_LT(opcode == Instruction::IGET_WIDE ? dst_reg + 1 : dst_reg, code_item->registers_size_); in AnalyseIGetMethod()
264 const Instruction* instruction = Instruction::At(code_item->insns_); in AnalyseIPutMethod()
265 Instruction::Code opcode = instruction->Opcode(); in AnalyseIPutMethod()
268 const Instruction* return_instruction = instruction->Next(); in AnalyseIPutMethod()
269 Instruction::Code return_opcode = return_instruction->Opcode(); in AnalyseIPutMethod()
272 if (return_opcode != Instruction::RETURN_VOID) { in AnalyseIPutMethod()
273 if (return_opcode != Instruction::RETURN && in AnalyseIPutMethod()
274 return_opcode != Instruction::RETURN_OBJECT && in AnalyseIPutMethod()
275 return_opcode != Instruction::RETURN_WIDE) { in AnalyseIPutMethod()
281 DCHECK_LT(return_opcode == Instruction::RETURN_WIDE ? return_reg + 1u : return_reg, in AnalyseIPutMethod()
292 DCHECK_LT(opcode == Instruction::IPUT_WIDE ? src_reg + 1 : src_reg, code_item->registers_size_); in AnalyseIPutMethod()