Changeset 105599 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- Aug 6, 2024 8:57:29 AM (9 months ago)
- svn:sync-xref-src-repo-rev:
- 164278
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r105597 r105599 4905 4905 4906 4906 4907 #if 04908 4907 /* 4909 4908 * [V]MULSS. … … 4919 4918 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4920 4919 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4921 /*mask */ X86_MXCSR_XCPT_MASK, 4922 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4923 /*flags */ 0, 0 }, 4920 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 4921 /*128:out */ X86_MXCSR_XCPT_MASK, 4922 /*256:out */ X86_MXCSR_XCPT_MASK, 4923 /*xcpt? */ false, false }, 4924 4924 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4925 4925 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4926 4926 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4927 /*mask */ ~X86_MXCSR_XCPT_MASK, 4928 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4929 /*flags */ 0, 0 }, 4927 /*mxcsr:in */ 0, 4928 /*128:out */ 0, 4929 /*256:out */ 0, 4930 /*xcpt? */ false, false }, 4930 4931 { { /*src2 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4931 4932 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4932 4933 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4933 /*mask */ X86_MXCSR_XCPT_MASK, 4934 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO, 4935 /*flags */ 0, 0 }, 4934 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4935 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4936 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 4937 /*xcpt? */ false, false }, 4936 4938 { { /*src2 */ { FP32_0(0), FP32_NORM_V7(0), FP32_NORM_V6(0), FP32_0(0), FP32_0(1), FP32_NORM_V3(0), FP32_0(0), FP32_0(0) } }, 4937 4939 { /*src1 */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_NORM_V2(0), FP32_NORM_V3(1), FP32_0(0), FP32_NORM_V6(0), FP32_NORM_V2(0) } }, 4938 4940 { /* => */ { FP32_0(0), FP32_0(1), FP32_0(1), FP32_NORM_V2(0), FP32_NORM_V3(0), FP32_0(0), FP32_NORM_V6(0), FP32_NORM_V2(0) } }, 4939 /*mask */ X86_MXCSR_XCPT_MASK, 4940 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN, 4941 /*flags */ 0, 0 }, 4941 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4942 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4943 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4944 /*xcpt? */ false, false }, 4942 4945 { { /*src2 */ { FP32_0(1), FP32_0(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 4943 4946 { /*src1 */ { FP32_0(1), FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 4944 4947 { /* => */ { FP32_0(0), FP32_0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 4945 /*mask */ ~X86_MXCSR_XCPT_MASK, 4946 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP, 4947 /*flags */ 0, 0 }, 4948 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 4949 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 4950 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_UP, 4951 /*xcpt? */ false, false }, 4948 4952 { { /*src2 */ { FP32_0(1), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 4949 4953 { /*src1 */ { FP32_0(0), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } }, 4950 4954 { /* => */ { FP32_0(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V1(1) } }, 4951 /*mask */ ~X86_MXCSR_XCPT_MASK, 4952 /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_ZERO, 4953 /*flags */ 0, 0 }, 4955 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4956 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4957 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_RC_ZERO, 4958 /*xcpt? */ false, false }, 4954 4959 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 4955 4960 { /*src1 */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } }, 4956 4961 { /* => */ { FP32_0(1), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } }, 4957 /*mask */ X86_MXCSR_XCPT_MASK, 4958 /*daz,fz,rc*/ X86_MXCSR_DAZ, 0, X86_MXCSR_RC_NEAREST, 4959 /*flags */ 0, 0 }, 4962 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 4963 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 4964 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_DAZ, 4965 /*xcpt? */ false, false }, 4960 4966 { { /*src2 */ { FP32_0(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 4961 4967 { /*src1 */ { FP32_1(0), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } }, 4962 4968 { /* => */ { FP32_0(0), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V3(0), FP32_RAND_V0(0), FP32_RAND_V3(1) } }, 4963 /*mask */ X86_MXCSR_XCPT_MASK, 4964 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_DOWN, 4965 /*flags */ 0, 0 }, 4969 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4970 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4971 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 4972 /*xcpt? */ false, false }, 4966 4973 /* 4967 4974 * Infinity. … … 4970 4977 { /*src1 */ { FP32_1(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4971 4978 { /* => */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4972 /*mask */ ~X86_MXCSR_IM, 4973 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4974 /*flags */ 0, 0 }, 4979 /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 4980 /*128:out */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 4981 /*256:out */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 4982 /*xcpt? */ false, false }, 4975 4983 { { /*src2 */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4976 4984 { /*src1 */ { FP32_1(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4977 4985 { /* => */ { FP32_INF(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4978 /*mask */ X86_MXCSR_XCPT_MASK, 4979 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 4980 /*flags */ 0, 0 }, 4986 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 4987 /*128:out */ X86_MXCSR_XCPT_MASK, 4988 /*256:out */ X86_MXCSR_XCPT_MASK, 4989 /*xcpt? */ false, false }, 4981 4990 { { /*src2 */ { FP32_INF(0), FP32_RAND_V7(0), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(1), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 4982 4991 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 4983 4992 { /* => */ { FP32_INF(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(1), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 4984 /*mask */ ~X86_MXCSR_IM, 4985 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 4986 /*flags */ 0, 0 }, 4993 /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ, 4994 /*128:out */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ, 4995 /*256:out */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_DAZ | X86_MXCSR_FZ, 4996 /*xcpt? */ false, false }, 4987 4997 { { /*src2 */ { FP32_INF(1), FP32_RAND_V7(1), FP32_RAND_V6(0), FP32_RAND_V5(1), FP32_RAND_V4(0), FP32_RAND_V3(0), FP32_RAND_V2(1), FP32_RAND_V1(1) } }, 4988 4998 { /*src1 */ { FP32_INF(0), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 4989 4999 { /* => */ { FP32_INF(1), FP32_RAND_V0(1), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(0) } }, 4990 /*mask */ X86_MXCSR_XCPT_MASK, 4991 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO, 4992 /*flags */ 0, 0 }, 5000 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 5001 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 5002 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 5003 /*xcpt? */ false, false }, 4993 5004 { { /*src2 */ { FP32_1(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V4(0), FP32_RAND_V5(1), FP32_RAND_V6(1) } }, 4994 5005 { /*src1 */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } }, 4995 5006 { /* => */ { FP32_INF(0), FP32_RAND_V6(1), FP32_RAND_V3(0), FP32_RAND_V2(0), FP32_RAND_V0(1), FP32_RAND_V3(0), FP32_RAND_V4(0), FP32_RAND_V2(1) } }, 4996 /*mask */ X86_MXCSR_XCPT_MASK, 4997 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 4998 /*flags */ 0, 0 }, 5007 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 5008 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 5009 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 5010 /*xcpt? */ false, false }, 4999 5011 { { /*src2 */ { FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1) } }, 5000 5012 { /*src1 */ { FP32_1(1), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(1), FP32_INF(1), FP32_INF(0) } }, 5001 5013 { /* => */ { FP32_INF(1), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(0), FP32_INF(1), FP32_INF(0), FP32_INF(1) } }, 5002 /*mask */ ~X86_MXCSR_XCPT_MASK, 5003 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 5004 /*flags */ 0, 0 }, 5014 /*mxcsr:in */ X86_MXCSR_FZ, 5015 /*128:out */ X86_MXCSR_FZ, 5016 /*256:out */ X86_MXCSR_FZ, 5017 /*xcpt? */ false, false }, 5005 5018 { { /*src2 */ { FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } }, 5006 5019 { /*src1 */ { FP32_INF(0), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } }, 5007 5020 { /* => */ { FP32_INF(1), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V0(0), FP32_RAND_V1(0), FP32_QNAN(0), FP32_SNAN(0), FP32_RAND_V2(0) } }, 5008 /*mask */ ~X86_MXCSR_XCPT_MASK, 5009 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO, 5010 /*flags */ 0, 0 }, 5021 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 5022 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 5023 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 5024 /*xcpt? */ false, false }, 5025 #if 0 5011 5026 /* 5012 5027 * Normals. … … 5280 5295 /*flags */ X86_MXCSR_IE, X86_MXCSR_IE }, 5281 5296 /** @todo Underflow, Precision; Rounding, FZ etc. */ 5297 #endif 5282 5298 }; 5283 5299 … … 5315 5331 g_aXcptConfig3, RT_ELEMENTS(g_aXcptConfig3)); 5316 5332 } 5317 #endif5318 5333 5319 5334 … … 5346 5361 { "[v]mulps", bs3CpuInstr4_v_mulps, 0 }, 5347 5362 { "[v]mulpd", bs3CpuInstr4_v_mulpd, 0 }, 5348 # if 05349 5363 { "[v]mulss", bs3CpuInstr4_v_mulss, 0 }, 5350 # endif5351 5364 #endif 5352 5365 };
Note:
See TracChangeset
for help on using the changeset viewer.