From 17792f913adfe03b03277a7580b7b8bba6649054 Mon Sep 17 00:00:00 2001 From: lkcl Date: Sat, 9 Jan 2021 16:49:45 +0000 Subject: [PATCH] --- openpower/sv/ldst.mdwn | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/openpower/sv/ldst.mdwn b/openpower/sv/ldst.mdwn index c84817cba..35e2d7862 100644 --- a/openpower/sv/ldst.mdwn +++ b/openpower/sv/ldst.mdwn @@ -38,10 +38,7 @@ vector. 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 stride. - -At the minimum however it is possible to provide unit stride and vector -mode, as follows: +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! # op_width: lb=1, lh=2, lw=4, ld=8 @@ -73,7 +70,7 @@ mode, as follows: # compute EA EA = srcbase + offs # update RA? load from memory - if update: ireg[rsv+i] = EA; + if update: ireg[RAupdate+i] = EA; ireg[RT+j] <= MEM[EA]; if (!RT.isvec) break # destination scalar, end now @@ -83,9 +80,6 @@ mode, as follows: Indexed LD is: function op_ldx(RT, RA, RB, update=False) # LD not VLD! -  rdv = map_dest_extra(RT); -  rsv = map_src_extra(RA); -  rso = map_src_extra(RB);  ps = get_pred_val(FALSE, RA); # predication on src  pd = get_pred_val(FALSE, RT); # ... AND on dest  for (i=0, j=0, k=0; i < VL && j < VL && k < VL): @@ -93,9 +87,9 @@ Indexed LD is: if (RA.isvec) while (!(ps & 1<