FPCR and the instructions to access it are required for an implementation that supports float-
Software Note:
Support for FPCR is required on a system that supports the OpenVMS Alpha operating system even if that system does not support
4.7.8.1 Accessing the FPCR
Because Alpha
Issuing an EXCB followed by an MT_FPCR followed by another EXCB ensures that only
Consider the following example:
ADDT/D
EXCB;1
MT_FPCR F1,F1,F1
EXCB;2
SUBT/D
Without the first EXCB, it is possible in an implementation for the ADDT/D to execute in par- allel with the MT_FPCR. Thus, it would be UNPREDICTABLE whether the ADDT/D was affected by the new rounding mode set by the MT_FPCR and whether fields cleared by the MT_FPCR in the exception summary were subsequently set by the ADDT/D.
Without the second EXCB, it is possible in an implementation for the MT_FPCR to execute in parallel with the SUBT/D. Thus, it would be UNPREDICTABLE whether the SUBT/D was affected by the new rounding mode set by the MT_FPCR and whether fields cleared by the MT_FPCR in the exception summary field of FPCR were previously set by the SUBT/D.
Specifically, code should issue an EXCB before and after it accesses the FPCR if that code needs to see valid values in FPCR bits <63> and <57:52>. An EXCB should be issued before attempting to write the FPCR if the code expects changes to bits <59:52> not to have depen- dencies with prior instructions. An EXCB should be issued after attempting to write the FPCR if the code expects subsequent instructions to have dependencies with changes to bits <59:52>.