bug 1236: add extra argument to svstep: RA.
[openpower-isa.git] / openpower / isa / fixedstore.mdwn
index e88f64f0d3a4081694c9d220a289e3c4fdca09b3..94c419e35e23b1fb0ad0e39b4b3ee08d0b7bf66a 100644 (file)
@@ -26,6 +26,12 @@ Pseudo-code:
     EA <- b + EXTS(D)
     MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
 
+Description:
+
+    Let the effective address (EA) be the sum (RA|0)+ D.
+    RS[56:63] are stored into the byte in storage addressed
+    by EA.
+
 Special Registers Altered:
 
     None
@@ -42,6 +48,12 @@ Pseudo-code:
     EA <- b + (RB)
     MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). RS [56:63] are stored into the byte in stor-
+    age addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -58,6 +70,16 @@ Pseudo-code:
     MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ D.
+    RS[56:63] are stored into the byte in storage addressed
+    by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -74,6 +96,16 @@ Pseudo-code:
     MEM(EA, 1) <- (RS)[XLEN-8:XLEN-1]
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ (RB).
+    RS[56:63] are stored into the byte in storage addressed
+    by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -90,6 +122,12 @@ Pseudo-code:
     EA <- b + EXTS(D)
     MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
 
+Description:
+
+    Let the effective address (EA) be the sum (RA|0)+ D.
+    RS[48:63] are stored into the halfword in storage
+    addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -106,6 +144,12 @@ Pseudo-code:
     EA <- b + (RB)
     MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). RS[48:63] are stored into the halfword in
+    storage addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -119,9 +163,19 @@ D-Form
 Pseudo-code:
 
     EA <- (RA) + EXTS(D)
-    MEM(EA, 2) <- (RS)[48:63]
+    MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ D.
+    RS[48:63] are stored into the halfword in storage
+    addressed by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -135,9 +189,19 @@ X-Form
 Pseudo-code:
 
     EA <- (RA) + (RB)
-    MEM(EA, 2) <- (RS)[48:63]
+    MEM(EA, 2) <- (RS)[XLEN-16:XLEN-1]
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ (RB).
+    RS[48:63] are stored into the halfword in storage
+    addressed by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -152,7 +216,13 @@ Pseudo-code:
 
     b <- (RA|0)
     EA <- b + EXTS(D)
-    MEM(EA, 4) <- (RS)[32:63]
+    MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
+
+Description:
+
+    Let the effective address (EA) be the sum (RA|0)+ D.
+    RS[32:63] are stored into the word in storage addressed
+    by EA.
 
 Special Registers Altered:
 
@@ -168,7 +238,13 @@ Pseudo-code:
 
     b <- (RA|0)
     EA <- b + (RB)
-    MEM(EA, 4) <- (RS)[32:63]
+    MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
+
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). RS[32:63] are stored into the word in stor-
+    age addressed by EA.
 
 Special Registers Altered:
 
@@ -183,9 +259,19 @@ D-Form
 Pseudo-code:
 
     EA <- (RA) + EXTS(D)
-    MEM(EA, 4) <- (RS)[32:63]
+    MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ D.
+    RS[32:63] are stored into the word in storage addressed
+    by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -199,9 +285,19 @@ X-Form
 Pseudo-code:
 
     EA <- (RA) + (RB)
-    MEM(EA, 4) <- (RS)[32:63]
+    MEM(EA, 4) <- (RS)[XLEN-32:XLEN-1]
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ (RB).
+    RS[32:63] are stored into the word in storage addressed
+    by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -222,6 +318,12 @@ Pseudo-code:
     EA <- b + EXTS(DS || 0b00)
     MEM(EA, 8) <- (RS)
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (DS||0b00). (RS) is stored into the doubleword
+    in storage addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -238,6 +340,12 @@ Pseudo-code:
     EA <- b + (RB)
     MEM(EA, 8) <- (RS)
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). (RS) is stored into the doubleword in
+    storage addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -254,6 +362,16 @@ Pseudo-code:
     MEM(EA, 8) <- (RS)
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA)+ (DS||0b00). (RS) is stored into the doubleword in
+    storage addressed by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -270,6 +388,16 @@ Pseudo-code:
     MEM(EA, 8) <- (RS)
     RA <- EA
 
+Description:
+
+    Let the effective address (EA) be the sum (RA)+ (RB).
+    (RS) is stored into the doubleword in storage
+    addressed by EA.
+
+    EA is placed into register RA.
+
+    If RA=0, the instruction form is invalid.
+
 Special Registers Altered:
 
     None
@@ -298,6 +426,25 @@ Pseudo-code:
     EA <- b + EXTS(DS || 0b00)
     MEM(EA, 16) <- RSp
 
+Description:
+
+    Let the effective address (EA) be the sum (RA|0)+
+    (DS||0b00). The contents of register pair RSp are
+    stored into the quadword in storage addressed by EA.
+
+    If RSp is odd, the instruction form is invalid.
+
+    The contents of an even-odd pair of GPRs is stored into
+    the quadword in storage addressed by EA as follows.
+    In Big-Endian mode, the even-numbered GPR is stored
+    into the doubleword in storage addressed by EA and
+    the odd-numbered GPR is stored into the doubleword
+    addressed by EA+8. In Little-Endian mode, the
+    even-numbered GPR is stored byte-reversed into the
+    doubleword in storage addressed by EA+8 and the
+    odd-numbered GPR is stored byte-reversed into the
+    doubleword addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -316,6 +463,14 @@ Pseudo-code:
     EA <- b + (RB)
     MEM(EA, 2) <- (RS) [56:63] || (RS)[48:55]
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). (RS)56:63 are stored into bits 0:7 of the
+    halfword in storage addressed by EA. (RS) 48:55 are
+    stored into bits 8:15 of the halfword in storage
+    addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -333,6 +488,16 @@ Pseudo-code:
     MEM(EA, 4) <- ((RS)[56:63] || (RS)[48:55] || (RS)[40:47]
                    ||(RS)[32:39])
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). (RS)[56:63] are stored into bits 0:7 of the
+    word in storage addressed by EA. (RS) [48:55] are stored
+    into bits 8:15 of the word in storage addressed by EA.
+    (RS)[40:47] are stored into bits 16:23 of the word in stor-
+    age addressed by EA. (RS) [32:39] are stored into bits
+    24:31 of the word in storage addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -354,6 +519,23 @@ Pseudo-code:
                     || (RS)[24:31] || (RS)[16:23]
                     || (RS)[8:15]  || (RS)[0:7])
 
+Description:
+
+    Let the effective address (EA) be the sum
+    (RA|0)+ (RB). (RS)[56:63] are stored into bits 0:7 of the
+    doubleword in storage addressed by EA. (RS) [48:55] are
+    stored into bits 8:15 of the doubleword in storage
+    addressed by EA. (RS) [40:47] are stored into bits 16:23 of
+    the doubleword in storage addressed by EA. (RS) [32:39]
+    are stored into bits 23:31 of the doubleword in storage
+    addressed by EA. (RS) [24:31] are stored into bits 32:39 of
+    the doubleword in storage addressed by EA. (RS) [16:23]
+    are stored into bits 40:47 of the doubleword in storage
+    addressed by EA. (RS)[8:15] are stored into bits 48:55 of
+    the doubleword in storage addressed by EA. (RS) [0:7]
+    are stored into bits 56:63 of the doubleword in storage
+    addressed by EA.
+
 Special Registers Altered:
 
     None
@@ -377,6 +559,18 @@ Pseudo-code:
         r <-  r + 1
         EA <-  EA + 4
 
+Description:
+
+    Let n = (32-RS). Let the effective address (EA) be the
+    sum (RA|0)+ D.
+
+    n consecutive words starting at EA are stored from the
+    low-order 32 bits of GPRs RS through 31.
+
+    This instruction is not supported in Little-Endian mode.
+    If it is executed in Little-Endian mode, the system align-
+    ment error handler is invoked.
+
 Special Registers Altered:
 
     None