public virtual void addOpcode(int opcode, int mask, string label) { NativeOpcodeInfo[] newOpcodes = new NativeOpcodeInfo[opcodes.Length + 1]; Array.Copy(opcodes, 0, newOpcodes, 0, opcodes.Length); opcodes = newOpcodes; opcodes[opcodes.Length - 1] = new NativeOpcodeInfo(opcode, mask, label); }
public virtual int getValue(int address, NativeOpcodeInfo[] opcodes) { if (isLabelIndex && value >= 0 && value < opcodes.Length) { int labelAddress = address + (value << 2); int targetOpcode = Memory.Instance.read32(labelAddress); NativeOpcodeInfo opcode = opcodes[value]; return(targetOpcode & opcode.NotMask); } return(value); }