1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
5 using System.Runtime.InteropServices;
7 namespace System.Numerics
10 /// A structure describing the layout of an SSE2-sized register.
11 /// Contains overlapping fields representing the set of valid numeric types.
12 /// Allows the generic Vector'T struct to contain an explicit field layout.
14 [StructLayout(LayoutKind.Explicit)]
15 internal struct Register
17 #region Internal Storage Fields
18 // Internal System.Byte Fields
40 internal Byte byte_10;
42 internal Byte byte_11;
44 internal Byte byte_12;
46 internal Byte byte_13;
48 internal Byte byte_14;
50 internal Byte byte_15;
52 // Internal System.SByte Fields
54 internal SByte sbyte_0;
56 internal SByte sbyte_1;
58 internal SByte sbyte_2;
60 internal SByte sbyte_3;
62 internal SByte sbyte_4;
64 internal SByte sbyte_5;
66 internal SByte sbyte_6;
68 internal SByte sbyte_7;
70 internal SByte sbyte_8;
72 internal SByte sbyte_9;
74 internal SByte sbyte_10;
76 internal SByte sbyte_11;
78 internal SByte sbyte_12;
80 internal SByte sbyte_13;
82 internal SByte sbyte_14;
84 internal SByte sbyte_15;
86 // Internal System.UInt16 Fields
88 internal UInt16 uint16_0;
90 internal UInt16 uint16_1;
92 internal UInt16 uint16_2;
94 internal UInt16 uint16_3;
96 internal UInt16 uint16_4;
98 internal UInt16 uint16_5;
100 internal UInt16 uint16_6;
102 internal UInt16 uint16_7;
104 // Internal System.Int16 Fields
106 internal Int16 int16_0;
108 internal Int16 int16_1;
110 internal Int16 int16_2;
112 internal Int16 int16_3;
114 internal Int16 int16_4;
116 internal Int16 int16_5;
118 internal Int16 int16_6;
120 internal Int16 int16_7;
122 // Internal System.UInt32 Fields
124 internal UInt32 uint32_0;
126 internal UInt32 uint32_1;
128 internal UInt32 uint32_2;
130 internal UInt32 uint32_3;
132 // Internal System.Int32 Fields
134 internal Int32 int32_0;
136 internal Int32 int32_1;
138 internal Int32 int32_2;
140 internal Int32 int32_3;
142 // Internal System.UInt64 Fields
144 internal UInt64 uint64_0;
146 internal UInt64 uint64_1;
148 // Internal System.Int64 Fields
150 internal Int64 int64_0;
152 internal Int64 int64_1;
154 // Internal System.Single Fields
156 internal Single single_0;
158 internal Single single_1;
160 internal Single single_2;
162 internal Single single_3;
164 // Internal System.Double Fields
166 internal Double double_0;
168 internal Double double_1;
170 #endregion Internal Storage Fields