New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explicitly mention that FS may be imprecise #192

Merged
merged 1 commit into from Jun 11, 2018
File filter...
Filter file types
Jump to file or symbol
Failed to load files and symbols.
+13 −0
Diff settings

Always

Just for now

Copy path View file
@@ -831,6 +831,19 @@ \subsection{Extension Context Status in {\tt mstatus} Register}
does setting FS=Initial clear the contents. Other extensions might not
preserve state when set to Off.

Implementations may choose to track the dirtiness of the floating-point
register state imprecisely by reporting the state to be dirty even when
it has not been modified. On some implementations, some instructions that
do not mutate the floating-point state may cause the state to transition from
Initial or Clean to Dirty. On other implementations, dirtiness might not be
tracked at all, in which case the valid FS states are Off and Dirty, and an
attempt to set FS to Initial or Clean causes it to be set to Dirty.
\begin{commentary}
This definition of FS does not disallow setting FS to Dirty as a result of
errant speculation. Some platforms may choose to disallow speculatively
writing FS to close a potential side channel.
\end{commentary}

Table~\ref{fsxsstates} shows all the possible state transitions for
the FS or XS status bits. Note that the standard floating-point
extensions do not support user-mode unconfigure or disable/enable
ProTip! Use n and p to navigate between commits in a pull request.