The atomicsabi presents a baseline sequence of instructions and their equivalent atomic instruction. For floating point atomics the instruction sequences are not always equivalent, particularly when related to updating the floating point environment.
We should document the limitations of floating point atomics so that readers are aware of them.
The known issues:
- The loop variants corrupt the FP status flags. This can be mitigated by saving/restoring and using the results of the final iteration. C and C++ may disagree on whether this is needed.
- FEAT_LSFE changes the default control bits fpcr, which would require the control bits to be saved and restored.
The atomicsabi presents a baseline sequence of instructions and their equivalent atomic instruction. For floating point atomics the instruction sequences are not always equivalent, particularly when related to updating the floating point environment.
We should document the limitations of floating point atomics so that readers are aware of them.
The known issues: