From 5c907b8bd58f6954b5ba1aa405cf77dec981a690 Mon Sep 17 00:00:00 2001 From: lkcl Date: Tue, 7 Jun 2022 00:41:42 +0100 Subject: [PATCH] --- openpower/sv/remap.mdwn | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/openpower/sv/remap.mdwn b/openpower/sv/remap.mdwn index 47b715765..dec09925a 100644 --- a/openpower/sv/remap.mdwn +++ b/openpower/sv/remap.mdwn @@ -261,6 +261,24 @@ Example 2: if mask=0b10001 then again SVSHAPE0 and SVSHAPE1 are set up, but the REMAP SPR is set so that mi0 uses SVSHAPE0 and mo1 uses SVSHAPE1. +When `mm=1`: + +* bits 0-2 of mask indicate an index selecting mi0-mo1 +* bits 3-4 of mask indicate which SVSHAPE 0-3 shall be updated +* only the selected SVSHAPE is overwritten +* only the relevant bits in the REMAP SPR are updated + +Example 1: if mask=0b10011 then mo0 is selected and SVSHAPE2 +to be updated. REMAP.SVme[3] will be set high and REMAP.mo0 +set to 2 (SVSHAPE2). + +Example 2: if mask=0b11100 then mo1 is selected and SVSHAPE3 +to be updated. REMAP.SVme[4] will be set high and REMAP.mo1 +set to 3 (SVSHAPE3). + +In essence, `mm=0` is intended for use to set as much of the +REMAP State SPRs as practical with a single instruction, +whilst `mm=1` is intended to be a little more refined. # REMAP Matrix pseudocode -- 2.30.2