예제 #1
0
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
 {
     return(new PowerPcProcedureSerializer(
                (PowerPcArchitecture)Architecture,
                typeLoader,
                defaultConvention));
 }
예제 #2
0
 public Arm32ProcedureSerializer(
     IProcessorArchitecture arch,
     ISerializedTypeVisitor<DataType> typeLoader, 
     string defaultConvention) 
     : base(arch, typeLoader, defaultConvention)
 {
 }
예제 #3
0
 public Arm32ProcedureSerializer(
     IProcessorArchitecture arch,
     ISerializedTypeVisitor <DataType> typeLoader,
     string defaultConvention)
     : base(arch, typeLoader, defaultConvention)
 {
 }
예제 #4
0
파일: SysVPlatform.cs 프로젝트: uxmal/reko
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention)
 {
     switch (Architecture.Name)
     {
     case "mips-be-32":
     case "mips-le-32":
         return new MipsProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "ppc32":
         return new PowerPcProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "sparc32":
         return new SparcProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "x86-protected-32":
         return new X86ProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "x86-protected-64":
         return new X86_64ProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "xtensa":
         return new XtensaProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "arm":
         return new Arm32ProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "m68k":
         return new M68kProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "avr8":
         return new Avr8ProcedureSerializer(Architecture, typeLoader, defaultConvention);
     case "risc-v":
         return new RiscVProcedureSerializer(Architecture, typeLoader, defaultConvention);
     default:
         throw new NotImplementedException(string.Format("Procedure serializer for {0} not implemented yet.", Architecture.Description));
     }
 }
예제 #5
0
파일: Ps3Platform.cs 프로젝트: relaxar/reko
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention)
 {
     return new PowerPcProcedureSerializer(
         (PowerPcArchitecture)Architecture,
         typeLoader,
         defaultConvention);
 }
예제 #6
0
        private void Given_16bit_CallingConvention(string cConvention)
        {
            this.ccr          = new CallingConventionEmitter();
            this.deserializer = new FakeTypeDeserializer(32);
            X86CallingConvention cc;

            switch (cConvention)
            {
            case "__cdecl":
                cc = new X86CallingConvention(4, 2, 4, true, false);
                break;

            case "stdapi":
            case "stdcall":
            case "__stdcall":
                cc = new X86CallingConvention(4, 2, 4, false, false);
                break;

            case "pascal":
                cc = new X86CallingConvention(4, 2, 4, false, true);
                break;

            default: throw new NotImplementedException(cConvention + " not supported.");
            }
            this.cc = cc;
        }
 public PowerPcProcedureSerializer(
     PowerPcArchitecture arch,
     ISerializedTypeVisitor <DataType> typeLoader,
     string defaultCc)
     : base(arch, typeLoader, defaultCc)
 {
     this.arch = arch;
 }
 public void Setup()
 {
     this.mr = new MockRepository();
     this.arch = new MipsLe32Architecture();
     this.typeLoader = mr.Stub<ISerializedTypeVisitor<DataType>>();
     this.ssig = null;
     this.sig = null;
 }
예제 #9
0
 public void Setup()
 {
     this.mr         = new MockRepository();
     this.arch       = new MipsLe32Architecture();
     this.typeLoader = mr.Stub <ISerializedTypeVisitor <DataType> >();
     this.ssig       = null;
     this.sig        = null;
 }
예제 #10
0
 public PowerPcProcedureSerializer(
     PowerPcArchitecture arch,
     ISerializedTypeVisitor<DataType> typeLoader,
     string defaultCc)
     : base(arch, typeLoader, defaultCc)
 {
     this.arch = arch;
 }
예제 #11
0
		public ProcedureSerializer(
            IProcessorArchitecture arch, 
            ISerializedTypeVisitor<DataType> typeLoader, 
            string defaultConvention)
		{
			this.Architecture = arch;
            this.TypeLoader = typeLoader;
			this.DefaultConvention = defaultConvention;
		}
예제 #12
0
        private void Given_32bit_CallingConvention()
        {
            this.ccr          = new CallingConventionEmitter();
            this.deserializer = new FakeTypeDeserializer(4);
            FastcallConvention fcc = new FastcallConvention(
                Registers.ecx, Registers.edx, 4, 4);

            this.fcc = fcc;
        }
예제 #13
0
        private void Given_16bit_CallingConvention(string cConvention)
        {
            this.ccr          = new CallingConventionEmitter();
            this.deserializer = new FakeTypeDeserializer(32);
            FastcallConvention fcc = new FastcallConvention(
                Registers.cx, Registers.dx, 4, 4);

            this.fcc = fcc;
        }
예제 #14
0
 public ProcedureSerializer(
     IProcessorArchitecture arch,
     ISerializedTypeVisitor <DataType> typeLoader,
     string defaultConvention)
 {
     this.Architecture      = arch;
     this.TypeLoader        = typeLoader;
     this.DefaultConvention = defaultConvention;
 }
예제 #15
0
 public ProcedureSerializer(
     IPlatform platform,
     ISerializedTypeVisitor <DataType> typeLoader,
     string defaultConvention)
 {
     this.platform          = platform;
     this.Architecture      = platform.Architecture;
     this.TypeLoader        = typeLoader;
     this.DefaultConvention = defaultConvention;
 }
예제 #16
0
        public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
        {
            switch (Architecture.Name)
            {
            case "mips-be-32":
                return(new MipsProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "sparc32":
                return(new SparcProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "x86-protected-32":
                return(new X86ProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "x86-protected-64":
                return(new X86_64ProcedureSerializer(Architecture, typeLoader, defaultConvention));

            default:
                throw new NotImplementedException(string.Format("Procedure serializer for {0} not implemented yet.", Architecture.Description));
            }
        }
예제 #17
0
        public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
        {
            switch (Architecture.Name)
            {
            case "mips-be-32":
            case "mips-le-32":
                return(new MipsProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "ppc32":
                return(new PowerPcProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "sparc32":
                return(new SparcProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "x86-protected-32":
                return(new X86ProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "x86-protected-64":
                return(new X86_64ProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "xtensa":
                return(new XtensaProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "arm":
                return(new Arm32ProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "m68k":
                return(new M68kProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "avr8":
                return(new Avr8ProcedureSerializer(Architecture, typeLoader, defaultConvention));

            case "risc-v":
                return(new RiscVProcedureSerializer(Architecture, typeLoader, defaultConvention));

            default:
                throw new NotImplementedException(string.Format("Procedure serializer for {0} not implemented yet.", Architecture.Description));
            }
        }
예제 #18
0
 public ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultCc)
 {
     return(new ArmProcedureSerializer(this, typeLoader, defaultCc));
 }
예제 #19
0
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention)
 {
     //$BUGBUG: unlikely to be correct in long run.
     return new X86ProcedureSerializer((IntelArchitecture) this.Architecture, typeLoader, defaultConvention);
 }
예제 #20
0
 private void Given_ProcedureSerializer()
 {
     this.deserializer = mockFactory.CreateDeserializer();
     this.ser          = new PowerPcProcedureSerializer(arch, deserializer, "");
 }
예제 #21
0
 private void Given_ProcedureSerializer()
 {
     this.deserializer = mockFactory.CreateDeserializer(arch.PointerType.Size);
     this.ser          = new X86ProcedureSerializer(arch, deserializer, "");
 }
예제 #22
0
파일: Platform.cs 프로젝트: feelworld/reko
 /// <summary>
 /// Creates a procedure serializer that understands the calling conventions used on this
 /// processor and environment
 /// </summary>
 /// <param name="typeLoader">Used to resolve data types</param>
 /// <param name="defaultConvention">Default calling convention, if none specified.</param>
 public abstract ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention);
예제 #23
0
 public override T Accept <T>(ISerializedTypeVisitor <T> visitor)
 {
     return(visitor.VisitTypeReference(this));
 }
예제 #24
0
 public override T Accept <T>(ISerializedTypeVisitor <T> visitor)
 {
     return(visitor.VisitMemberPointer(this));
 }
예제 #25
0
파일: C64Basic.cs 프로젝트: melbcat/reko
 public ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultCc)
 {
     throw new NotSupportedException();  //$Makes no sense in C64 Basic!
 }
 private void Given_ProcedureSerializer(string cConvention)
 {
     this.deserializer = mockFactory.CreateDeserializer();
     this.ser = new X86ProcedureSerializer(arch, deserializer, cConvention);
 }
예제 #27
0
 private void Given_ProcedureSerializer(string cConvention)
 {
     this.deserializer = new FakeTypeDeserializer(4);
     this.ser = new X86ProcedureSerializer(arch, deserializer, cConvention);
 }
예제 #28
0
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
 {
     return(Test_CreateProcedureSerializer(typeLoader, defaultConvention));
 }
예제 #29
0
 private void Given_ProcedureSerializer(string cConvention)
 {
     this.deserializer = mockFactory.CreateDeserializer();
     this.ser          = new X86ProcedureSerializer(arch, deserializer, cConvention);
 }
예제 #30
0
 private void Given_ProcedureSerializer()
 {
     this.deserializer = mockFactory.CreateDeserializer(arch.PointerType.Size);
     this.ser = new Arm32ProcedureSerializer(arch, deserializer, "");
 }
예제 #31
0
파일: Platform.cs 프로젝트: feelworld/reko
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention)
 {
     throw new NotSupportedException();
 }
 private void Given_ProcedureSerializer()
 {
     this.deserializer = mockFactory.CreateDeserializer();
     this.ser = new PowerPcProcedureSerializer(arch, deserializer, "");
 }
예제 #33
0
 public abstract T Accept <T>(ISerializedTypeVisitor <T> visitor);
예제 #34
0
 public override T Accept <T>(ISerializedTypeVisitor <T> visitor)
 {
     return(visitor.VisitPrimitive(this));
 }
예제 #35
0
 public override T Accept <T>(ISerializedTypeVisitor <T> visitor)
 {
     return(visitor.VisitSignature(this));
 }
예제 #36
0
 public override Core.Serialization.ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
 {
     throw new NotImplementedException();
 }
예제 #37
0
 public X86ProcedureSerializer(IProcessorArchitecture arch, ISerializedTypeVisitor <DataType> typeLoader, string defaultCc)
     : base(arch, typeLoader, defaultCc)
 {
 }
예제 #38
0
 public ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultCc)
 {
     return new PowerPcProcedureSerializer(this, typeLoader, defaultCc);
 }
예제 #39
0
파일: Platform.cs 프로젝트: xor2003/reko
 /// <summary>
 /// Creates a procedure serializer that understands the calling conventions used on this
 /// processor and environment
 /// </summary>
 /// <param name="typeLoader">Used to resolve data types</param>
 /// <param name="defaultConvention">Default calling convention, if none specified.</param>
 public abstract ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention);
예제 #40
0
 public ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultCc)
 {
     throw new NotSupportedException();  //$Makes no sense in C64 Basic!
 }
예제 #41
0
 private void Given_ProcedureSerializer(string cConvention)
 {
     this.deserializer = new FakeTypeDeserializer(32);
     this.ser          = new ProcedureSerializer(platform, deserializer, cConvention);
 }
예제 #42
0
파일: Platform.cs 프로젝트: xor2003/reko
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
 {
     throw new NotSupportedException();
 }
예제 #43
0
 public M68kProcedureSerializer(M68kArchitecture arch, ISerializedTypeVisitor<DataType> typeLoader, string defaultCc)
     : base(arch, typeLoader, defaultCc)
 {
 }
예제 #44
0
 public X86_64ProcedureSerializer(IProcessorArchitecture arch, ISerializedTypeVisitor<DataType> typeLoader, string defaultCc)
     : base(arch, typeLoader, defaultCc)
 {
 }
예제 #45
0
 public ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultCc)
 {
     throw new NotImplementedException();
 }
예제 #46
0
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultConvention)
 {
     //$BUGBUG: unlikely to be correct in long run.
     return(new X86ProcedureSerializer((IntelArchitecture)this.Architecture, typeLoader, defaultConvention));
 }
예제 #47
0
 public override ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention)
 {
     return Test_CreateProcedureSerializer(typeLoader, defaultConvention);
 }
예제 #48
0
 public override Core.Serialization.ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor<DataType> typeLoader, string defaultConvention)
 {
     throw new NotImplementedException();
 }
예제 #49
0
 public ProcedureSerializer CreateProcedureSerializer(ISerializedTypeVisitor <DataType> typeLoader, string defaultCc)
 {
     throw new NotImplementedException();
 }
 private void Given_ProcedureSerializer(string cConvention)
 {
     this.deserializer = new FakeTypeDeserializer(4);
     this.ser          = new X86ProcedureSerializer(arch, deserializer, cConvention);
 }