From: Luke Kenneth Casson Leighton Date: Mon, 10 Oct 2022 16:20:14 +0000 (+0100) Subject: convert fp32 to bfp32, fix FRS->FRT X-Git-Tag: opf_rfc_ls005_v1~103 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=187453979089c90b5b3118e6c1a970de3c0a28ba;p=libreriscv.git convert fp32 to bfp32, fix FRS->FRT --- diff --git a/openpower/sv/rfc/ls002.mdwn b/openpower/sv/rfc/ls002.mdwn index a762e31f7..d02a542f7 100644 --- a/openpower/sv/rfc/ls002.mdwn +++ b/openpower/sv/rfc/ls002.mdwn @@ -73,8 +73,8 @@ and TLB lookup. Even quickly clearing an FPR to zero presently requires Load. is an immediate loading instruction. No FPR Load Operations alter `FPSCR`, neither does `lxvkq`, and on that basis neither should these instructions. -3. `fishmv` as a FRS-only Read-Modify-Write (instead of an unnecessary - FRS,FRA pair) saves five potential bits, making +3. `fishmv` as a FRT-only Read-Modify-Write (instead of an unnecessary + FRT,FRA pair) saves five potential bits, making the difference between a 5-bit XO (VA/DX-Form) and requiring an entire Primary Opcode. @@ -101,9 +101,9 @@ Add the following entries to: Pseudocode: ``` - bf16 <- d0 || d1 || d2 # create bfloat16 immediate - fp32 <- bf16 || [0]*16 # convert bfloat16 to BFP32 - FRT <- DOUBLE(fp32) # convert BFP32 to BFP64 + bf16 <- d0 || d1 || d2 # create bfloat16 immediate + bfp32 <- bf16 || [0]*16 # convert bfloat16 to BFP32 + FRT <- DOUBLE(bfp32) # convert BFP32 to BFP64 ``` Special registers altered: @@ -140,10 +140,10 @@ DX-Form: Pseudocode: ``` - n <- (FRT) # read FRT - fp32 <- SINGLE(n) # convert to BFP32 - fp32[16:31] <- d0 || d1 || d2 # replace LSB half - FRT <- DOUBLE(fp32) # convert back to BFP64 + n <- (FRT) # read FRT + bfp32 <- SINGLE(n) # convert to BFP32 + bfp32[16:31] <- d0 || d1 || d2 # replace LSB half + FRT <- DOUBLE(bfp32) # convert back to BFP64 ``` Special registers altered: @@ -190,10 +190,10 @@ Add the following to Book I, 1.6.1.6, DX-Form | PO | FRT| d1| d0| XO|d2 ``` -Add `DX` to `FRS` Field in Book I, 1.6.2 +Add `DX` to `FRT` Field in Book I, 1.6.2 ``` - FRS (6:10) + FRT (6:10) Field used to specify an FPR to be used as a source. Formats: D, X, DX