Added English Language description for stdupx instruction
[openpower-isa.git] / openpower / isa / pifixedstore.mdwn
1 <!-- This defines DRAFT instructions described in SV -->
2
3 <!-- This defines instructions that store from a register to RAM -->
4 <!-- Effective Address is always RA, and the usual EA is stored late in RA -->
5
6 # Store Byte with Update
7
8 D-Form
9
10 * stbup RS,D(RA)
11
12 Pseudo-code:
13
14 EA <- (RA) + EXTS(D)
15 ea <- (RA)
16 MEM(ea, 1) <- (RS)[XLEN-8:XLEN-1]
17 RA <- EA
18
19 Description:
20
21 Let the effective address (EA) be the sum (RA)+ D.
22 (RS)[56:63] are stored into the byte in storage addressed
23 by EA.
24
25 EA is placed into register RA.
26
27 If RA=0, the instruction form is invalid.
28
29 Special Registers Altered:
30
31 None
32
33 # Store Byte with Update Indexed
34
35 X-Form
36
37 * stbupx RS,RA,RB
38
39 Pseudo-code:
40
41 EA <- (RA) + (RB)
42 ea <- (RA)
43 MEM(ea, 1) <- (RS)[XLEN-8:XLEN-1]
44 RA <- EA
45
46 Description:
47
48 Let the effective address (EA) be the sum (RA)+ (RB).
49 (RS)[56:63] are stored into the byte in storage addressed
50 by EA.
51
52 EA is placed into register RA.
53
54 If RA=0, the instruction form is invalid.
55
56 Special Registers Altered:
57
58 None
59
60 # Store Halfword with Update
61
62 D-Form
63
64 * sthup RS,D(RA)
65
66 Pseudo-code:
67
68 EA <- (RA) + EXTS(D)
69 ea <- (RA)
70 MEM(ea, 2) <- (RS)[XLEN-16:XLEN-1]
71 RA <- EA
72
73 Description:
74
75 Let the effective address (EA) be the sum (RA|0)+ D.
76 (RS)[48:63] are stored into the halfword in storage
77 addressed by EA.
78
79 Special Registers Altered:
80
81 None
82
83 # Store Halfword with Update Indexed
84
85 X-Form
86
87 * sthupx RS,RA,RB
88
89 Pseudo-code:
90
91 EA <- (RA) + (RB)
92 ea <- (RA)
93 MEM(ea, 2) <- (RS)[XLEN-16:XLEN-1]
94 RA <- EA
95
96 Description:
97
98 Let the effective address (EA) be the sum (RA)+ (RB).
99 (RS)[56:63] are stored into the byte in storage addressed
100 by EA.
101
102 EA is placed into register RA.
103
104 If RA=0, the instruction form is invalid
105
106 Special Registers Altered:
107
108 None
109
110 # Store Word with Update
111
112 D-Form
113
114 * stwup RS,D(RA)
115
116 Pseudo-code:
117
118 EA <- (RA) + EXTS(D)
119 ea <- (RA)
120 MEM(ea, 4) <- (RS)[XLEN-32:XLEN-1]
121 RA <- EA
122
123 Description:
124
125 Let the effective address (EA) be the sum (RA)+ D.
126 (RS)[32:63] are stored into the word in storage addressed
127 by EA.
128
129 EA is placed into register RA.
130
131 If RA=0, the instruction form is invalid.
132
133 Special Registers Altered:
134
135 None
136
137 # Store Word with Update Indexed
138
139 X-Form
140
141 * stwupx RS,RA,RB
142
143 Pseudo-code:
144
145 EA <- (RA) + (RB)
146 ea <- (RA)
147 MEM(ea, 4) <- (RS)[XLEN-32:XLEN-1]
148 RA <- EA
149
150 Description:
151
152 Let the effective address (EA) be the sum (RA)+ (RB).
153 (RS)[32:63] are stored into the word in storage addressed
154 by EA.
155
156 EA is placed into register RA.
157
158 If RA=0, the instruction form is invalid.
159
160 Special Registers Altered:
161
162 None
163
164 # Store Doubleword with Update
165
166 DS-Form
167
168 * stdup RS,DS(RA)
169
170 Pseudo-code:
171
172 EA <- (RA) + EXTS(DS || 0b00)
173 ea <- (RA)
174 MEM(ea, 8) <- (RS)
175 RA <- EA
176
177 Description:
178
179 Let the effective address (EA) be the sum
180 (RA)+ (DS||0b00). (RS) is stored into the doubleword in
181 storage addressed by EA.
182
183 EA is placed into register RA.
184
185 If RA=0, the instruction form is invalid.
186
187 Special Registers Altered:
188
189 None
190
191 # Store Doubleword with Update Indexed
192
193 X-Form
194
195 * stdupx RS,RA,RB
196
197 Pseudo-code:
198
199 EA <- (RA) + (RB)
200 ea <- (RA)
201 MEM(ea, 8) <- (RS)
202 RA <- EA
203
204 Description:
205
206 Let the effective address (EA) be the sum (RA)+ (RB).
207 (RS) is stored into the doubleword in storage
208 addressed by EA.
209
210 EA is placed into register RA.
211
212 If RA=0, the instruction form is invalid.
213
214 Special Registers Altered:
215
216 None
217