From 711edbc2b28c3accdf5c1e102de6c762bced4b76 Mon Sep 17 00:00:00 2001 From: lkcl Date: Sat, 9 Jan 2021 18:19:58 +0000 Subject: [PATCH] --- openpower/sv/ldst.mdwn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpower/sv/ldst.mdwn b/openpower/sv/ldst.mdwn index d332c4811..154c1693b 100644 --- a/openpower/sv/ldst.mdwn +++ b/openpower/sv/ldst.mdwn @@ -40,7 +40,7 @@ Thus we can see that Vector Indexed may be covered, and, as demonstrated with the pseudocode below, the immediate can be set to the element width in order to give unit or element stride. With there being no way to tell which from the Scalar opcode, the choice is provided instead by the SV Context. - # LD not VLD! + # LD not VLD! format - ldop RT, immed(RA) # op_width: lb=1, lh=2, lw=4, ld=8 op_load(RT, RA, op_width, immed, svctx, RAupdate):  ps = get_pred_val(FALSE, RA); # predication on src @@ -77,10 +77,12 @@ in order to give unit or element stride. With there being no way to tell which if (!RT.isvec) break # destination scalar, end now if (RA.isvec) i++; + if (RAupdate.isvec) u++; if (RT.isvec) j++; Indexed LD is: + # format: ldop RT, RA, RB function op_ldx(RT, RA, RB, RAupdate=False) # LD not VLD!  ps = get_pred_val(FALSE, RA); # predication on src  pd = get_pred_val(FALSE, RT); # ... AND on dest @@ -98,6 +100,7 @@ Indexed LD is: if (!RA.isvec && !RB.isvec) break # scalar-scalar if (RA.isvec) i++; + if (RAupdate.isvec) u++; if (RB.isvec) k++; if (RT.isvec) j++; -- 2.30.2