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 such that 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.