Пример #1
0
        protected TranslationCPU(string cpuType, Machine machine, EndiannessEnum endianness)
        {
            if(cpuType == null)
            {
                throw new RecoverableException(new ArgumentNullException("cpuType"));
            }

            Endianness = endianness;
            PerformanceInMips = 100;
            currentCountThreshold = 5000;
            this.cpuType = cpuType;
            ClockSource = new BaseClockSource();
            ClockSource.NumberOfEntriesChanged += (oldValue, newValue) =>
            {
                if(oldValue > newValue)
                {
                    Misc.Swap(ref oldValue, ref newValue);
                }
                if(oldValue == 0 && newValue != 0)
                {
                    ClearTranslationCache();
                }
            };
            this.translationCacheSize = DefaultTranslationCacheSize;
            this.machine = machine;
            started = false;
            isHalted = false;
            translationCacheSync = new object();
            pumpingModeSync = new object();
            InitializeRegisters();
            InitInterruptEvents();
            Init();
            InitDisas();
        }
Пример #2
0
        public CortexM(string cpuType, Machine machine, NVIC nvic, EndiannessEnum endianness = EndiannessEnum.LittleEndian) : base(cpuType, machine, endianness)
        {
            if (nvic == null)
            {
                throw new RecoverableException(new ArgumentNullException("nvic"));
            }

            this.nvic = nvic;
            nvic.AttachCPU(this);
            Init();
        }
Пример #3
0
        public void SetEndianness(EndiannessEnum enum33_0)
        {
            switch (enum33_0)
            {
            case EndiannessEnum.const_1:
                this._reverseEndianness = false;
                return;

            case EndiannessEnum.const_2:
                this._reverseEndianness = true;
                return;

            default:
                this._reverseEndianness = false;
                this.bool_1             = true;
                return;
            }
        }
Пример #4
0
 public Stream26(byte[] byte_0, EndiannessEnum enum33_0)
 {
     this._stream = new Stream27(byte_0);
     this.SetEndianness(enum33_0);
 }
Пример #5
0
 public Stream26(Stream stream_1, EndiannessEnum enum33_0)
 {
     this._stream = stream_1;
     this.SetEndianness(enum33_0);
 }
Пример #6
0
 public Arm(string cpuType, Machine machine, EndiannessEnum endianness = EndiannessEnum.LittleEndian) : base(cpuType, machine, endianness)
 {
 }
Пример #7
0
 public Sparc(string cpuType, Machine machine, EndiannessEnum endianness = EndiannessEnum.BigEndian): base(cpuType, machine, endianness)
 {
     Init();
 }
Пример #8
0
 public CortexA7(Machine machine, GIC gic, long genericTimerCompareValue, EndiannessEnum endianness = EndiannessEnum.LittleEndian) : base("cortex-a15", machine, endianness)
 {
     genericTimer = new CortexAGenericTimer(machine, gic, genericTimerCompareValue);
 }
Пример #9
0
 public void SetEndianness(EndiannessEnum enum33_0)
 {
     switch (enum33_0)
     {
     case EndiannessEnum.const_1:
         this._reverseEndianness = false;
         return;
     case EndiannessEnum.const_2:
         this._reverseEndianness = true;
         return;
     default:
         this._reverseEndianness = false;
         this.bool_1 = true;
         return;
     }
 }
Пример #10
0
 public PowerPc(string cpuType, Machine machine, EndiannessEnum endianness = EndiannessEnum.BigEndian): base(cpuType, machine, endianness)
 {
     irqSync = new object();
     machine.ObtainClockSource().AddClockEntry(
         new ClockEntry(long.MaxValue/2, ClockEntry.FrequencyToRatio(this, 128000000), DecrementerHandler, false, Direction.Descending));
 }
Пример #11
0
 public PowerPc(string cpuType, Machine machine, EndiannessEnum endianness = EndiannessEnum.BigEndian) : base(cpuType, machine, endianness)
 {
     irqSync = new object();
     machine.ObtainClockSource().AddClockEntry(
         new ClockEntry(long.MaxValue / 2, ClockEntry.FrequencyToRatio(this, 128000000), DecrementerHandler, false, Direction.Descending));
 }
Пример #12
0
 public Sparc(string cpuType, Machine machine, EndiannessEnum endianness = EndiannessEnum.BigEndian) : base(cpuType, machine, endianness)
 {
     Init();
 }
Пример #13
0
 public CortexA7(Machine machine, GIC gic, long genericTimerCompareValue, EndiannessEnum endianness = EndiannessEnum.LittleEndian) : base("cortex-a15", machine, endianness)
 {
     genericTimer = new CortexAGenericTimer(machine, gic, genericTimerCompareValue);
 }
Пример #14
0
 public Stream26(byte[] byte_0, EndiannessEnum enum33_0)
 {
     this._stream = new Stream27(byte_0);
     this.SetEndianness(enum33_0);
 }
Пример #15
0
 public Stream26(Stream stream_1, EndiannessEnum enum33_0)
 {
     this._stream = stream_1;
     this.SetEndianness(enum33_0);
 }
Пример #16
0
 public Stream26(EndiannessEnum enum33_0)
 {
     this._stream = new Stream27();
     this.bool_1  = false;
     this.SetEndianness(enum33_0);
 }
Пример #17
0
 public Stream26(EndiannessEnum enum33_0)
 {
     this._stream = new Stream27();
     this.bool_1 = false;
     this.SetEndianness(enum33_0);
 }