FAND
and
FIOR
Instructions
The FAND
and FIOR
instructions operate with a 16-bit literal
and can only target the FCR, FSR and FEAR. They are considered a special case as they
are executed using custom blocks that are implemented within the RD-stage for some FCR
bits and the WB-stage for everything else.
To allow subsequent instruction to immediately use FAND
and
FIOR
changes to FCR.RND [1:0] and FCR.SAZ control bits without (RAW
hazard) stalls, these bits are modified during the RD-stage then updated at the end of
the RD-stage, so they are available for immediate use by any subsequent instruction.
The remaining FCR bits and all FSR and FEAR bits are read, modified and written back during the WB-stage. Reading the FSR late (i.e., in the WB-stage rather than the RD-stage) avoids a potential RAW hazard arising between a prior instruction FSR update and a subsequent FAND or FIOR FSR operation.