Changeset 105844 in vbox
- Timestamp:
- Aug 23, 2024 10:13:25 AM (4 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r105836 r105844 90 90 #define FP32_0(a_Sign) RTFLOAT32U_INIT_ZERO(a_Sign) 91 91 #define FP32_1(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0, RTFLOAT32U_EXP_BIAS) 92 #define FP32_2(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0, RTFLOAT32U_EXP_BIAS + 1) 92 93 #define FP32_V(a_Sign, a_Frac, a_Exp) RTFLOAT32U_INIT_C(a_Sign, a_Frac, a_Exp) 93 94 #define FP32_INF(a_Sign) RTFLOAT32U_INIT_INF(a_Sign) … … 191 192 #define FP64_0(a_Sign) RTFLOAT64U_INIT_ZERO(a_Sign) 192 193 #define FP64_1(a_Sign) RTFLOAT64U_INIT_C(a_Sign, 0, RTFLOAT64U_EXP_BIAS) 194 #define FP64_2(a_Sign) RTFLOAT64U_INIT_C(a_Sign, 0, RTFLOAT64U_EXP_BIAS + 1) 193 195 #define FP64_V(a_Sign, a_Frac, a_Exp) RTFLOAT64U_INIT_C(a_Sign, a_Frac, a_Exp) 194 196 #define FP64_INF(a_Sign) RTFLOAT64U_INIT_INF(a_Sign) … … 6135 6137 /*xcpt? */ false, false }, 6136 6138 /* 6139 * Overflow, Precision. 6140 */ 6141 /*12*/{ { /*src2 */ { FP32_0(0), FP32_1(1), FP32_0(0), FP32_1(0), FP32_NORM_MAX(1), FP32_1(0), FP32_NORM_MAX(1), FP32_2(0) } }, 6142 { /*src1 */ { FP32_0(0), FP32_1(1), FP32_0(0), FP32_1(0), FP32_0(1), FP32_1(0), FP32_2(0), FP32_NORM_MAX(0) } }, 6143 { /* => */ { FP32_0(0), FP32_1(0), FP32_0(0), FP32_1(0), FP32_0(0), FP32_1(0), FP32_0(0), FP32_0(0) } }, 6144 /*mxcsr:in */ 0, 6145 /*128:out */ 0, 6146 /*256:out */ X86_MXCSR_OE, 6147 /*xcpt? */ false, true }, 6148 { { /*src2 */ { FP32_NORM_MAX(0), FP32_1(1), FP32_0(0), FP32_1(0), FP32_NORM_MAX(1), FP32_1(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 6149 { /*src1 */ { FP32_NORM_MAX(0), FP32_1(1), FP32_0(0), FP32_1(0), FP32_0(1), FP32_1(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 6150 { /* => */ { FP32_0(0), FP32_1(0), FP32_0(0), FP32_1(0), FP32_0(0), FP32_1(0), FP32_0(0), FP32_0(0) } }, 6151 /*mxcsr:in */ 0, 6152 /*128:out */ X86_MXCSR_OE | X86_MXCSR_PE, 6153 /*256:out */ X86_MXCSR_OE | X86_MXCSR_PE, 6154 /*xcpt? */ true, true }, 6155 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_1(1), FP32_0(0), FP32_NORM_MAX(0) } }, 6156 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_1(1), FP32_0(1), FP32_NORM_MAX(0) } }, 6157 { /* => */ { FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_1(0), FP32_0(1), FP32_NORM_MAX(0) } }, 6158 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO, 6159 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 6160 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 6161 /*xcpt? */ false, false }, 6162 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_NORM_V1(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MAX(0) } }, 6163 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_1(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MAX(1) } }, 6164 { /* => */ { FP32_INF(0), FP32_0(0), FP32_NORM_V1(0), FP32_INF(0), FP32_INF(0), FP32_0(1), FP32_0(1), FP32_INF(1) } }, 6165 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM, 6166 /*128:out */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE, 6167 /*256:out */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE, 6168 /*xcpt? */ false, false }, 6169 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(0), FP32_NORM_V3(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(0), FP32_NORM_MIN(1), FP32_NORM_MAX(0) } }, 6170 { /*src1 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MIN(1), FP32_NORM_MIN(0), FP32_NORM_MAX(1) } }, 6171 { /* => */ { FP32_NORM_MAX(0), FP32_0(1), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(1), FP32_0(1), FP32_INF(1) } }, 6172 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 6173 /*128:out */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE, 6174 /*256:out */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE, 6175 /*xcpt? */ false, false }, 6176 { { /*src2 */ { FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_2(0), FP32_1(1), FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_NORM_MIN(1) } }, 6177 { /*src1 */ { FP32_NORM_MIN(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_1(1), FP32_2(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_NORM_MIN(1) } }, 6178 { /* => */ { FP32_0(0), FP32_NORM_MAX(0), FP32_INF(1), FP32_2(1), FP32_2(0), FP32_INF(1), FP32_NORM_MAX(0), FP32_0(0) } }, 6179 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 6180 /*128:out */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE, 6181 /*256:out */ X86_MXCSR_OM | X86_MXCSR_UM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN | X86_MXCSR_OE | X86_MXCSR_UE | X86_MXCSR_PE, 6182 /*xcpt? */ false, false }, 6183 { { /*src2 */ { FP32_1(0), FP32_NORM_V2(1), FP32_1(1), FP32_NORM_V6(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 6184 { /*src1 */ { FP32_NORM_V7(0), FP32_1(1), FP32_NORM_V4(0), FP32_1(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 6185 { /* => */ { FP32_NORM_V7(0), FP32_NORM_V2(0), FP32_NORM_V4(1), FP32_NORM_V6(1), FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(0) } }, 6186 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 6187 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ, 6188 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE, 6189 /*xcpt? */ false, true }, 6190 { { /*src2 */ { FP32_1(0), FP32_NORM_V2(1), FP32_1(1), FP32_NORM_V6(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 6191 { /*src1 */ { FP32_NORM_V7(0), FP32_1(1), FP32_NORM_V4(0), FP32_1(1), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_NORM_MAX(0) } }, 6192 { /* => */ { FP32_NORM_V7(0), FP32_NORM_V2(0), FP32_NORM_V4(1), FP32_NORM_V6(1), FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(0) } }, 6193 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ, 6194 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ, 6195 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OE | X86_MXCSR_PE, 6196 /*xcpt? */ false, false }, 6197 /** @todo More Overflow/Precision. */ 6198 /* 6137 6199 * Normals. 6138 6200 */ 6139 /*1 2*/{ { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_NORM_V0(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_1(1), FP32_1(0), FP32_1(1), FP32_NORM_V6(1) } },6201 /*19*/{ { /*src2 */ { FP32_V(0, 0x600000, 0x7f)/*1.7500*/, FP32_NORM_V0(0), FP32_NORM_V1(0), FP32_NORM_V2(1), FP32_1(1), FP32_1(0), FP32_1(1), FP32_NORM_V6(1) } }, 6140 6202 { /*src1 */ { FP32_V(0, 0, 0x7d)/*0.2500*/, FP32_1(0), FP32_1(1), FP32_0(0), FP32_NORM_V0(1), FP32_NORM_V3(0), FP32_NORM_V4(0), FP32_1(0) } }, 6141 6203 { /* => */ { FP32_V(0, 0x600000, 0x7d)/*0.4375*/, FP32_NORM_V0(0), FP32_NORM_V1(1), FP32_0(1), FP32_NORM_V0(0), FP32_NORM_V3(0), FP32_NORM_V4(1), FP32_NORM_V6(1) } }, … … 6166 6228 /*xcpt? */ false, false }, 6167 6229 /** @todo More Normals. */ 6168 /** @todo Denormals, Overflow/Precision, Invalids, Underflow, Precision; 6169 * Rounding, FZ etc. */ 6230 /** @todo Denormals, Invalids, Underflow, Precision; Rounding, FZ etc. */ 6170 6231 }; 6171 6232
Note:
See TracChangeset
for help on using the changeset viewer.

