- Timestamp:
- Jul 25, 2024 10:09:58 AM (6 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r105470 r105502 3949 3949 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_DOWN, 3950 3950 /*xcpt? */ false, false }, 3951 #if 03952 3951 /* 3953 3952 * Infinity. … … 3956 3955 { /*src1 */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 3957 3956 { /* => */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 3958 /*mask */ ~X86_MXCSR_IM, 3959 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 3960 /*flags */ 0, 0 }, 3957 /*mxcsr:in */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 3958 /*128:out */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 3959 /*256:out */ X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM, 3960 /*xcpt? */ false, false }, 3961 3961 { { /*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) } }, 3962 3962 { /*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) } }, 3963 3963 { /* => */ { 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) } }, 3964 /*mask */ ~X86_MXCSR_IM, 3965 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 3966 /*flags */ X86_MXCSR_IE, X86_MXCSR_IE }, 3964 /*mxcsr:in */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM), 3965 /*128:out */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_IE, 3966 /*256:out */ (X86_MXCSR_XCPT_MASK & ~X86_MXCSR_IM) | X86_MXCSR_IE, 3967 /*xcpt? */ true, true }, 3967 3968 { { /*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) } }, 3968 3969 { /*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) } }, 3969 3970 { /* => */ { 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) } }, 3970 /*mask */ X86_MXCSR_XCPT_MASK, 3971 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 3972 /*flags */ 0, 0 }, 3971 /*mxcsr:in */ X86_MXCSR_XCPT_MASK, 3972 /*128:out */ X86_MXCSR_XCPT_MASK, 3973 /*256:out */ X86_MXCSR_XCPT_MASK, 3974 /*xcpt? */ false, false }, 3973 3975 { { /*src2 */ { FP32_INF(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) } }, 3974 3976 { /*src1 */ { FP32_INF(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) } }, 3975 3977 { /* => */ { FP32_QNAN(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) } }, 3976 /*mask */ X86_MXCSR_XCPT_MASK, 3977 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 3978 /*flags */ X86_MXCSR_IE, X86_MXCSR_IE }, 3978 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ, 3979 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE, 3980 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_IE, 3981 /*xcpt? */ false, false }, 3979 3982 { { /*src2 */ { FP32_INF(0), FP32_RAND_V1(0), FP32_RAND_V2(0), FP32_RAND_V5(1), FP32_RAND_V7(1), FP32_RAND_V0(0), FP32_RAND_V6(1), FP32_RAND_V3(1) } }, 3980 3983 { /*src1 */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } }, 3981 3984 { /* => */ { FP32_INF(1), FP32_RAND_V2(0), FP32_RAND_V6(1), FP32_RAND_V5(0), FP32_RAND_V4(1), FP32_RAND_V7(1), FP32_RAND_V3(1), FP32_RAND_V2(0) } }, 3982 /*mask */ ~X86_MXCSR_XCPT_MASK, 3983 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 3984 /*flags */ 0, 0 }, 3985 /*mxcsr:in */ X86_MXCSR_FZ, 3986 /*128:out */ X86_MXCSR_FZ, 3987 /*256:out */ X86_MXCSR_FZ, 3988 /*xcpt? */ false, false }, 3985 3989 { { /*src2 */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_RAND_V3(1), FP32_RAND_V2(1), FP32_RAND_V2(1), FP32_RAND_V3(1), FP32_RAND_V6(1) } }, 3986 3990 { /*src1 */ { FP32_INF(0), FP32_0(1), FP32_0(1), FP32_RAND_V3(1), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V5(1) } }, 3987 3991 { /* => */ { FP32_INF(0), FP32_0(1), FP32_0(1), FP32_RAND_V3(1), FP32_RAND_V1(0), FP32_RAND_V0(1), FP32_RAND_V4(1), FP32_RAND_V5(1) } }, 3988 /*mask */ X86_MXCSR_XCPT_MASK, 3989 /*daz,fz,rc*/ 0, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO, 3990 /*flags */ 0, 0 }, 3992 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 3993 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 3994 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO, 3995 /*xcpt? */ false, false }, 3991 3996 /* 3992 3997 * Overflow, Precision. … … 3995 4000 { /*src1 */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(0) } }, 3996 4001 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 3997 /*mask */ ~X86_MXCSR_XCPT_MASK, 3998 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 3999 /*flags */ 0, X86_MXCSR_PE }, 4002 /*mxcsr:in */ 0, 4003 /*128:out */ 0, 4004 /*256:out */ X86_MXCSR_PE, 4005 /*xcpt? */ false, true }, 4000 4006 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0), FP32_NORM_MAX(1), FP32_0(0), FP32_NORM_MAX(0) } }, 4001 4007 { /*src1 */ { FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_NORM_MAX(0) } }, 4002 4008 { /* => */ { FP32_NORM_MAX(1), FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0) } }, 4003 /*mask */ X86_MXCSR_OM | X86_MXCSR_PM, 4004 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO, 4005 /*flags */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE }, 4009 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO, 4010 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 4011 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 4012 /*xcpt? */ false, false }, 4006 4013 { { /*src2 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(0) } }, 4007 4014 { /*src1 */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_NORM_MAX(1) } }, 4008 4015 { /* => */ { FP32_INF(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_INF(1) } }, 4009 /*mask */ X86_MXCSR_OM | X86_MXCSR_PM, 4010 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 4011 /*flags */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE }, 4016 /*mxcsr:in */ X86_MXCSR_OM | X86_MXCSR_PM, 4017 /*128:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE, 4018 /*256:out */ X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE, 4019 /*xcpt? */ false, false }, 4012 4020 { { /*src2 */ { FP32_NORM_MAX(0), FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4013 4021 { /*src1 */ { FP32_NORM_MAX(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4014 4022 { /* => */ { FP32_INF(1), FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4015 /*mask */ X86_MXCSR_OM | X86_MXCSR_PM, 4016 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_NEAREST, 4017 /*flags */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE }, 4023 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM, 4024 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE, 4025 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE, 4026 /*xcpt? */ false, false }, 4018 4027 { { /*src2 */ { FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4019 4028 { /*src1 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4020 4029 { /* => */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4021 /*mask */ X86_MXCSR_OM | X86_MXCSR_PM, 4022 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_ZERO, 4023 /*flags */ X86_MXCSR_PE, X86_MXCSR_PE }, 4030 /*mxcsr:in */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM, 4031 /*128:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_PE, 4032 /*256:out */ X86_MXCSR_DAZ | X86_MXCSR_FZ | X86_MXCSR_RC_ZERO | X86_MXCSR_OM | X86_MXCSR_PM | X86_MXCSR_OE | X86_MXCSR_PE, 4033 /*xcpt? */ false, false }, 4024 4034 { { /*src2 */ { FP32_NORM_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4025 4035 { /*src1 */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4026 4036 { /* => */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4027 /*mask */ X86_MXCSR_XCPT_MASK, 4028 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO, 4029 /*flags */ X86_MXCSR_OE | X86_MXCSR_PE, X86_MXCSR_OE | X86_MXCSR_PE }, 4037 /*mxcsr:in */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO, 4038 /*128:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 4039 /*256:out */ X86_MXCSR_XCPT_MASK | X86_MXCSR_RC_ZERO | X86_MXCSR_OE | X86_MXCSR_PE, 4040 /*xcpt? */ false, false }, 4030 4041 { { /*src2 */ { FP32_NORM_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4031 4042 { /*src1 */ { FP32_NORM_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4032 4043 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4033 /*mask */ ~(X86_MXCSR_OM | X86_MXCSR_PM), 4034 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO, 4035 /*flags */ X86_MXCSR_PE, X86_MXCSR_PE }, 4044 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 4045 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 4046 /*256:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 4047 /*xcpt? */ true, true }, 4036 4048 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4037 4049 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4038 4050 { /* => */ { FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4039 /*mask */ ~X86_MXCSR_XCPT_MASK, 4040 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO, 4041 /*flags */ X86_MXCSR_PE, X86_MXCSR_PE }, 4051 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 4052 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 4053 /*256:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 4054 /*xcpt? */ true, true }, 4042 4055 { { /*src2 */ { FP32_NORM_SAFE_INT_MIN(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4043 4056 { /*src1 */ { FP32_NORM_SAFE_INT_MAX(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4044 4057 { /* => */ { FP32_0(1), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0), FP32_0(0) } }, 4045 /*mask */ ~X86_MXCSR_XCPT_MASK, 4046 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_ZERO, 4047 /*flags */ X86_MXCSR_PE, X86_MXCSR_PE }, 4058 /*mxcsr:in */ X86_MXCSR_RC_ZERO, 4059 /*128:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 4060 /*256:out */ X86_MXCSR_RC_ZERO | X86_MXCSR_PE, 4061 /*xcpt? */ true, true }, 4062 #if 0 4048 4063 /* 4049 4064 * Normals.
Note:
See TracChangeset
for help on using the changeset viewer.