Exemple #1
0
        private void GetModifiedRegisters <T> (
            MemoryRegisterDictionary changes,
            Dictionary <string, dynamic> mixedRegisters)
        {
            foreach (KeyValuePair <string, dynamic> entry in mixedRegisters)
            {
                dynamic register = entry.Value;

                switch (Type.GetTypeCode(typeof(T)))
                {
                case TypeCode.Int32:
                    if (( RegType )register.valueType == RegType.INT)
                    {
                        changes.AddElement <int> (register);
                    }
                    break;

                case TypeCode.UInt32:
                    if (( RegType )register.valueType == RegType.UINT)
                    {
                        changes.AddElement <uint> (register);
                    }
                    break;

                case TypeCode.UInt64:
                    if (( RegType )register.valueType == RegType.ULONG)
                    {
                        changes.AddElement <ulong> (register);
                    }
                    break;

                case TypeCode.Boolean:
                    if (( RegType )register.valueType == RegType.BOOL)
                    {
                        changes.AddElement <bool> (register);
                    }
                    break;

                case TypeCode.Char:
                    if (( RegType )register.valueType == RegType.CHAR)
                    {
                        changes.AddElement <char> (register);
                    }
                    break;

                case TypeCode.String:
                    if (( RegType )register.valueType == RegType.STRING)
                    {
                        changes.AddElement <string> (register);
                    }
                    break;
                }
            }

            /*
             * return this.registersObjs.Where(reg => reg.Value.used)
             *  .ToDictionary(reg => reg.Key, reg => reg.Value)
             *  .Values.ToArray<RegisterObj> ();
             */
        }
Exemple #2
0
        public MemoryRegisterDictionary GetModifiedRegisters()
        {
            MemoryRegisterDictionary changes = new MemoryRegisterDictionary();

            Dictionary <string, dynamic> mixedRegisters =
                this.registersObjs.Where(reg => reg.Value.used)
                .ToDictionary(reg => reg.Key, reg => reg.Value);

            this.GetModifiedRegisters <int> (changes, mixedRegisters);
            this.GetModifiedRegisters <uint> (changes, mixedRegisters);
            this.GetModifiedRegisters <ulong> (changes, mixedRegisters);
            this.GetModifiedRegisters <bool> (changes, mixedRegisters);
            this.GetModifiedRegisters <char> (changes, mixedRegisters);
            this.GetModifiedRegisters <string> (changes, mixedRegisters);

            return(changes);
        }