From 4fb7c1f447c6aaaf729efe3d1d5722681dad8a22 Mon Sep 17 00:00:00 2001 From: lkcl Date: Sat, 9 Jan 2021 18:16:55 +0000 Subject: [PATCH] --- openpower/sv/ldst.mdwn | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/openpower/sv/ldst.mdwn b/openpower/sv/ldst.mdwn index b5bd16903..d332c4811 100644 --- a/openpower/sv/ldst.mdwn +++ b/openpower/sv/ldst.mdwn @@ -59,7 +59,7 @@ in order to give unit or element stride. With there being no way to tell which srcbase = ireg[RA] offs = i * op_width elif RA.isvec: - # type of indirect (indexed) but with an immediate + # quirky Vector indexed mode but with an immediate srcbase = ireg[RA+i] offs = immed; else @@ -138,10 +138,17 @@ TODO | 11 | inv | CR-bit | Rc=1: pred-result CR sel | | 11 | inv | str RC1 | Rc=0: pred-result z/nonz | -The `str` bit is only relevant when `RA.isvec` is clear: this indicates +The `str` bit is only relevant when `RA.isvec` is clear: this indicates +whether stride is unit or element: + if RA.isvec: + svctx.ldstmode = indexed + elif str == 0: + svctx.ldstmode = unitstride + else: + svctx.ldstmode = elementstride - modes for RA+RB indexed version: +Thr modes for RA+RB indexed version are slightly different: * saturation * predicate-result -- 2.30.2