Beispiel #1
0
        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;
        }
Beispiel #2
0
 /// <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);
Beispiel #3
0
 public override PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm)
 {
     return(new PICInstructionNoOpnd(Mnemonic.invalid));
 }
Beispiel #4
0
 public override PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm)
 {
     throw new InvalidOperationException($"BUG! Missing decoder entry for PIC instruction 0x{uInstr:X4}.");
 }
Beispiel #5
0
            public override PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm)
            {
                var bits = uInstr.Extract(bitpos, width);

                return(decoders[bits].Decode(uInstr, dasm));
            }
Beispiel #6
0
 public abstract PICInstruction Decode(ushort uInstr, PICDisassemblerBase dasm);