# Fixed-point Load with Post-Update
-Add the following additional Section to Fixed-Point Load Book I
+Add the following additional Section to Fixed-Point Load: Book I 3.3.2.1
## Load Byte and Zero with Post-Update
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:
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:
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:
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:
Pseudo-code:
+```
EA <- (RA)
RT <- EXTS(MEM(EA, 2))
RA <- (RA) + EXTS(D)
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA)
RT <- EXTS(MEM(EA, 2))
RA <- (RA) + (RB)
+```
Special Registers Altered:
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:
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:
Pseudo-code:
+```
EA <- (RA)
RT <- EXTS(MEM(EA, 4))
RA <- (RA) + (RB)
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA)
RT <- MEM(EA, 8)
RA <- (RA) + EXTS(DS || 0b00)
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA)
RT <- MEM(EA, 8)
RA <- (RA) + (RB)
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + EXTS(D)
ea <- (RA)
MEM(ea, 1) <- (RS)[XLEN-8:XLEN-1]
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + (RB)
ea <- (RA)
MEM(ea, 1) <- (RS)[XLEN-8:XLEN-1]
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + EXTS(D)
ea <- (RA)
MEM(ea, 2) <- (RS)[XLEN-16:XLEN-1]
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + (RB)
ea <- (RA)
MEM(ea, 2) <- (RS)[XLEN-16:XLEN-1]
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + EXTS(D)
ea <- (RA)
MEM(ea, 4) <- (RS)[XLEN-32:XLEN-1]
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + (RB)
ea <- (RA)
MEM(ea, 4) <- (RS)[XLEN-32:XLEN-1]
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + EXTS(DS || 0b00)
ea <- (RA)
MEM(ea, 8) <- (RS)
RA <- EA
+```
Special Registers Altered:
Pseudo-code:
+```
EA <- (RA) + (RB)
ea <- (RA)
MEM(ea, 8) <- (RS)
RA <- EA
+```
Special Registers Altered: