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; }
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"]; }
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; }
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 }
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"]; }
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 }