From: lkcl Date: Sun, 12 Jun 2022 13:03:24 +0000 (+0100) Subject: (no commit message) X-Git-Tag: opf_rfc_ls005_v1~1832 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2cc0839c21ccd020500c547be1ebeb2a0d6402ab;p=libreriscv.git --- diff --git a/openpower/sv/mv.swizzle.mdwn b/openpower/sv/mv.swizzle.mdwn index 80f3d08fe..9e747abc0 100644 --- a/openpower/sv/mv.swizzle.mdwn +++ b/openpower/sv/mv.swizzle.mdwn @@ -118,8 +118,15 @@ of storing four 64-bit in-flight elements may be considered too high. If this is the case it is acceptable to throw an Illegal Instruction Trap, and emulate the instruction in software. Performance will obviously be adversely affected. -See [[sv/compliancy_levels]]*: all aspects of -Swizzle are entirely optional in hardware at the Embedded Level. +See [[sv/compliancy_levels]]: all aspects of +Swizzle are entirely optional in hardware at the Embedded Level.* + +Implementors must consider `SUBVL` to have been implicitly set by +the Swizzle instructions. Hardware may statically calculate `SUBVL` +from the immediate. "W.0Z" is SUBVL=4, where "X0Z." is SUBVL=3, +and ".W.." sets SUBVL=2. Setting `SUBVL` has a different meaning +in Swizzle Move instructions, +as explained below. # RM Mode Concept: @@ -132,6 +139,7 @@ MVRM-2P-2S1D: | src_SUBVL | `14:15` | SUBVL for Source | | MASK_SRC | `16:18` | Execution Mask for Source | -The inclusion of a separate src SUBVL would allow either -`sv.mv.swiz RT.vecN RA.vecN` to mean contiguous sequential copy -or it could mean zip/unzip (pack/unpack). +The inclusion of a separate src SUBVL allows +`sv.mv.swiz RT.vecN RA.vecN` to mean zip/unzip (pack/unpack). +This is conceptually achieved by having both source and +destination SUBVL be "outer" loops instead of inner loops.