Files
stgsharp/源代码/StgSharp/Math/IO/XMM.cs
T

70 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace StgSharp.Math
{
[StructLayout(LayoutKind.Sequential)]
internal struct M128ptrCache
{
internal ulong ptr0;
internal ulong ptr1;
internal ulong ptr2;
internal ulong ptr3;
internal ulong ptr4;
internal ulong ptr5;
internal ulong ptr6;
internal ulong ptr7;
public override string ToString()
{
return
$"{ptr0}\t" +
$"{ptr1}\t" +
$"{ptr2}\t" +
$"{ptr3}\t" +
$"{ptr4}\t" +
$"{ptr5}\t" +
$"{ptr6}\t" +
$"{ptr7}\t" +
$"";
}
}
[StructLayout(LayoutKind.Explicit, Size = 16, Pack = 16)]
internal struct M128
{
[FieldOffset(0)] internal float single_0;
[FieldOffset(4)] internal float single_1;
[FieldOffset(8)] internal float single_2;
[FieldOffset(12)] internal float single_3;
[FieldOffset(0)] internal int int32_0;
[FieldOffset(4)] internal int int32_1;
[FieldOffset(8)] internal int int32_2;
[FieldOffset(12)] internal int int32_3;
[FieldOffset(0)] internal long int64_0;
[FieldOffset(8)] internal long int64_1;
[FieldOffset(0)] internal long double_0;
[FieldOffset(8)] internal long double_1;
internal M128(float x,float y,float z,float w)
{
single_0 = x;
single_1 = y;
single_2 = z;
single_3 = w;
}
public override string ToString()
{
return $"{single_0}\t{single_1}\t{single_2}\t{single_3}";
}
}
}