private void CheckRegisterType(VfpuRegisterType registerType)
 {
     if (RegisterType != registerType)
     {
         throw new InvalidOperationException($"CheckRegisterType: {RegisterType} != {registerType}");
     }
 }
Exemple #2
0
        private static string[] GetRegisterNames(VfpuRegisterType type, int size)
        {
            if (type == VfpuRegisterType.Cell && size == 1)
            {
                return(VfpuSregNames);
            }

            if (type == VfpuRegisterType.Vector && size == 2)
            {
                return(VfpuVpregNames);
            }
            if (type == VfpuRegisterType.Vector && size == 3)
            {
                return(VfpuVtregNames);
            }
            if (type == VfpuRegisterType.Vector && size == 4)
            {
                return(VfpuVqregNames);
            }

            if (type == VfpuRegisterType.Matrix && size == 2)
            {
                return(VfpuMpregNames);
            }
            if (type == VfpuRegisterType.Matrix && size == 3)
            {
                return(VfpuMtregNames);
            }
            if (type == VfpuRegisterType.Matrix && size == 4)
            {
                return(VfpuMqregNames);
            }

            throw new InvalidOperationException($"{type} + {size}");
        }
Exemple #3
0
        public static uint GetRegisterIndexByName(VfpuRegisterType type, int size, string name)
        {
            // @TODO: Create a dictionary.
            var names = GetRegisterNames(type, size);

            return((uint)Array.IndexOf(names, name));
        }
 public static VfpuRegisterInfo FromVfpuRegisterInt(VfpuRegisterType type, int size, VfpuRegisterInt register)
 {
     if (type == VfpuRegisterType.Vector && size == 1)
     {
         type = VfpuRegisterType.Cell;
     }
     return(Parse(size, VfpuConstants.GetRegisterNameByIndex(type, size, register.Value)));
 }
Exemple #5
0
        public static string GetRegisterNameByIndex(VfpuRegisterType type, int size, uint register)
        {
            var registerName = GetRegisterNames(type, size)[register];

            if (registerName == "")
            {
                throw new InvalidOperationException($"Invalid register {type}, {size}, {register}");
            }
            return(registerName);
        }
Exemple #6
0
        private static string[] GetRegisterNames(VfpuRegisterType Type, int Size)
        {
            if (Type == VfpuRegisterType.Cell && Size == 1) return vfpu_sreg_names;

            if (Type == VfpuRegisterType.Vector && Size == 2) return vfpu_vpreg_names;
            if (Type == VfpuRegisterType.Vector && Size == 3) return vfpu_vtreg_names;
            if (Type == VfpuRegisterType.Vector && Size == 4) return vfpu_vqreg_names;

            if (Type == VfpuRegisterType.Matrix && Size == 2) return vfpu_mpreg_names;
            if (Type == VfpuRegisterType.Matrix && Size == 3) return vfpu_mtreg_names;
            if (Type == VfpuRegisterType.Matrix && Size == 4) return vfpu_mqreg_names;

            throw (new InvalidOperationException(String.Format("{0} + {1}", Type, Size)));
        }
Exemple #7
0
 public static string GetRegisterNameByIndex(VfpuRegisterType Type, int Size, uint Register)
 {
     var RegisterName = GetRegisterNames(Type, Size)[Register];
     if (RegisterName == "") throw (new InvalidOperationException(String.Format("Invalid register {0}, {1}, {2}", Type, Size, Register)));
     return RegisterName;
 }
Exemple #8
0
 public static uint GetRegisterIndexByName(VfpuRegisterType Type, int Size, string Name)
 {
     // @TODO: Create a dictionary.
     var Names = GetRegisterNames(Type, Size);
     return (uint)Array.IndexOf(Names, Name);
 }
Exemple #9
0
 private void CheckRegisterType(VfpuRegisterType RegisterType)
 {
     if (this.RegisterType != RegisterType)
     {
         throw (new InvalidOperationException(String.Format("CheckRegisterType: {0} != {1}", this.RegisterType, RegisterType)));
     }
 }
Exemple #10
0
 public static VfpuRegisterInfo FromVfpuRegisterInt(VfpuRegisterType Type, int Size, VfpuRegisterInt Register)
 {
     if (Type == VfpuRegisterType.Vector && Size == 1) Type = VfpuRegisterType.Cell;
     return Parse(Size, VfpuConstants.GetRegisterNameByIndex(Type, Size, Register.Value));
     throw (new NotImplementedException("FromVfpuRegisterInt"));
 }