stfsupx, ls011, high, 10, yes, EXT2xx, no, isa/pifixedstore, 3R1W
# LD/ST-Shifted-Postincrement
-lbzuspx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
-lhzuspx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
-lhauspx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
-lwzuspx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
-lwauspx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
-lduspx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
-stbuspx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
-sthuspx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
-stwuspx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
-stduspx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
+lbzupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
+lhzupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
+lhaupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
+lwzupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
+lwaupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
+ldupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
+stbupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
+sthupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
+stwupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
+stdupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 3R1W
# FP LD/ST-Shifted-Postincrement
lfdupsx, ls011, med, 10, yes, EXT2xx, no, ls011, 2R2W
Add the following additional Section to Fixed-Point Load: Book I 3.3.2.1
-## Load Byte and Zero with Post-Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* lbzup RT,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- ([0] * (XLEN-8)) || MEM(EA, 1)
- RA <- (RA) + EXTS(D)
-```
-
-Let the effective address (EA) be (RA|0).
-The byte in storage addressed by EA is loaded into
-RT[56:63]. RT[0:55] are set to 0.
-
-The sum (RA|0)+D is placed into register RA.
-
-If RA=0 or RA=RT, the instruction form is invalid.
-
-Special Registers Altered:
-
- None
-
-## Load Byte and Zero with Post-Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RT | RA | RB | XO | / |
-```
-
-* lbzupx RT,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- ([0] * (XLEN-8)) || MEM(EA, 1)
- RA <- (RA) + (RB)
-```
-
-Let the effective address (EA) be (RA).
-The byte in storage addressed by EA is loaded into
-RT[56:63]. RT[0:55] are set to 0.
-
-The sum (RA)+(RB) is placed into register RA.
-
-If RA=0 or RA=RT, the instruction form is invalid.
-
-Special Registers Altered:
-
- None
-
-## Load Halfword and Zero with Post-Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* lhzup RT,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- ([0] * (XLEN-16)) || MEM(EA, 2)
- RA <- (RA) + EXTS(D)
-```
-
-Let the effective address (EA) be (RA|0).
-The halfword in storage addressed by EA is loaded into
-RT[48:63]. RT[0:47] are set to 0.
-
-The sum (RA|0)+D is placed into register RA.
-
-If RA=0 or RA=RT, the instruction form is invalid.
-
-Special Registers Altered:
-
- None
-
-## Load Halfword and Zero with Post-Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RT | RA | RB | XO | / |
-```
-
-* lhzupx RT,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- ([0] * (XLEN-16)) || MEM(EA, 2)
- RA <- (RA) + (RB)
-```
-
-Let the effective address (EA) be (RA).
-The halfword in storage addressed by EA is loaded into
-RT[48:63]. RT[0:47] are set to 0.
-
-The sum (RA)+(RB) is placed into register RA.
-
-If RA=0 or RA=RT, the instruction form is invalid.
-
-Special Registers Altered:
-
- None
-
-## Load Halfword Algebraic with Post-Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* lhaup RT,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- EXTS(MEM(EA, 2))
- RA <- (RA) + EXTS(D)
-```
-
-Special Registers Altered:
-
- None
-
-## Load Halfword Algebraic with Post-Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RT | RA | RB | XO | / |
-```
-
-* lhaupx RT,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- EXTS(MEM(EA, 2))
- RA <- (RA) + (RB)
-```
-
-Special Registers Altered:
-
- None
-
-## Load Word and Zero with Post-Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* lwzup RT,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- [0]*32 || MEM(EA, 4)
- RA <- (RA) + EXTS(D)
-```
-
-Let the effective address (EA) be (RA|0).
-The word in storage addressed by EA is loaded into
-RT[32:63]. RT[0:31] are set to 0.
-
-The sum (RA|0)+D is placed into register RA.
-
-If RA=0 or RA=RT, the instruction form is invalid.
-
-Special Registers Altered:
-
- None
-
-## Load Word and Zero with Post-Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RT | RA | RB | XO | / |
-```
-
-* lwzupx RT,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- [0] * 32 || MEM(EA, 4)
- RA <- (RA) + (RB)
-```
-
-Let the effective address (EA) be (RA).
-The word in storage addressed by EA is loaded into
-RT[32:63]. RT[0:31] are set to 0.
-
-The sum (RA)+(RB) is placed into register RA.
-
-If RA=0 or RA=RT, the instruction form is invalid.
-
-Special Registers Altered:
-
- None
-
-## Load Word Algebraic with Post-Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RT | RA | RB | XO | / |
-```
-
-* lwaupx RT,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- EXTS(MEM(EA, 4))
- RA <- (RA) + (RB)
-```
-
-Special Registers Altered:
-
- None
-
-## Load Doubleword with Post-Update Indexed
-
-DS-Form
-
-* ldup RT,DS(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- MEM(EA, 8)
- RA <- (RA) + EXTS(DS || 0b00)
-```
-
-Special Registers Altered:
-
- None
-
-## Load Doubleword with Post-Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RT | RA | RB | XO | / |
-```
-
-* ldupx RT,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA)
- RT <- MEM(EA, 8)
- RA <- (RA) + (RB)
-```
-
-Special Registers Altered:
-
- None
+[[!inline pages="openpower/isa/pifixedload" raw=yes ]]
-----
Add the following as a new section in Fixed-Point Store, Book I
-## Store Byte with Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* stbup RS,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA) + EXTS(D)
- ea <- (RA)
- MEM(ea, 1) <- (RS)[XLEN-8:XLEN-1]
- RA <- EA
-```
-
-Special Registers Altered:
-
- None
-
-## Store Byte with Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RS | RA | RB | XO | / |
-```
+[[!inline pages="openpower/isa/pifixedstore" raw=yes ]]
-* stbupx RS,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA) + (RB)
- ea <- (RA)
- MEM(ea, 1) <- (RS)[XLEN-8:XLEN-1]
- RA <- EA
-```
-
-Special Registers Altered:
-
- None
-
-## Store Halfword with Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* sthup RS,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA) + EXTS(D)
- ea <- (RA)
- MEM(ea, 2) <- (RS)[XLEN-16:XLEN-1]
- RA <- EA
-```
-
-Special Registers Altered:
-
- None
-
-## Store Halfword with Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RS | RA | RB | XO | / |
-```
-
-* sthupx RS,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA) + (RB)
- ea <- (RA)
- MEM(ea, 2) <- (RS)[XLEN-16:XLEN-1]
- RA <- EA
-```
-
-Special Registers Altered:
-
- None
-
-## Store Word with Update
-
-D-Form
-
-```
- |0 |6 |9 |10 |11 |16 |31 |
- | PO | RT | RA| D |
-```
-
-* stwup RS,D(RA)
-
-Pseudo-code:
-
-```
- EA <- (RA) + EXTS(D)
- ea <- (RA)
- MEM(ea, 4) <- (RS)[XLEN-32:XLEN-1]
- RA <- EA
-```
-
-Special Registers Altered:
-
- None
-
-## Store Word with Update Indexed
-
-X-Form
-
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RS | RA | RB | XO | / |
-```
-
-* stwupx RS,RA,RB
-
-Pseudo-code:
-
-```
- EA <- (RA) + (RB)
- ea <- (RA)
- MEM(ea, 4) <- (RS)[XLEN-32:XLEN-1]
- RA <- EA
-```
-
-Special Registers Altered:
-
- None
+-----
-## Store Doubleword with Update
+\newpage{}
-DS-Form
+# Floating-Point Load Post-Update
-* stdup RS,DS(RA)
+Add the following as a new section in Floating-Point Load, Book I 4.6.2
-Pseudo-code:
+[[!inline pages="openpower/isa/fpload" raw=yes ]]
-```
- EA <- (RA) + EXTS(DS || 0b00)
- ea <- (RA)
- MEM(ea, 8) <- (RS)
- RA <- EA
-```
+-----
-Special Registers Altered:
+\newpage{}
- None
+# Floating-Point Store Post-Update
-## Store Doubleword with Update Indexed
+Add the following as a new section in Floating-Point Store, Book I 4.6.3
-X-Form
+[[!inline pages="openpower/isa/fpstore" raw=yes ]]
-```
- |0 |6 |7|8|9 |10 |11|12|13 |15|16|17 |20|21 |31 |
- | PO | RS | RA | RB | XO | / |
-```
+-----
-* stdupx RS,RA,RB
+\newpage{}
-Pseudo-code:
+# Fixed-Point Load Shifted Post-Update
-```
- EA <- (RA) + (RB)
- ea <- (RA)
- MEM(ea, 8) <- (RS)
- RA <- EA
-```
+Add the following as a new section in Fixed-Point Load: Book I
-Special Registers Altered:
+[[!inline pages="openpower/isa/pifixedloadshift" raw=yes ]]
- None
+\newpage{}
+[[!inline pages="openpower/isa/fixedload" raw=yes ]]
+\newpage{}
+[[!inline pages="openpower/isa/fixedstore" raw=yes ]]
[[!tag opf_rfc]]