Changeset 105370 in vbox for trunk/src/VBox/ValidationKit
- Timestamp:
- Jul 17, 2024 10:58:59 AM (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/ValidationKit/bootsectors/bs3-cpu-instr-4.c32
r105368 r105370 91 91 #define BS3_FP32_QNAN_VAL(a_Sign, a_Val) RTFLOAT32U_INIT_QNAN_EX(a_Sign, a_Val) 92 92 #define BS3_FP32_SNAN(a_Sign) RTFLOAT32U_INIT_SNAN(a_Sign) 93 93 #define BS3_FP32_SNAN_VAL(a_Sign, a_Val) RTFLOAT32U_INIT_SNAN_EX(a_Sign, a_Val) 94 94 95 95 /* … … 98 98 * Exponent - 8 bits, least significant bit MBZ. 99 99 */ 100 #define BS3_FP32_NORMAL_VAL_0(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x401ac0, 0x78) 101 #define BS3_FP32_NORMAL_VAL_1(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x5fcabd, 0xbc) 102 #define BS3_FP32_NORMAL_VAL_2(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x7e117a, 0x7e) 103 #define BS3_FP32_NORMAL_VAL_3(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x5b5b5b, 0x9a) 104 #define BS3_FP32_NORMAL_VAL_4(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x1e0f1f, 0x32) 105 #define BS3_FP32_NORMAL_VAL_5(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x012345, 0x56) 106 #define BS3_FP32_NORMAL_VAL_6(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x330b3b, 0x90) 107 #define BS3_FP32_NORMAL_VAL_7(a_Sign) RTFLOAT32U_INIT_C(a_Sign, 0x4ebeb4, 0x30) 100 #define BS3_FP32_FRACTION_VAL_0 0x401ac0 101 #define BS3_FP32_FRACTION_VAL_1 0x5fcabd 102 #define BS3_FP32_FRACTION_VAL_2 0x7e117a 103 #define BS3_FP32_FRACTION_VAL_3 0x5b5b5b 104 #define BS3_FP32_FRACTION_VAL_4 0x1e0f1f 105 #define BS3_FP32_FRACTION_VAL_5 0x012345 106 #define BS3_FP32_FRACTION_VAL_6 0x330b3b 107 #define BS3_FP32_FRACTION_VAL_7 0x4ebeb4 108 #define BS3_FP32_EXP_VAL_0 0x78 109 #define BS3_FP32_EXP_VAL_1 0xbc 110 #define BS3_FP32_EXP_VAL_2 0x7e 111 #define BS3_FP32_EXP_VAL_3 0x9a 112 #define BS3_FP32_EXP_VAL_4 0x32 113 #define BS3_FP32_EXP_VAL_5 0x56 114 #define BS3_FP32_EXP_VAL_6 0x90 115 #define BS3_FP32_EXP_VAL_7 0x30 116 AssertCompile(!(BS3_FP32_EXP_VAL_0 & RT_BIT(0))); 117 AssertCompile(!(BS3_FP32_EXP_VAL_1 & RT_BIT(0))); 118 AssertCompile(!(BS3_FP32_EXP_VAL_2 & RT_BIT(0))); 119 AssertCompile(!(BS3_FP32_EXP_VAL_3 & RT_BIT(0))); 120 AssertCompile(!(BS3_FP32_EXP_VAL_4 & RT_BIT(0))); 121 AssertCompile(!(BS3_FP32_EXP_VAL_5 & RT_BIT(0))); 122 AssertCompile(!(BS3_FP32_EXP_VAL_6 & RT_BIT(0))); 123 AssertCompile(!(BS3_FP32_EXP_VAL_7 & RT_BIT(0))); 124 #define BS3_FP32_NORMAL_VAL_0(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_0, BS3_FP32_EXP_VAL_0) 125 #define BS3_FP32_NORMAL_VAL_1(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_1, BS3_FP32_EXP_VAL_1) 126 #define BS3_FP32_NORMAL_VAL_2(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_2, BS3_FP32_EXP_VAL_2) 127 #define BS3_FP32_NORMAL_VAL_3(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_3, BS3_FP32_EXP_VAL_3) 128 #define BS3_FP32_NORMAL_VAL_4(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_4, BS3_FP32_EXP_VAL_4) 129 #define BS3_FP32_NORMAL_VAL_5(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_5, BS3_FP32_EXP_VAL_5) 130 #define BS3_FP32_NORMAL_VAL_6(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_6, BS3_FP32_EXP_VAL_6) 131 #define BS3_FP32_NORMAL_VAL_7(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_VAL_7, BS3_FP32_EXP_VAL_7) 108 132 /* The maximum integer value (all 23 + 1 implied bit of the fraction part set) without losing precision. */ 109 133 #define BS3_FP32_NORMAL_SAFE_INT_MAX(a_Sign) RTFLOAT32U_INIT_C(a_Sign, BS3_FP32_FRACTION_NORMAL_MAX, BS3_FP32_EXP_SAFE_INT_MAX) … … 1670 1694 /*daz,fz,rc*/ X86_MXCSR_DAZ, X86_MXCSR_FZ, X86_MXCSR_RC_UP, 1671 1695 /*flags */ 0, 0 }, 1672 /** @todo More denormals; Underflow, Precision; Rounding, FZ etc. */ 1696 /* 1697 * Invalids. 1698 */ 1699 /*32*/{ { /*src2 */ { BS3_FP32_QNAN(0), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MAX), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_0), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_1), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_3), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_4), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_5) } }, 1700 { /*src1 */ { BS3_FP32_SNAN(0), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MIN), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MAX), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_6), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_1), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_4) } }, 1701 { /* => */ { BS3_FP32_QNAN_VAL(0, 1), BS3_FP32_QNAN_VAL(0, 1), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MAX), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_6), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_1), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_4) } }, 1702 /*mask */ X86_MXCSR_XCPT_MASK, 1703 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 1704 /*flags */ X86_MXCSR_IE, X86_MXCSR_IE }, 1705 { { /*src2 */ { BS3_FP32_SNAN(0), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MIN), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_1), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_1), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_3), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_4), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_5), BS3_FP32_SNAN_VAL(0, BS3_FP32_FRACTION_VAL_6) } }, 1706 { /*src1 */ { BS3_FP32_QNAN(0), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MAX), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_6), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_5), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_4), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_3), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_1) } }, 1707 { /* => */ { BS3_FP32_QNAN(0), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_NORMAL_MAX), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_6), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_5), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_4), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_3), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_2), BS3_FP32_QNAN_VAL(0, BS3_FP32_FRACTION_VAL_1) } }, 1708 /*mask */ X86_MXCSR_XCPT_MASK, 1709 /*daz,fz,rc*/ 0, 0, X86_MXCSR_RC_NEAREST, 1710 /*flags */ X86_MXCSR_IE, X86_MXCSR_IE }, 1711 /** @todo Underflow, Precision; Rounding, FZ etc. */ 1673 1712 }; 1674 1713
Note:
See TracChangeset
for help on using the changeset viewer.