Beispiel #1
0
 public override IEnumerable <RtlInstructionCluster> CreateRewriter(EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
 {
     return(new RiscVRewriter(this, rdr, state, binder, host));
 }
Beispiel #2
0
 public override PICRewriter CreateRewriter(PICArchitecture arch, PICDisassemblerBase dasm, PICProcessorState state, IStorageBinder binder, IRewriterHost host)
 => PIC16FullRewriter.Create(arch, dasm, state, binder, host);
Beispiel #3
0
        protected override IEnumerable <RtlInstructionCluster> GetRtlStream(MemoryArea mem, IStorageBinder binder, IRewriterHost host)
        {
            var rdr = mem.CreateLeReader(mem.BaseAddress);

            return(arch.CreateRewriter(rdr, arch.CreateProcessorState(), binder, host));
        }
Beispiel #4
0
 protected virtual IEnumerable <RtlInstructionCluster> GetInstructionStream(IStorageBinder binder, IRewriterHost host)
 {
     yield break;
 }
Beispiel #5
0
        public override IEnumerable<RtlInstructionCluster> CreateRewriter(EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
        {
            return new ArmRewriter(this, rdr, host, binder);
#if NATIVE
            return new ArmRewriterRetired(regsByNumber, rdr, (ArmProcessorState) state, binder, host);
#endif
        }
Beispiel #6
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 #7
0
 public override IEnumerable <RtlInstructionCluster> CreateRewriter(EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
 {
     throw new NotImplementedException();
 }
Beispiel #8
0
 public ThumbRewriterRetired(Dictionary <int, RegisterStorage> regs, INativeArchitecture nArch, EndianImageReader rdr, AArch32ProcessorState state, IStorageBinder binder, IRewriterHost host)
 {
     this.regs   = regs;
     this.nArch  = nArch;
     this.rdr    = rdr;
     this.binder = binder;
     this.host   = host;
 }
Beispiel #9
0
 public override Expression CreateStackAccess(IStorageBinder binder, int cbOffset, DataType dataType)
 {
     //$TODO: TMS7000 has an 8-bit stack pointer but a 16-bit address space.
     throw new NotImplementedException();
 }
Beispiel #10
0
 public RtlInstructionCluster InlineInstructions(AddressRange addrCaller, EndianImageReader rdrProcedureNody, IStorageBinder binder)
 {
     throw new NotImplementedException();
 }
Beispiel #11
0
 public Rewriter(M68kArchitecture m68kArchitecture, EndianImageReader rdr, M68kState m68kState, IStorageBinder binder, IRewriterHost host)
 {
     this.arch   = m68kArchitecture;
     this.state  = m68kState;
     this.binder = binder;
     this.host   = host;
     this.dasm   = arch.CreateDisassemblerImpl(rdr).GetEnumerator();
 }
Beispiel #12
0
 public override Expression CreateFpuStackAccess(IStorageBinder binder, int offset, DataType dataType)
 {
     throw new NotImplementedException();
 }
Beispiel #13
0
 public override FrameApplicationBuilder CreateFrameApplicationBuilder(IStorageBinder binder, CallSite site, Expression callee)
 {
     throw new NotImplementedException();
 }
Beispiel #14
0
 public override List <RtlInstruction> InlineCall(Address addr, Address addrContinuation, EndianImageReader rdr, IStorageBinder binder)
 {
     throw new NotImplementedException();
 }
Beispiel #15
0
        public override IEnumerable <RtlInstructionCluster> CreateRewriter(EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
        {
            var arch = this;

            return(new WE32100Rewriter(arch, rdr, state, binder, host));
        }
Beispiel #16
0
 public SuperHRewriter(SuperHArchitecture arch, EndianImageReader rdr, SuperHState state, IStorageBinder binder, IRewriterHost host)
 {
     this.arch   = arch;
     this.rdr    = rdr;
     this.state  = state;
     this.binder = binder;
     this.host   = host;
     this.dasm   = new SuperHDisassembler(rdr).GetEnumerator();
 }
 public override IEnumerable <RtlInstructionCluster> CreateRewriter(EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
 {
     return(new ThumbRewriter(this, rdr, host, binder));
     //return new ThumbRewriterRetired(regsByNumber, this.native, rdr, (ArmProcessorState)state, binder, host);
 }
Beispiel #18
0
 public override IEnumerable <RtlInstructionCluster> CreateRewriter(EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
 {
     return(new Pdp11Rewriter(this, new Pdp11Disassembler(rdr, this), binder, host));
 }
Beispiel #19
0
 public BlackfinRewriter(BlackfinArchitecture arch, EndianImageReader rdr, ProcessorState state, IStorageBinder binder, IRewriterHost host)
 {
     this.arch   = arch;
     this.rdr    = rdr;
     this.state  = state;
     this.binder = binder;
     this.host   = host;
     this.dasm   = new BlackfinDisassembler(arch, rdr).GetEnumerator();
 }
Beispiel #20
0
        protected override IEnumerable <RtlInstructionCluster> GetRtlStream(MemoryArea mem, IStorageBinder frame, IRewriterHost host)
        {
            var disasm = picModel.CreateDisassembler(arch, arch.CreateImageReader(mem, 0));
            var rwtr   = picModel.CreateRewriter(arch, disasm, (PICProcessorState)arch.CreateProcessorState(), frame, host);

            return(rwtr);
        }