コード例 #1
0
ファイル: ThumbRewriter.cs プロジェクト: zan00789/reko
 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;
 }
コード例 #2
0
        public Arm64Architecture(string archId) : base(archId)
        {
            this.InstructionBitSize = 32;
            this.FramePointerType   = PrimitiveType.Ptr64;
            this.PointerType        = PrimitiveType.Ptr64;
            this.WordWidth          = PrimitiveType.Word64;
            this.flagGroups         = new Dictionary <uint, FlagGroupStorage>();
            this.CarryFlagMask      = 0;
            var unk = CreateNativeArchitecture("arm-64");

            this.native = (INativeArchitecture)Marshal.GetObjectForIUnknown(unk);

            GetRegistersFromNative();
            StackRegister = regsByName["sp"];
        }
コード例 #3
0
ファイル: AArch64.cs プロジェクト: xxtxiaofeng/reko
        public Arm64Architecture(IServiceProvider services, string archId) : base(services, archId)
        {
            this.Endianness         = EndianServices.Little;
            this.InstructionBitSize = 32;
            this.FramePointerType   = PrimitiveType.Ptr64;
            this.PointerType        = PrimitiveType.Ptr64;
            this.WordWidth          = PrimitiveType.Word64;
            this.flagGroups         = new Dictionary <uint, FlagGroupStorage>();
            this.CarryFlagMask      = 0;
#if NATIVE
            var unk = CreateNativeArchitecture("arm-64");
            this.native = (INativeArchitecture)Marshal.GetObjectForIUnknown(unk);
            GetRegistersFromNative();
#endif
            StackRegister = Registers.sp;
        }
コード例 #4
0
ファイル: Arm32Architecture.cs プロジェクト: djkurtb/reko
        public Arm32Architecture(string archId) : base(archId)
        {
            InstructionBitSize = 32;
            FramePointerType = PrimitiveType.Ptr32;
            PointerType = PrimitiveType.Ptr32;
            WordWidth = PrimitiveType.Word32;
            StackRegister = Registers.sp;
            this.flagGroups = new Dictionary<uint, FlagGroupStorage>();
#if NATIVE

            var unk = CreateNativeArchitecture("arm");
            this.native = (INativeArchitecture)Marshal.GetObjectForIUnknown(unk);

            GetRegistersFromNative();
            StackRegister = regsByName["sp"];
#endif
        }
コード例 #5
0
        public ThumbArchitecture(string archId) : base(archId)
        {
            this.FramePointerType   = PrimitiveType.Ptr32;
            this.PointerType        = PrimitiveType.Ptr32;
            this.WordWidth          = PrimitiveType.Word32;
            this.InstructionBitSize = 16;

            this.flagGroups = new Dictionary <uint, FlagGroupStorage>();
#if NATIVE
            var unk = CreateNativeArchitecture("arm-thumb");
            this.native = (INativeArchitecture)Marshal.GetObjectForIUnknown(unk);
            GetRegistersFromNative();
#else
            this.regsByNumber = Registers.GpRegs.ToDictionary(r => r.Number);
            this.regsByName   = regsByNumber.ToDictionary(r => r.Value.Name, r => r.Value);
#endif
            StackRegister = regsByName["sp"];
        }
コード例 #6
0
        public Arm32Architecture(IServiceProvider services, string archId, Dictionary<string, object> options)
            : base(services, archId, options)
        {
            Endianness = EndianServices.Little;
            InstructionBitSize = 32;
            FramePointerType = PrimitiveType.Ptr32;
            PointerType = PrimitiveType.Ptr32;
            WordWidth = PrimitiveType.Word32;
            StackRegister = Registers.sp;
            this.flagGroups = new Dictionary<uint, FlagGroupStorage>();
#if NATIVE

            var unk = CreateNativeArchitecture("arm");
            this.native = (INativeArchitecture)Marshal.GetObjectForIUnknown(unk);

            GetRegistersFromNative();
            StackRegister = regsByName["sp"];
#endif
        }