Home | History | Annotate | Download | only in quick

Lines Matching defs:instruction

38 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET),
40 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_WIDE),
42 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_OBJECT),
44 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_BOOLEAN),
46 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_BYTE),
48 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_CHAR),
50 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIGet(Instruction::IGET_SHORT),
53 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT),
55 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_WIDE),
57 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_OBJECT),
59 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_BOOLEAN),
61 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_BYTE),
63 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_CHAR),
65 COMPILE_ASSERT(InlineMethodAnalyser::IsInstructionIPut(Instruction::IPUT_SHORT),
68 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET) ==
69 InlineMethodAnalyser::IPutVariant(Instruction::IPUT), check_iget_iput_variant);
70 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET_WIDE) ==
71 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_WIDE), check_iget_iput_wide_variant);
72 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET_OBJECT) ==
73 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_OBJECT), check_iget_iput_object_variant);
74 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET_BOOLEAN) ==
75 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_BOOLEAN), check_iget_iput_boolean_variant);
76 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET_BYTE) ==
77 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_BYTE), check_iget_iput_byte_variant);
78 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET_CHAR) ==
79 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_CHAR), check_iget_iput_char_variant);
80 COMPILE_ASSERT(InlineMethodAnalyser::IGetVariant(Instruction::IGET_SHORT) ==
81 InlineMethodAnalyser::IPutVariant(Instruction::IPUT_SHORT), check_iget_iput_short_variant);
92 // We currently support only plain return or 2-instruction methods.
96 const Instruction* instruction = Instruction::At(code_item->insns_);
97 Instruction::Code opcode = instruction->Opcode();
100 case Instruction::RETURN_VOID:
107 case Instruction::RETURN:
108 case Instruction::RETURN_OBJECT:
109 case Instruction::RETURN_WIDE:
111 case Instruction::CONST:
112 case Instruction::CONST_4:
113 case Instruction::CONST_16:
114 case Instruction::CONST_HIGH16:
117 case Instruction::IGET:
118 case Instruction::IGET_OBJECT:
119 case Instruction::IGET_BOOLEAN:
120 case Instruction::IGET_BYTE:
121 case Instruction::IGET_CHAR:
122 case Instruction::IGET_SHORT:
123 case Instruction::IGET_WIDE:
125 case Instruction::IPUT:
126 case Instruction::IPUT_OBJECT:
127 case Instruction::IPUT_BOOLEAN:
128 case Instruction::IPUT_BYTE:
129 case Instruction::IPUT_CHAR:
130 case Instruction::IPUT_SHORT:
131 case Instruction::IPUT_WIDE:
146 const Instruction* return_instruction = Instruction::At(code_item->insns_);
147 Instruction::Code return_opcode = return_instruction->Opcode();
151 DCHECK_LT((return_opcode == Instruction::RETURN_WIDE) ? reg + 1 : reg,
159 data->is_wide = (return_opcode == Instruction::RETURN_WIDE) ? 1u : 0u;
160 data->is_object = (return_opcode == Instruction::RETURN_OBJECT) ? 1u : 0u;
169 const Instruction* instruction = Instruction::At(code_item->insns_);
170 const Instruction* return_instruction = instruction->Next();
171 Instruction::Code return_opcode = return_instruction->Opcode();
172 if (return_opcode != Instruction::RETURN &&
173 return_opcode != Instruction::RETURN_OBJECT) {
180 int32_t const_value = instruction->VRegB();
181 if (instruction->Opcode() == Instruction::CONST_HIGH16) {
184 DCHECK_LT(instruction->VRegA(), code_item->registers_size_);
185 if (instruction->VRegA() != return_reg) {
188 if (return_opcode == Instruction::RETURN_OBJECT && const_value != 0) {
202 const Instruction* instruction = Instruction::At(code_item->insns_);
203 Instruction::Code opcode = instruction->Opcode();
206 const Instruction* return_instruction = instruction->Next();
207 Instruction::Code return_opcode = return_instruction->Opcode();
208 if (!(return_opcode == Instruction::RETURN_WIDE && opcode == Instruction::IGET_WIDE) &&
209 !(return_opcode == Instruction::RETURN_OBJECT && opcode == Instruction::IGET_OBJECT) &&
210 !(return_opcode == Instruction::RETURN && opcode != Instruction::IGET_WIDE &&
211 opcode != Instruction::IGET_OBJECT)) {
216 DCHECK_LT(return_opcode == Instruction::RETURN_WIDE ? return_reg + 1 : return_reg,
219 uint32_t dst_reg = instruction->VRegA_22c();
220 uint32_t object_reg = instruction->VRegB_22c();
221 uint32_t field_idx = instruction->VRegC_22c();
227 DCHECK_LT(opcode == Instruction::IGET_WIDE ? dst_reg + 1 : dst_reg, code_item->registers_size_);
265 const Instruction* instruction = Instruction::At(code_item->insns_);
266 Instruction::Code opcode = instruction->Opcode();
269 const Instruction* return_instruction = instruction->Next();
270 Instruction::Code return_opcode = return_instruction->Opcode();
273 if (return_opcode != Instruction::RETURN_VOID) {
274 if (return_opcode != Instruction::RETURN &&
275 return_opcode != Instruction::RETURN_OBJECT &&
276 return_opcode != Instruction::RETURN_WIDE) {
282 DCHECK_LT(return_opcode == Instruction::RETURN_WIDE ? return_reg + 1u : return_reg,
287 uint32_t src_reg = instruction->VRegA_22c();
288 uint32_t object_reg = instruction->VRegB_22c();
289 uint32_t field_idx = instruction->VRegC_22c();
293 DCHECK_LT(opcode == Instruction::IPUT_WIDE ? src_reg + 1 : src_reg, code_item->registers_size_);