From c39e86e1a267272b2810dc677a15d3951cf60acb Mon Sep 17 00:00:00 2001 From: lkcl Date: Mon, 3 Oct 2022 21:16:45 +0100 Subject: [PATCH] --- openpower/sv/rfc/ls002.mdwn | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/openpower/sv/rfc/ls002.mdwn b/openpower/sv/rfc/ls002.mdwn index 888b9c405..23a3d3e02 100644 --- a/openpower/sv/rfc/ls002.mdwn +++ b/openpower/sv/rfc/ls002.mdwn @@ -109,7 +109,7 @@ fmvis f4, 0xFF80 # writes -Infinity to f4 fmvis f4, 0x3FFF # writes +1.9921875 to f4 ``` -# Float Immediate Second-Half Move +# Floating-Point Immediate Second-Half Move `fishmv FRS, D` @@ -130,19 +130,22 @@ Special registers altered: None -Strategically similar to how `oris` is used to construct -32-bit Integers, an additional 16-bits of immediate is +An additional 16-bits of immediate is inserted into `FRS` to extend its accuracy to -a full FP32 (stored as usual in FP64 Format within the FPR). -If a prior `fmvis` instruction had been used to -set the upper 16-bits from an FP32 value, `fishmv` contains the -lower 16-bits. +a full FP32, which is then stored in the usual FP64 Format within the FPR. **This instruction performs a Read-Modify-Write.** *FRS is read, the additional 16 bit immediate inserted, and the result also written to FRS. +This is strategically similar to how `li` combined with `oris` is +used to construct 32-bit Integers. `fishmv` may be macro-op-fused with `fmvis`* +Programmer's note: +If a prior `fmvis` instruction had been used to +set the upper 16-bits from an FP32 value, `fishmv` may be used +to set the +lower 16-bits. Example: ``` -- 2.30.2