Lines Matching refs:Instruction
147 class Instruction {
172 static inline Instruction OpNoArgs(Op opcode) { in OpNoArgs()
173 return Instruction{opcode, /*method_id*/ 0, /*dest*/ {}}; in OpNoArgs()
177 static inline Instruction OpWithArgs(Op opcode, std::optional<const Value> dest, T... args) { in OpWithArgs()
178 return Instruction{opcode, /*method_id=*/0, /*result_is_object=*/false, dest, args...}; in OpWithArgs()
182 static inline Instruction Cast(Value val, Value type) { in Cast()
189 static inline Instruction InvokeVirtual(size_t method_id, std::optional<const Value> dest, in InvokeVirtual()
191 return Instruction{ in InvokeVirtual()
196 static inline Instruction InvokeVirtualObject(size_t method_id, std::optional<const Value> dest, in InvokeVirtualObject()
198 return Instruction{ in InvokeVirtualObject()
203 static inline Instruction InvokeDirect(size_t method_id, std::optional<const Value> dest, in InvokeDirect()
205 return Instruction{ in InvokeDirect()
210 static inline Instruction InvokeDirectObject(size_t method_id, std::optional<const Value> dest, in InvokeDirectObject()
212 return Instruction{ in InvokeDirectObject()
217 static inline Instruction InvokeStatic(size_t method_id, std::optional<const Value> dest, in InvokeStatic()
219 return Instruction{Op::kInvokeStatic, method_id, /*result_is_object=*/false, dest, args...}; in InvokeStatic()
223 static inline Instruction InvokeStaticObject(size_t method_id, std::optional<const Value> dest, in InvokeStaticObject()
225 return Instruction{Op::kInvokeStatic, method_id, /*result_is_object=*/true, dest, args...}; in InvokeStaticObject()
229 static inline Instruction InvokeInterface(size_t method_id, std::optional<const Value> dest, in InvokeInterface()
231 return Instruction{Op::kInvokeInterface, method_id, /*result_is_object=*/false, dest, args...}; in InvokeInterface()
245 inline Instruction(Op opcode, size_t method_id, std::optional<const Value> dest) in Instruction() function
249 inline constexpr Instruction(Op opcode, size_t method_id, bool result_is_object, in Instruction() function
266 std::ostream& operator<<(std::ostream& out, const Instruction::Op& opcode);
293 void AddInstruction(Instruction instruction);
310 void EncodeInstruction(const Instruction& instruction);
315 void EncodeReturn(const Instruction& instruction, ::art::Instruction::Code opcode);
317 void EncodeMove(const Instruction& instruction);
318 void EncodeInvoke(const Instruction& instruction, ::art::Instruction::Code opcode);
319 void EncodeBranch(art::Instruction::Code op, const Instruction& instruction);
320 void EncodeNew(const Instruction& instruction);
321 void EncodeCast(const Instruction& instruction);
327 inline void Encode10x(art::Instruction::Code opcode) { in Encode10x()
332 inline void Encode11x(art::Instruction::Code opcode, uint8_t a) { in Encode11x()
337 inline void Encode11n(art::Instruction::Code opcode, uint8_t a, int8_t b) { in Encode11n()
348 inline void Encode21c(art::Instruction::Code opcode, uint8_t a, uint16_t b) { in Encode21c()
354 inline void Encode32x(art::Instruction::Code opcode, uint16_t a, uint16_t b) { in Encode32x()
360 inline void Encode35c(art::Instruction::Code opcode, size_t a, uint16_t b, uint8_t c, uint8_t d, in Encode35c()
375 inline void Encode3rc(art::Instruction::Code opcode, size_t a, uint16_t b, uint16_t c) { in Encode3rc()
412 std::vector<Instruction> instructions_;
537 Instruction::OpWithArgs(Instruction::Op::kNew, target, Value::Type(type_def->orig_index))); in BuildNew()
539 AddInstruction(Instruction::InvokeDirect(constructor_data.id, /*dest=*/{}, target, args...)); in BuildNew()