1 <!-- Instructions here described in PowerISA Version 3.0 B Book 1 -->
3 <!-- Section 3.3.7 Fixed-Point Move Assist Instructions [Phased Out] pages 63 - 65 -->
5 <!-- The Move Assist instructions allow movement of an arbitrary sequence of bytes -->
6 <!-- from storage to registers or from registers to storage without concern for -->
7 <!-- alignment. These instructions can be used for a short move between arbitrary -->
8 <!-- storage locations or to initiate a long move between unaligned storage fields. -->
11 # Load String Word Immediate
20 if NB = 0 then n <- 32
28 GPR(r)[i:i+7] <- MEM(EA, 1)
30 if i = 64 then i <- 32
34 Special Registers Altered:
38 # Load String Word Indexed
51 RT <- undefined([0]*64)
56 GPR(r)[i:i+7] <- MEM(EA, 1)
58 if i = 64 then i <- 32
62 Special Registers Altered:
66 # Store String Word Immediate
75 if NB = 0 then n <- 32
80 if i = 32 then r <- (r + 1) % 32
81 MEM(EA, 1) <- GPR(r)[i:i+7]
83 if i = 64 then i <- 32
87 Special Registers Altered:
91 # Store String Word Indexed
105 if i = 32 then r <- (r + 1) % 32
106 MEM(EA, 1) <- GPR(r)[i:i+7]
108 if i = 64 then i <- 32
112 Special Registers Altered:
116 <!-- Checked March 2021 -->