You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[FMV][AArch64] Remove features which expose non exploitable runtime behavior. (#355)
Feature `rpres` allows an increase in the precision of the
single-precision
floating-point reciprocal estimate and reciprocal square root estimate
from an 8-bit mantissa to a 12-bit mantissa depending on the value
FPCR.AH
of the Floating-point Control Register.
Similarly, `ebf16` allows existing floating-point instructions (BFDOT,
BFMMLA,
BFMOPA, BFMOPS, and BFVDOT) to change numeric behaviour depending on the
value FPCR.EBF of the Floating-point Control Register.
Feature `memtag3` allows Tag Check Faults to change behaviour depending
on
the value SCTLR_ELx.{TCF, TCF0} of the System Control Register.
The runtime detection in FMV does not examine the content of control
registers, therefore runtime dispatch cannot be based on that. One may
argue there is value in altering the control register from a version,
for example "msr dit, \#1" if the feature is available on hardware. The
registers FPCR and SCTLR_ELx can be accessed in the absence of rpres,
ebf16, and memtag3, making it hard to justify adding them to the
compiler.
0 commit comments