Reading an empty tagged x87 register doesnt raise exception nor substitutes QNaN Indefinite
- Dominant language
- C++
- Stars
- 8k
- Forks
- 351
- Avg merge
- 12h 31m
- Merged PRs (30d)
- 102
Description
Per the SDM, reading an x87 stack register whose tag is marked empty is a stack-underflow condition that sets IE and SF in the status word. When masked, the FPU substitutes the `QNaN` indefinite value into the register instead of its actual contents.
FEX doesn't implement this at all, the same sequence leaves the value completely unchanged and never raises or substitutes anything.
Contributor guide
Research direction
No file or test is named. Start by locating FEX's x87 stack-register read handling and its status-word exception paths; compare the empty-tag behavior with the SDM requirement. Done means an empty x87 register sets IE and SF and, when masked, produces the QNaN indefinite value rather than preserving the old contents.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100