Lines Matching full:instruction
15 #include "src/compiler/instruction-codes.h"
109 // Lifetime of operand inside the instruction.
112 // instruction start. Register allocator is free to assign the same register
113 // to some other operand used inside instruction (i.e. temporary or
118 // instruction. This means that register allocator will not reuse it's
119 // register for any other operand inside instruction.
404 class Instruction : public ZoneObject {
438 static Instruction* New(Zone* zone, InstructionCode opcode) {
442 static Instruction* New(Zone* zone, InstructionCode opcode,
452 int size = static_cast<int>(RoundUp(sizeof(Instruction), kPointerSize) +
455 return new (zone->New(size)) Instruction(
461 Instruction* MarkAsControl() {
465 Instruction* MarkAsCall() {
500 explicit Instruction(InstructionCode opcode)
507 Instruction(InstructionCode opcode, size_t output_count,
541 OStream& operator<<(OStream& os, const Instruction& instr);
543 // Represents moves inserted before an instruction due to register allocation.
544 // TODO(titzer): squash GapInstruction back into Instruction, since essentially
545 // every instruction can possibly have moves inserted before it.
546 class GapInstruction : public Instruction {
573 static GapInstruction* cast(Instruction* instr) {
578 static const GapInstruction* cast(const Instruction* instr) {
584 explicit GapInstruction(InstructionCode opcode) : Instruction(opcode) {
592 friend OStream& operator<<(OStream& os, const Instruction& instr);
597 // This special kind of gap move instruction represents the beginning of a
610 static BlockStartInstruction* cast(Instruction* instr) {
624 class SourcePositionInstruction FINAL : public Instruction {
633 static SourcePositionInstruction* cast(Instruction* instr) {
638 static const SourcePositionInstruction* cast(const Instruction* instr) {
645 : Instruction(kSourcePositionInstruction),
791 typedef ZoneDeque<Instruction*> InstructionDeque;
857 Instruction* InstructionAt(int index) const {
872 int AddInstruction(Instruction* instr, BasicBlock* block);