FEX-Emu / FEX-Emu/FEX

Reading an empty tagged x87 register doesnt raise exception nor substitutes QNaN Indefinite

Open
#5,920 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.