From: lkcl Date: Mon, 9 Aug 2021 10:16:30 +0000 (+0100) Subject: (no commit message) X-Git-Tag: DRAFT_SVP64_0_1~459 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=671611fba0c877b0a4ee2e2f1b0662c9e60d114a;p=libreriscv.git --- diff --git a/openpower/sv/branches.mdwn b/openpower/sv/branches.mdwn index 447c33a41..2536558bb 100644 --- a/openpower/sv/branches.mdwn +++ b/openpower/sv/branches.mdwn @@ -269,7 +269,7 @@ if svstep_mode then SVSTATE.srcstep = new_srcstep ``` -v3.0B branch pseudocode: +v3.0B branch pseudocode including LRu ``` if (mode_is_64bit) then M <- 0 @@ -277,10 +277,12 @@ else M <- 32 if ¬BO[2] then CTR <- CTR - 1 ctr_ok <- BO[2] | ((CTR[M:63] != 0) ^ BO[3]) cond_ok <- BO[0] | ¬(CR[BI+32] ^ BO[1]) +lr_ok <- SVRMmode.LRu if ctr_ok & cond_ok then if AA then NIA <-iea EXTS(BD || 0b00) else NIA <-iea CIA + EXTS(BD || 0b00) -if LK then LR <-iea CIA + 4 + lr_ok <- 0b1 +if LK & lr_ok then LR <-iea CIA + 4 ``` # Example Shader code