Example #1
0
 public ScheduleSlot(ProgramInfo.InstructionNode inst, int iter)
 {
     m_inst = inst;
     m_iter = iter;
 }
Example #2
0
        ProgramInfo.InstructionNode CreateRegcopyInst(Program.Pipe pipe)
        {
            ProgramInfo.InstructionNode regcopy = new ProgramInfo.InstructionNode();

            regcopy.m_include_in_schedule = true;
            regcopy.m_pipeline = pipe;

            if (pipe == Program.Pipe.EVEN)
            {
                regcopy.m_latency = 2;
                regcopy.m_opcode = "ori";
            }
            else
            {
                regcopy.m_latency = 4;
                regcopy.m_opcode = "roti";
            }

            regcopy.m_reg_info.Add(new ProgramInfo.RegisterDependencyNode(Program.OperandInfo.OperandType.OUTPUT_REG));
            regcopy.m_reg_info.Add(new ProgramInfo.RegisterDependencyNode(Program.OperandInfo.OperandType.INPUT_REG));
            regcopy.m_reg_info.Add(new ProgramInfo.RegisterDependencyNode(Program.OperandInfo.OperandType.SIGNED_LITERAL));
            regcopy.m_reg_info[2].m_immediate_arg = 0;

            return regcopy;
        }