CSPspEmu.Core.Cpu.Emitter.CpuEmitterUtils._lvl_svl_q C# (CSharp) Method

_lvl_svl_q() public static method

public static _lvl_svl_q ( CpuThreadState CpuThreadState, bool Save, float r0, float r1, float r2, float r3, uint Address ) : void
CpuThreadState CpuThreadState
Save bool
r0 float
r1 float
r2 float
r3 float
Address uint
return void
        public static void _lvl_svl_q(CpuThreadState CpuThreadState, bool Save, float* r0, float* r1, float* r2, float* r3, uint Address)
        {
            //Console.Error.WriteLine("+LLLLLLLLLLLLL {0:X8}", Address);

            int k = (int)(3 - ((Address >> 2) & 3));
            Address &= unchecked((uint)~0xF);

            var r = stackalloc float*[4]; r[0] = r0; r[1] = r1; r[2] = r2; r[3] = r3;

            fixed (float* VFPR = &CpuThreadState.VFR0)
            {
                for (int j = k; j < 4; j++, Address += 4)
                {
                    float* ptr = r[j];
                    var memory_address = Address;
                    var memory = (float*)CpuThreadState.GetMemoryPtr(memory_address);

                    //Console.Error.WriteLine("_lvl_svl_q({0}): {1:X8}: Reg({2:X8}) {3} Mem({4:X8})", j, memory_address, *(int*)ptr, Save ? "->" : "<-", *(int*)memory);

                    LanguageUtils.Transfer(ref *memory, ref *ptr, Save);

                    //Console.Error.WriteLine("_lvl_svl_q({0}): {1:X8}: Reg({2:X8}) {3} Mem({4:X8})", j, memory_address, *(int*)ptr, Save ? "->" : "<-", *(int*)memory);
                }
            }

            //Console.Error.WriteLine("--------------");
        }