ProgCom.CPUem.memReadDelaySlots C# (CSharp) Method

memReadDelaySlots() private method

private memReadDelaySlots ( int regNum ) : int
regNum int
return int
        private int memReadDelaySlots(int regNum)
        {
            //partially disassemble next instruction, if the specified register is used anywhere, return 1. else return 0
            int inst = memory.getMem(pc);
            int rA = inst >> (inst & 0x03e00000) >> 21;
            int rB = (inst & 0x001f0000) >> 16;
            int rC = (inst & 0x001f);
            //if immed bit is set, make rC negative so that it will not match regNum
            int immed = inst >> 29;
            immed &= 1;
            if (immed == 1) rC = -rC;

            if (rA == regNum || rB == regNum || rC == regNum) return 1;
            else return 0;
        }