コード例 #1
0
ファイル: CpuTestSimdCvt32.cs プロジェクト: ski982/Ryujinx-1
        public void Vcvt_I32_F64([Values(0u, 1u)] uint rd,
                                 [Values(0u, 1u, 2u, 3u)] uint rm,
                                 [ValueSource(nameof(_1S_))][Random(RndCnt)] uint s0,
                                 [ValueSource(nameof(_1S_))][Random(RndCnt)] uint s1,
                                 [ValueSource(nameof(_1S_))][Random(RndCnt)] uint s2,
                                 [ValueSource(nameof(_1S_))][Random(RndCnt)] uint s3,
                                 [Values] bool unsigned, // <U32, S32>
                                 [Values(RMode.Rn)] RMode rMode)
        {
            uint opcode = 0xeeb80b40u; // VCVT.F64.U32 D0, S0

            if (!unsigned)
            {
                opcode |= 1 << 7; // op
            }

            opcode |= ((rm & 0x1e) >> 1) | ((rm & 0x1) << 5);
            opcode |= ((rd & 0xf) << 12) | ((rd & 0x10) << 18);

            V128 v0 = MakeVectorE0E1E2E3(s0, s1, s2, s3);

            int fpscr = (int)rMode << (int)Fpcr.RMode;

            SingleOpcode(opcode, v0: v0, fpscr: fpscr);

            CompareAgainstUnicorn();
        }
コード例 #2
0
ファイル: RVector.cs プロジェクト: zachwieja/RTVS
        public RVector(RMode mode, int length)
        {
            if (length < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(length));
            }

            this.Mode   = mode;
            this.Length = length;
        }
コード例 #3
0
        private void CastR(RMode mode)
        {
            R.Range = UltRange;

            var targetSelectionMode = (RTSMode)this.Config["R"]["RTargetSelectMode"].Value;

            Obj_AI_Hero target = null;

            if (targetSelectionMode == RTSMode.ClosestMouse)
            {
                target = ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(UltRange)).OrderBy(x => x.Distance(Game.CursorPos)).FirstOrDefault();
            }

            else if (targetSelectionMode == RTSMode.EasiestToKill)
            {
                target = ObjectManager.Get <Obj_AI_Hero>().Where(x => x.IsValidTarget(UltRange)).OrderBy(x => x.Health / Player.GetSpellDamage(x, SpellSlot.R)).FirstOrDefault();
            }

            else if (targetSelectionMode == RTSMode.TS)
            {
                target = TargetSelector.GetTarget(UltRange);
            }

            else if (targetSelectionMode == RTSMode.Auto)
            {
                target = TargetSelector.Implementation.GetOrderedTargets(UltRange).OrderBy(x => x.Health / Player.GetSpellDamage(x, SpellSlot.R)).ThenBy(x => x.Distance(Game.CursorPos)).FirstOrDefault();
            }

            //No suitable target found
            if (target == null)
            {
                return;
            }

            if (mode == RMode.Autocast)
            {
                if (Config["R"]["UseDelays"].Enabled)
                {
                    var delay = Config["R"]["Delay" + UltimateTracker.ShotNumber].Value;
                    if (Game.TickCount - UltimateTracker.LastChargeCastTime < delay)
                    {
                        return;
                    }
                }

                R.Cast(target);
            }

            else if (mode == RMode.OnTap)
            {
                R.Cast(target);
            }
        }
コード例 #4
0
ファイル: CpuTestSimdCvt32.cs プロジェクト: ianuub/Ryujinxxx
        public void Vrintx_S([Values(0u, 1u)] uint rd,
                             [Values(0u, 1u)] uint rm,
                             [Values(2u, 3u)] uint size,
                             [ValueSource(nameof(_1D_F_))] ulong s0,
                             [ValueSource(nameof(_1D_F_))] ulong s1,
                             [ValueSource(nameof(_1D_F_))] ulong s2,
                             [Values(RMode.Rn, RMode.Rm, RMode.Rp)] RMode rMode)
        {
            uint opcode = 0xEB70A40;
            V128 v0, v1, v2;

            if (size == 2)
            {
                opcode |= ((rm & 0x1e) >> 1) | ((rm & 0x1) << 5);
                opcode |= ((rd & 0x1e) >> 11) | ((rm & 0x1) << 22);
                v0      = MakeVectorE0E1((uint)BitConverter.SingleToInt32Bits(s0), (uint)BitConverter.SingleToInt32Bits(s0));
                v1      = MakeVectorE0E1((uint)BitConverter.SingleToInt32Bits(s1), (uint)BitConverter.SingleToInt32Bits(s0));
                v2      = MakeVectorE0E1((uint)BitConverter.SingleToInt32Bits(s2), (uint)BitConverter.SingleToInt32Bits(s1));
            }
            else
            {
                opcode |= ((rm & 0xf) << 0) | ((rd & 0x10) << 1);
                opcode |= ((rd & 0xf) << 12) | ((rd & 0x10) << 18);
                v0      = MakeVectorE0E1((uint)BitConverter.DoubleToInt64Bits(s0), (uint)BitConverter.DoubleToInt64Bits(s0));
                v1      = MakeVectorE0E1((uint)BitConverter.DoubleToInt64Bits(s1), (uint)BitConverter.DoubleToInt64Bits(s0));
                v2      = MakeVectorE0E1((uint)BitConverter.DoubleToInt64Bits(s2), (uint)BitConverter.DoubleToInt64Bits(s1));
            }

            opcode |= ((size & 3) << 8);

            int fpscr = (int)rMode << (int)Fpcr.RMode;

            SingleOpcode(opcode, v0: v0, v1: v1, v2: v2, fpscr: fpscr);

            CompareAgainstUnicorn();
        }
コード例 #5
0
 public RMatrix(RMode mode, int nrow, int ncol) :
     base(mode, nrow * ncol)
 {
     this.NRow = nrow;
     this.NCol = ncol;
 }
コード例 #6
0
 public RArray(RMode mode, int length) :
     base(mode, length)
 {
 }
コード例 #7
0
ファイル: RDataFrame.cs プロジェクト: AlexanderSher/RTVS-Old
 public RDataFrame(RMode[] columnModes, int nrow, int ncol) : base() {
     this.ColModes = columnModes;
     this.NRow = nrow;
     this.NCol = ncol;
 }