protected Identifier Bsr; // cached BSR register identifier protected PICRewriter(PICArchitecture arch, PICDisassemblerBase disasm, PICProcessorState state, IStorageBinder binder, IRewriterHost host) { this.arch = arch; this.state = state; this.binder = binder; this.host = host; this.disasm = disasm; dasm = disasm.GetEnumerator(); Wreg = GetWReg; Bsr = GetBsr; }
/// <summary> /// Creates the instructions IL rewriter for the target processor. /// </summary> /// <param name="arch">The architecture of the processor.</param> /// <param name="dasm">The disassembler.</param> /// <param name="state">The processor state.</param> /// <param name="binder">The storage binder.</param> /// <param name="host">The host.</param> /// <returns> /// The new rewriter. /// </returns> public abstract PICRewriter CreateRewriter(PICArchitecture arch, PICDisassemblerBase dasm, PICProcessorState state, IStorageBinder binder, IRewriterHost host);
public override PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm) { return(new PICInstructionNoOpnd(Mnemonic.invalid)); }
public override PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm) { throw new InvalidOperationException($"BUG! Missing decoder entry for PIC instruction 0x{uInstr:X4}."); }
public override PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm) { var bits = uInstr.Extract(bitpos, width); return(decoders[bits].Decode(uInstr, dasm)); }
public abstract PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm);