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