RT <- [0] * 32 || SINGLE((FRB)) # SINGLE since that's what stfs uses
```
-Move a 32-bit float from a FPR to a GPR, just copying bits of the IEEE 754
-representation directly. This is equivalent to `stfs` followed by `lwz`.
-As `fmvtgs` is just copying bits, `FPSCR` is not affected in any way.
+Move a BFP32 from a FPR to a GPR, by using `SINGLE` to extract the standard
+`BFP32` form from FRB and zero-extending the result to 64-bits and storing to
+RT. This is equivalent to `stfs` followed by `lwz`.
+As `fmvtgs` is just copying the BFP32 form, `FPSCR` is not affected in any way.
Rc=1 tests RT and sets CR0, exactly like all other Scalar Fixed-Point
operations.
FRT <- DOUBLE((RB)[32:63]) # DOUBLE since that's what lfs uses
```
-move a 32-bit float from a GPR to a FPR, just copying bits of the IEEE 754
-representation directly. This is equivalent to `stw` followed by `lfs`.
-As `fmvfgs` is just copying bits, `FPSCR` is not affected in any way.
+Move a BFP32 from a GPR to a FPR, by using `DOUBLE` on the least significant
+32-bits of RB to do the standard BFP32 in BFP64 trick and store the result in
+FRT. This is equivalent to `stw` followed by `lfs`.
+As `fmvfgs` is just copying the BFP32 form, `FPSCR` is not affected in any way.
Rc=1 tests FRT and sets CR1, exactly like all other Scalar Floating-Point
operations.