The FPU uses the tag values to detect stack overflow and underflow conditions. The old rules of our business no longer applied.
However, although most independent estimates found the bug to be of little importance and would have negligible effect on most users, it caused a great public outcry. Application programs and exception handlers can use this tag information to check the contents of an FPU data register without performing complex decoding of the actual data in the register.
We explain all errata to OEMs and ISVs and work with them to devise workarounds so that there is minimal impact on end-users. This information provides state information for exception handlers.
Stack underflow occurs when the TOP pointer is incremented due to a save or pop operation to point to an empty register or when an empty register is also referenced as a source operand. A non-empty register is defined as a register containing a zero 01a valid value 00or an special 10 value.
According to Nicely, his contact person at Intel later admitted that Intel had been aware of the problem since Maywhen the flaw was discovered by Tom Kraljevic, a Purdue University co-op student working for Intel in Hillsboro, Oregon, during testing of the FPU for its new P6 core, first used in the Pentium Pro.
If the tag register image indicates that a data register is empty, the tag in the tag register for that data register is marked empty 11B ; if the tag register image indicates that the data register is non-empty, the FPU reads the actual value in the data register and sets the tag for the register accordingly.
But inIntel had introduced the "Intel Inside" program, a major merchandising campaign intended to give Intel distinction and an identity, and to help build computer-user communities' awareness of Intel and our products. Here, the integer is explicitly set to 1 for normalized numbers, infinities, and NaNs, and to 0 for zero and denormalized numbers.
Although its actual impact would have been negligible, it then snowballed into something much bigger, thanks to national press coverage and can legitimately be called the first computer hardware problem to have made the headline worldwide, well before the Millennium Bug.
Floating-Point Unit Data Type Formats When stored in memory, the least significant byte of an FPU data-type value is stored at the initial address specified for the value.