From: lkcl Date: Sun, 17 Sep 2023 07:44:15 +0000 (+0100) Subject: (no commit message) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=1911d9d580084550ee4212210b724084b653a297;p=libreriscv.git --- diff --git a/openpower/sv/cookbook/chacha20.mdwn b/openpower/sv/cookbook/chacha20.mdwn index c70374740..0a164a504 100644 --- a/openpower/sv/cookbook/chacha20.mdwn +++ b/openpower/sv/cookbook/chacha20.mdwn @@ -153,10 +153,17 @@ Let's list the additions only: x3 = x3 + x4 x9 = x9 + x14 ``` + +These are clearly regular patterns, and if there was a +system of "register offsets" available, it would be possible +to put a loop around one single add instead of unrolling 32 +operations. This is where REMAP Indexing steps in. ## Introduction to REMAP Indexing REMAP Indexing performs any arbitrary re-positioning of elements. +In effect it makes it possible to perform "arrbitrary addressing" +at runtime of registers. Where normally any other Vector Processor would only be able to do a sequential element-level series of operations, and if re-ordering of the elements is required use a special re-ordering instruction,