(no commit message)
authorlkcl <lkcl@web>
Sun, 24 Jan 2021 13:18:38 +0000 (13:18 +0000)
committerIkiWiki <ikiwiki.info>
Sun, 24 Jan 2021 13:18:38 +0000 (13:18 +0000)
openpower/sv/ldst.mdwn

index ddf350def87040caabad9d10878faf64a66f40a7..5f554a59f9d8ac13dd6523aec3cb963d8f68c59f 100644 (file)
@@ -291,12 +291,17 @@ LD/ST, will give that same capability, with far more flexibility.
 
 permutations of vector selection, to identify above asm-syntax:
 
-     imm(RA)  RT.v   RA.v   no stride allowed
+     imm(RA)  RT.v   RA.v   nonstrided
          sv.ld r#.v, ofst(r#2.v) -> r#2 is a vector of addresses
-     imm(RA)  RT.s   RA.v   no stride allowed
+     imm(RA)  RT.s   RA.v   nonstrided
          sv.ld r#, ofst(r#2.v) -> r#2 is a vector of addresses
-     imm(RA)  RT.v   RA.s   stride-select needed
+     imm(RA)  RT.v   RA.s   fixed stride: unit or element
          sv.ld r#.v, ofst(r#2).v -> the whole vector is at ofst+r#2
+           mem      0    1    2
+           destreg  r#   r#+1 r#+2
+         sv.ld/els r#.v, ofst(r#2).v -> the vector is at ofst*elidx+r#2
+           mem      0 ...    offs ...   offs*2
+           destreg  r#       r#+1       r#+2
      imm(RA)  RT.s   RA.s   not vectorised
          sv.ld r#, ofst(r#2)
 
@@ -309,6 +314,7 @@ TODO: indexed mode
      RA,RB    RT.v  RA.v  RB.s
         sv.ldx r#.v, r#2.v, r#3 -> vector of addresses
      RA,RB    RT.v  RA.s  RB.s
+        sv.ldx r#.v, r#2, r#3 -> VSPLAT mode
      RA,RB    RT.s  RA.v  RB.v
      RA,RB    RT.s  RA.s  RB.v
      RA,RB    RT.s  RA.v  RB.s