Ejemplo n.º 1
0
        /* resolve a pcode branch whose destination was not known earlier but now is */
        public void ResolvePcodeBranch(int Where, int Destination)
        {
            ToList();

            if ((OpcodeList[Where].Opcode != Pcodes.epBranchUnconditional) &&
                (OpcodeList[Where].Opcode != Pcodes.epBranchIfZero) &&
                (OpcodeList[Where].Opcode != Pcodes.epBranchIfNotZero))
            {
                // patching a non-branch instruction
                Debug.Assert(false);
                throw new ArgumentException();
            }

            OpcodeRec opcode = OpcodeList[Where + 1];

            opcode.ImmediateInteger = Destination;
            OpcodeList[Where + 1]   = opcode;
        }