Instruction Set Architecture » History » Version 17
Alexander Kamkin, 03/17/2023 03:25 PM
1 | 1 | Alexander Protsenko | h1. Instruction Set Architecture |
---|---|---|---|
2 | |||
3 | 13 | Alexander Protsenko | {font-weight:bold; background:#ddd}. | Section | Subsection | Specified instruction | |
4 | 14 | Alexander Protsenko | {background:#cfc}. |/6. "Data processing - immediate":https://forge.ispras.ru/projects/microtesk-arm-demo/wiki/Instruction_Set_Architecture#Data-processing-immediate | Arithmetic (immediate) | 12 | |
5 | 13 | Alexander Protsenko | {background:#cfc}. | Logical (immediate)| 10| |
6 | {background:#cfc}. | Move (wide immediate)| 6| |
||
7 | {background:#cfc}. | Move (immediate)| 6| |
||
8 | {background:#cfc}. | PC-relative address calculation| 2| |
||
9 | {background:#cfc}. | Extract register| 2| |
||
10 | 16 | Alexander Kamkin | {font-weight:bold; background:#ddd}. |\2. In total: | 38 | |
11 | 14 | Alexander Protsenko | {background:#cfc}. |/6. "Data processing - register":https://forge.ispras.ru/projects/microtesk-arm-demo/wiki/Instruction_Set_Architecture#Data-processing-register | Arithmetic (shifted register) | 12 | |
12 | 13 | Alexander Protsenko | {background:#cfc}. | Arithmetic (extending register) | 12 | |
13 | {background:#cfc}. | Logical (shifted register) | 20 | |
||
14 | {background:#cfc}. | Move (register) | 4 | |
||
15 | {background:#cfc}. | Multiply and divide | 18 | |
||
16 | {background:#cfc}. | Divide | 4 | |
||
17 | 16 | Alexander Kamkin | {font-weight:bold; background:#ddd}. |\2. In total: | 70 | |
18 | 15 | Alexander Kamkin | {background:#cfc}. |/8. "Branches, Exception generation, and System instructions":https://forge.ispras.ru/projects/microtesk-arm-demo/wiki/Instruction_Set_Architecture#Branches-Exception-generation-and-System-instructions | Conditional branch | 7 | |
19 | 13 | Alexander Protsenko | {background:#cfc}. | Unconditional branch (immediate) | 2 | |
20 | {background:#cfc}. | Unconditional branch (register) | 3 | |
||
21 | {background:#cfc}. | Exception generation and return | 10 | |
||
22 | {background:#cfc}. | System register instructions | 6 | |
||
23 | {background:#cfc}. | System instructions | 8 | |
||
24 | {background:#cfc}. | Hint instructions | 7 | |
||
25 | {background:#cfc}. | Barriers and CLREX instructions| 4 | |
||
26 | 16 | Alexander Kamkin | {font-weight:bold; background:#ddd}. |\2. In total: | 47 | |
27 | 14 | Alexander Protsenko | {background:#cfc}. |/3. "Loads and stores":https://forge.ispras.ru/projects/microtesk-arm-demo/wiki/Instruction_Set_Architecture#Loads-and-stores | Load/store register | 2 | |
28 | 13 | Alexander Protsenko | {background:#cfc}. | Load-Exclusive/Store-Exclusive | 12 | |
29 | {background:#cfc}. | Load-Acquire/Store-Release | 20 | |
||
30 | 16 | Alexander Kamkin | {font-weight:bold; background:#ddd}. |\2. In total: | 34 | |
31 | 12 | Alexander Protsenko | |
32 | 3 | Alexander Protsenko | h2. Data processing - immediate |
33 | |||
34 | 1 | Alexander Protsenko | h3. Arithmetic (immediate) |
35 | |||
36 | ### ADD (immediate). Add. |
||
37 | 17 | Alexander Kamkin | Specifications: add, add_32 |
38 | 1 | Alexander Protsenko | ### SUB (immediate). Subtract. |
39 | 17 | Alexander Kamkin | Specifications: sub, sub_32 |
40 | 1 | Alexander Protsenko | ### ADDS (immediate). Add and set flags. |
41 | 17 | Alexander Kamkin | Specifications: adds, adds_32 |
42 | 1 | Alexander Protsenko | ### SUBS (immediate). Subtract and set flags. |
43 | 17 | Alexander Kamkin | Specifications: subs, subs_32 |
44 | 1 | Alexander Protsenko | ### CMP (immediate). Compare. |
45 | 17 | Alexander Kamkin | Specifications: cmp, cmp_32 |
46 | 1 | Alexander Protsenko | ### CMN (immediate). Compare negative. |
47 | 17 | Alexander Kamkin | Specifications: cmn, cmn_32 |
48 | 1 | Alexander Protsenko | |
49 | 17 | Alexander Kamkin | +In total+: 12. |
50 | 12 | Alexander Protsenko | |
51 | 1 | Alexander Protsenko | h3. Logical (immediate) |
52 | |||
53 | ### AND (immediate). Bitwise AND |
||
54 | 17 | Alexander Kamkin | Specifications: and_bitmask, and_bitmask_32 |
55 | 1 | Alexander Protsenko | ### ANDS (immediate). Bitwise AND and set flags |
56 | 17 | Alexander Kamkin | Specifications: ands_bitmask, ands_bitmask_32 |
57 | 1 | Alexander Protsenko | ### EOR (immediate). Bitwise exclusive OR |
58 | 17 | Alexander Kamkin | Specifications: eor_bitmask, eor_bitmask_32 |
59 | 1 | Alexander Protsenko | ### ORR (immediate). Bitwise inclusive OR |
60 | 17 | Alexander Kamkin | Specifications: orr_bitmask, orr_bitmask_32 |
61 | 1 | Alexander Protsenko | ### TST (immediate). TST Test bits |
62 | 17 | Alexander Kamkin | Specifications: tst_bitmask, tst_bitmask_32 |
63 | 1 | Alexander Protsenko | |
64 | 17 | Alexander Kamkin | +In total+: 10. |
65 | 12 | Alexander Protsenko | |
66 | 1 | Alexander Protsenko | h3. Move (wide immediate) |
67 | |||
68 | ### MOVZ. Move wide with zero |
||
69 | 17 | Alexander Kamkin | Specifications: movz, movz_32 |
70 | 1 | Alexander Protsenko | ### MOVN. Move wide with NOT |
71 | 17 | Alexander Kamkin | Specifications: movn, movn_32 |
72 | 1 | Alexander Protsenko | ### MOVK. Move wide with keep |
73 | 17 | Alexander Kamkin | Specifications: movk, movk_32 |
74 | 1 | Alexander Protsenko | |
75 | 17 | Alexander Kamkin | +In total+: 6. |
76 | 12 | Alexander Protsenko | |
77 | 1 | Alexander Protsenko | h3. Move (immediate) |
78 | |||
79 | ### MOV (wide immediate). Move (wide immediate) |
||
80 | 17 | Alexander Kamkin | Specifications: mov_wide_imm, mov_wide_imm_32 |
81 | 1 | Alexander Protsenko | ### MOV (inverted wide immediate). Move (inverted wide immediate) |
82 | 17 | Alexander Kamkin | Specifications: mov_inv_wide_imm, mov_inv_wide_imm_32 |
83 | 2 | Alexander Protsenko | ### MOV (bitmask immediate). Move (bitmask immediate) |
84 | 17 | Alexander Kamkin | Specifications: mov_bitmask, mov_bitmask_32 |
85 | 1 | Alexander Protsenko | |
86 | 17 | Alexander Kamkin | +In total+: 6. |
87 | 12 | Alexander Protsenko | |
88 | 3 | Alexander Protsenko | h3. PC-relative address calculation |
89 | |||
90 | ### ADRP. Compute address of 4KB page at a PC-relative offset |
||
91 | 17 | Alexander Kamkin | Specifications: adrp |
92 | 3 | Alexander Protsenko | ### ADR. Compute address of label at a PC-relative offset. |
93 | 17 | Alexander Kamkin | Specifications: adr |
94 | 3 | Alexander Protsenko | |
95 | 17 | Alexander Kamkin | +In total+: 2. |
96 | 12 | Alexander Protsenko | |
97 | 3 | Alexander Protsenko | h3. Extract register |
98 | |||
99 | ### EXTR. Extract register from pair |
||
100 | 17 | Alexander Kamkin | Specifications: extr, extr_32 |
101 | 3 | Alexander Protsenko | |
102 | 17 | Alexander Kamkin | +In total+: 2. |
103 | 12 | Alexander Protsenko | |
104 | 3 | Alexander Protsenko | h2. Data processing - register |
105 | |||
106 | h3. Arithmetic (shifted register) |
||
107 | |||
108 | ### ADD (shifted register). Add |
||
109 | 17 | Alexander Kamkin | Specifications: add_sh_reg, add_sh_reg_32 |
110 | 3 | Alexander Protsenko | ### ADDS (shifted register). Add and set flags |
111 | 17 | Alexander Kamkin | Specifications: adds_sh_reg, adds_sh_reg_32 |
112 | 3 | Alexander Protsenko | ### SUB (shifted register). Subtract |
113 | 17 | Alexander Kamkin | Specifications: sub_sh_reg, sub_sh_reg_32 |
114 | 3 | Alexander Protsenko | ### SUBS (shifted register). Subtract and set flags |
115 | 17 | Alexander Kamkin | Specifications: subs_sh_reg, subs_sh_reg_32 |
116 | 3 | Alexander Protsenko | ### CMN (shifted register). Compare negative |
117 | 17 | Alexander Kamkin | Specifications: cmn_sh_reg, cmn_sh_reg_32 |
118 | 3 | Alexander Protsenko | ### CMP (shifted register). Compare |
119 | 17 | Alexander Kamkin | Specifications: cmp_sh_reg, cmp_sh_reg_32 |
120 | 3 | Alexander Protsenko | |
121 | 17 | Alexander Kamkin | +In total+: 12. |
122 | 12 | Alexander Protsenko | |
123 | 3 | Alexander Protsenko | h3. Arithmetic (extending register) |
124 | |||
125 | ### ADD (extended register). Add |
||
126 | 17 | Alexander Kamkin | Specifications: add_ex_reg, add_ex_reg_32 |
127 | 3 | Alexander Protsenko | ### ADDS (extended register). Add and set flags |
128 | 17 | Alexander Kamkin | Specifications: adds_ex_reg, adds_ex_reg_32 |
129 | 3 | Alexander Protsenko | ### SUB (extended register). Subtract |
130 | 17 | Alexander Kamkin | Specifications: sub_ex_reg, sub_ex_reg_32 |
131 | 3 | Alexander Protsenko | ### SUBS (extended register). Subtract and set flags |
132 | 17 | Alexander Kamkin | Specifications: subs_ex_reg, subs_ex_reg_32 |
133 | 3 | Alexander Protsenko | ### CMN (extended register). Compare negative |
134 | 17 | Alexander Kamkin | Specifications: cmn_ex_reg, cmn_ex_reg_32 |
135 | 3 | Alexander Protsenko | ### CMP (extended register). Compare |
136 | 17 | Alexander Kamkin | Specifications: cmp_ex_reg, cmp_ex_reg_32 |
137 | 1 | Alexander Protsenko | |
138 | 17 | Alexander Kamkin | +In total+: 12. |
139 | 12 | Alexander Protsenko | |
140 | 1 | Alexander Protsenko | h3. Logical (shifted register) |
141 | |||
142 | 4 | Alexander Protsenko | ### AND (shifted register). Bitwise AND |
143 | 17 | Alexander Kamkin | Specifications: and_bitwise, and_bitwise_32 |
144 | 4 | Alexander Protsenko | ### ANDS (shifted register). Bitwise AND and set flags |
145 | 17 | Alexander Kamkin | Specifications: ands_bitwise, ands_bitwise_32 |
146 | 4 | Alexander Protsenko | ### BIC (shifted register). Bitwise bit clear |
147 | 17 | Alexander Kamkin | Specifications: bic_bitwise, bic_bitwise_32 |
148 | 4 | Alexander Protsenko | ### BICS (shifted register). Bitwise bit clear and set flags |
149 | 17 | Alexander Kamkin | Specifications: bics_bitwise, bics_bitwise_32 |
150 | 4 | Alexander Protsenko | ### EON (shifted register). Bitwise exclusive OR NOT |
151 | 17 | Alexander Kamkin | Specifications: eon_bitwise, eon_bitwise_32 |
152 | 4 | Alexander Protsenko | ### EOR (shifted register). Bitwise exclusive OR |
153 | 17 | Alexander Kamkin | Specifications: eor_bitwise, eor_bitwise_32 |
154 | 4 | Alexander Protsenko | ### ORR (shifted register). Bitwise inclusive OR |
155 | 17 | Alexander Kamkin | Specifications: orr_bitwise, orr_bitwise_32 |
156 | 4 | Alexander Protsenko | ### MVN. Bitwise NOT |
157 | 17 | Alexander Kamkin | Specifications: mvn_bitwise, mvn_bitwise_32 |
158 | 4 | Alexander Protsenko | ### ORN (shifted register). Bitwise inclusive OR NOT |
159 | 17 | Alexander Kamkin | Specifications: orn_bitwise, orn_bitwise_32 |
160 | 4 | Alexander Protsenko | ### TST (shifted register). Test bits |
161 | 17 | Alexander Kamkin | Specifications: tst_bitwise, tst_bitwise_32 |
162 | 4 | Alexander Protsenko | |
163 | 17 | Alexander Kamkin | +In total+: 20. |
164 | 12 | Alexander Protsenko | |
165 | 4 | Alexander Protsenko | h3. Move (register) |
166 | |||
167 | ### MOV (register). Move register |
||
168 | 17 | Alexander Kamkin | Specifications: mov_reg, mov_reg_32 |
169 | 4 | Alexander Protsenko | ### MOV (to/from SP). Move register to SP or move SP to register |
170 | 17 | Alexander Kamkin | Specifications: mov_sp, mov_sp_32 |
171 | 3 | Alexander Protsenko | |
172 | 17 | Alexander Kamkin | +In total+: 4. |
173 | 12 | Alexander Protsenko | |
174 | 5 | Alexander Protsenko | h3. Multiply and divide |
175 | |||
176 | 6 | Alexander Protsenko | ### MADD. Multiply-add |
177 | 17 | Alexander Kamkin | Specifications: madd, madd_32 |
178 | 6 | Alexander Protsenko | ### MSUB. Multiply-subtract |
179 | 17 | Alexander Kamkin | Specifications: msub, msub_32 |
180 | 6 | Alexander Protsenko | ### MNEG. Multiply-negate |
181 | 17 | Alexander Kamkin | Specifications: mneg, mneg_32 |
182 | 6 | Alexander Protsenko | ### MUL. Multiply |
183 | 17 | Alexander Kamkin | Specifications: mul, mul_32 |
184 | 6 | Alexander Protsenko | ### SMADDL. Signed multiply-add long |
185 | 17 | Alexander Kamkin | Specifications: smaddl |
186 | 6 | Alexander Protsenko | ### SMSUBL. Signed multiply-subtract long |
187 | 17 | Alexander Kamkin | Specifications: smsubl |
188 | 6 | Alexander Protsenko | ### SMNEGL. Signed multiply-negate long |
189 | 17 | Alexander Kamkin | Specifications: smnegl |
190 | 6 | Alexander Protsenko | ### SMULL. Signed multiply long |
191 | 17 | Alexander Kamkin | Specifications: smull |
192 | 6 | Alexander Protsenko | ### SMULH. Signed multiply high |
193 | 17 | Alexander Kamkin | Specifications: smulh |
194 | 6 | Alexander Protsenko | ### UMADDL. Unsigned multiply-add long |
195 | 17 | Alexander Kamkin | Specifications: umaddl |
196 | 6 | Alexander Protsenko | ### UMSUBL. Unsigned multiply-subtract long |
197 | 17 | Alexander Kamkin | Specifications: umsubl |
198 | 6 | Alexander Protsenko | ### UMNEGL. Unsigned multiply-negate long |
199 | 17 | Alexander Kamkin | Specifications: umnegl |
200 | 6 | Alexander Protsenko | ### UMULL. Unsigned multiply long |
201 | 17 | Alexander Kamkin | Specifications: umull |
202 | 6 | Alexander Protsenko | ### UMULH. Unsigned multiply high |
203 | 17 | Alexander Kamkin | Specifications: umulh |
204 | 5 | Alexander Protsenko | |
205 | 17 | Alexander Kamkin | +In total+: 18. |
206 | 12 | Alexander Protsenko | |
207 | 5 | Alexander Protsenko | h3. Divide |
208 | |||
209 | 6 | Alexander Protsenko | ### SDIV. Signed divide |
210 | 17 | Alexander Kamkin | Specifications: sdiv, sdiv_32 |
211 | 5 | Alexander Protsenko | ### UDIV. Unsigned divide |
212 | 17 | Alexander Kamkin | Specifications: udiv, udiv_32 |
213 | 5 | Alexander Protsenko | |
214 | 17 | Alexander Kamkin | +In total+: 4. |
215 | 12 | Alexander Protsenko | |
216 | 15 | Alexander Kamkin | h2. Branches, Exception generation, and System instructions |
217 | 1 | Alexander Protsenko | |
218 | 7 | Alexander Protsenko | h3. Conditional Branch |
219 | |||
220 | ### B.cond. Branch conditionally |
||
221 | 17 | Alexander Kamkin | Specifications: b |
222 | 7 | Alexander Protsenko | ### CBNZ. Compare and branch if nonzero |
223 | 17 | Alexander Kamkin | Specifications: cbnz, cbnz_32 |
224 | 7 | Alexander Protsenko | ### CBZ. Compare and branch if zero |
225 | 17 | Alexander Kamkin | Specifications: cbz, cbz_32 |
226 | 7 | Alexander Protsenko | ### TBNZ. Test bit and branch if nonzero |
227 | 17 | Alexander Kamkin | Specifications: tbnz |
228 | 7 | Alexander Protsenko | ### TBZ. Test bit and branch if zero |
229 | 17 | Alexander Kamkin | Specifications: tbz |
230 | 7 | Alexander Protsenko | |
231 | 17 | Alexander Kamkin | +In total+: 7. |
232 | 12 | Alexander Protsenko | |
233 | 7 | Alexander Protsenko | h3. Unconditional branch (immediate) |
234 | |||
235 | ### B. Branch unconditionally |
||
236 | 17 | Alexander Kamkin | Specifications: b_imm |
237 | 7 | Alexander Protsenko | ### BL. Branch with link |
238 | 17 | Alexander Kamkin | Specifications: bl |
239 | 7 | Alexander Protsenko | |
240 | 17 | Alexander Kamkin | +In total+: 2. |
241 | 12 | Alexander Protsenko | |
242 | 7 | Alexander Protsenko | h3. Unconditional branch (register) |
243 | |||
244 | ### BLR. Branch with link to register |
||
245 | 17 | Alexander Kamkin | Specifications: blr |
246 | 7 | Alexander Protsenko | ### BR. Branch to register |
247 | 17 | Alexander Kamkin | Specifications: br |
248 | 7 | Alexander Protsenko | ### RET. Return from subroutine |
249 | 17 | Alexander Kamkin | Specifications: ret |
250 | 7 | Alexander Protsenko | |
251 | 17 | Alexander Kamkin | +In total+: 3. |
252 | 12 | Alexander Protsenko | |
253 | 7 | Alexander Protsenko | h3. Exception generation and return |
254 | |||
255 | 15 | Alexander Kamkin | *Exception generation* |
256 | 8 | Alexander Protsenko | |
257 | 7 | Alexander Protsenko | ### BRK. Breakpoint Instruction |
258 | 17 | Alexander Kamkin | Specifications: brk |
259 | 7 | Alexander Protsenko | ### HLT. Halt Instruction HLT |
260 | 17 | Alexander Kamkin | Specifications: hlt |
261 | 7 | Alexander Protsenko | ### HVC. Generate exception targeting Exception level 2 HVC |
262 | 17 | Alexander Kamkin | Specifications: hvc |
263 | 7 | Alexander Protsenko | ### SMC. Generate exception targeting Exception level 3 SMC |
264 | 17 | Alexander Kamkin | Specifications: smc |
265 | 7 | Alexander Protsenko | ### SVC. Generate exception targeting Exception level 1 |
266 | 17 | Alexander Kamkin | Specifications: svc |
267 | 8 | Alexander Protsenko | |
268 | 17 | Alexander Kamkin | +In total+: 5. |
269 | 12 | Alexander Protsenko | |
270 | 8 | Alexander Protsenko | *Exception return* |
271 | |||
272 | 1 | Alexander Protsenko | ### ERET. Exception return using current ELR and SPSR |
273 | 17 | Alexander Kamkin | Specifications: eret |
274 | 1 | Alexander Protsenko | |
275 | 17 | Alexander Kamkin | +In total+: 1. |
276 | 12 | Alexander Protsenko | |
277 | 8 | Alexander Protsenko | *Debug state* |
278 | 1 | Alexander Protsenko | |
279 | 8 | Alexander Protsenko | ### DCPS1. Debug switch to Exception level 1 DCPS1 |
280 | 17 | Alexander Kamkin | Specifications: dcps1 |
281 | 8 | Alexander Protsenko | ### DCPS2. Debug switch to Exception level 2 DCPS2 |
282 | 17 | Alexander Kamkin | Specifications: dcps2 |
283 | 8 | Alexander Protsenko | ### DCPS3. Debug switch to Exception level 3 DCPS3 |
284 | 17 | Alexander Kamkin | Specifications: dcps3 |
285 | 8 | Alexander Protsenko | ### DRPS. Debug restore PE state |
286 | 17 | Alexander Kamkin | Specifications: drps |
287 | 8 | Alexander Protsenko | |
288 | 17 | Alexander Kamkin | +In total+: 4. |
289 | 12 | Alexander Protsenko | |
290 | 8 | Alexander Protsenko | h3. System register instructions |
291 | |||
292 | ### MRS. Move System register to general-purpose register MRS |
||
293 | 17 | Alexander Kamkin | Specifications: msr |
294 | 8 | Alexander Protsenko | ### MSR. Move general-purpose register to System register MSR (register) |
295 | 17 | Alexander Kamkin | Specifications: mrs |
296 | 8 | Alexander Protsenko | ### MSR. Move immediate to PE state field MSR (immediate) |
297 | 17 | Alexander Kamkin | Specifications: msr_dc, msr_ds, msr_ss, msr_uao |
298 | 8 | Alexander Protsenko | |
299 | 17 | Alexander Kamkin | +In total+: 6. |
300 | 12 | Alexander Protsenko | |
301 | 8 | Alexander Protsenko | h3. System instructions |
302 | |||
303 | ### SYS. System instruction |
||
304 | 17 | Alexander Kamkin | Specifications: sys |
305 | 8 | Alexander Protsenko | ### SYSL. System instruction with result |
306 | 17 | Alexander Kamkin | Specifications: sysl |
307 | 8 | Alexander Protsenko | ### IC. Instruction cache maintenance |
308 | 17 | Alexander Kamkin | Specifications: ic, ic_reg |
309 | 8 | Alexander Protsenko | ### DC. Data cache maintenance |
310 | 17 | Alexander Kamkin | Specifications: dc |
311 | 8 | Alexander Protsenko | ### AT. Address translation |
312 | 17 | Alexander Kamkin | Specifications: at |
313 | 8 | Alexander Protsenko | ### TLBI. TLB Invalidate |
314 | 17 | Alexander Kamkin | Specifications: tlbi, tlbi_reg |
315 | 8 | Alexander Protsenko | |
316 | 17 | Alexander Kamkin | +In total+: 8. |
317 | 12 | Alexander Protsenko | |
318 | 8 | Alexander Protsenko | h3. Hint instructions |
319 | |||
320 | ### NOP. No operation |
||
321 | 17 | Alexander Kamkin | Specifications: nop |
322 | 1 | Alexander Protsenko | ### YIELD. Yield hint |
323 | 17 | Alexander Kamkin | Specifications: yield_op |
324 | 1 | Alexander Protsenko | ### WFE. Wait for event |
325 | 17 | Alexander Kamkin | Specifications: wfe |
326 | 1 | Alexander Protsenko | ### WFI. Wait for interrupt |
327 | 17 | Alexander Kamkin | Specifications: wfi |
328 | 1 | Alexander Protsenko | ### SEV. Send event |
329 | 17 | Alexander Kamkin | Specifications: sev |
330 | 1 | Alexander Protsenko | ### SEVL. Send event local |
331 | 17 | Alexander Kamkin | Specifications: sevl |
332 | 1 | Alexander Protsenko | ### HINT. Unallocated hint |
333 | 17 | Alexander Kamkin | Specifications: hint |
334 | 8 | Alexander Protsenko | |
335 | 17 | Alexander Kamkin | +In total+: 7. |
336 | 12 | Alexander Protsenko | |
337 | 9 | Alexander Protsenko | h3. Barriers and CLREX instructions |
338 | 7 | Alexander Protsenko | |
339 | 9 | Alexander Protsenko | ### CLREX. Clear Exclusives monitor |
340 | 17 | Alexander Kamkin | Specifications: clrex |
341 | 9 | Alexander Protsenko | ### DMB. Data memory barrier |
342 | 17 | Alexander Kamkin | Specifications: dmb |
343 | 9 | Alexander Protsenko | ### DSB. Data synchronization barrier |
344 | 17 | Alexander Kamkin | Specifications: dsb |
345 | 9 | Alexander Protsenko | ### ISB. Instruction synchronization barrier |
346 | 17 | Alexander Kamkin | Specifications: isb |
347 | 9 | Alexander Protsenko | |
348 | 17 | Alexander Kamkin | +In total+: 4. |
349 | 12 | Alexander Protsenko | |
350 | 9 | Alexander Protsenko | h2. Loads and stores |
351 | |||
352 | h3. Load/store register |
||
353 | 1 | Alexander Protsenko | |
354 | 11 | Alexander Protsenko | ### LDR. Load register (immediate offset) |
355 | 17 | Alexander Kamkin | Specifications: ldr_postindex |
356 | 11 | Alexander Protsenko | ### STR. Store register (immediate offset) |
357 | 17 | Alexander Kamkin | Specifications: str_postindex |
358 | 11 | Alexander Protsenko | |
359 | 17 | Alexander Kamkin | +In total+: 2. |
360 | 12 | Alexander Protsenko | |
361 | 11 | Alexander Protsenko | h3. Load-Exclusive/Store-Exclusive |
362 | |||
363 | ### LDXR. Load Exclusive register |
||
364 | 17 | Alexander Kamkin | Specifications: ldxr, ldxr_32 |
365 | 11 | Alexander Protsenko | ### LDXRB. Load Exclusive byte |
366 | 17 | Alexander Kamkin | Specifications: ldxrb_32 |
367 | 11 | Alexander Protsenko | ### LDXRH. Load Exclusive halfword |
368 | 17 | Alexander Kamkin | Specifications: ldxrh_32 |
369 | 11 | Alexander Protsenko | ### LDXP. Load Exclusive pair |
370 | 17 | Alexander Kamkin | Specifications: ldxp, ldxp_32 |
371 | 11 | Alexander Protsenko | ### STXR. Store Exclusive register |
372 | 17 | Alexander Kamkin | Specifications: stxr, stxr_32 |
373 | 11 | Alexander Protsenko | ### STXRB. Store Exclusive byte |
374 | 17 | Alexander Kamkin | Specifications: stxrb_32 |
375 | 11 | Alexander Protsenko | ### STXRH. Store Exclusive halfword |
376 | 17 | Alexander Kamkin | Specifications: stxrh_32 |
377 | 11 | Alexander Protsenko | ### STXP. Store Exclusive pair |
378 | 17 | Alexander Kamkin | Specifications: stxp, stxp_32 |
379 | 11 | Alexander Protsenko | |
380 | 17 | Alexander Kamkin | +In total+: 12. |
381 | 12 | Alexander Protsenko | |
382 | 11 | Alexander Protsenko | h3. Load-Acquire/Store-Release |
383 | |||
384 | *Non-exclusive Load-Acquire and Store-Release instructions* |
||
385 | |||
386 | ### LDAR. Load-Acquire Register |
||
387 | 17 | Alexander Kamkin | Specifications: ldar, ldar_32 |
388 | 11 | Alexander Protsenko | ### LDARB. Load-Acquire Byte |
389 | 17 | Alexander Kamkin | Specifications: ldarb |
390 | 11 | Alexander Protsenko | ### LDARH. Load-Acquire Halfword |
391 | 17 | Alexander Kamkin | Specifications: ldarh |
392 | 11 | Alexander Protsenko | ### STLR. Store-Release Register |
393 | 17 | Alexander Kamkin | Specifications: stlr, stlr_32 |
394 | 11 | Alexander Protsenko | ### STLRB. Store-Release Byte |
395 | 17 | Alexander Kamkin | Specifications: stlrb |
396 | 11 | Alexander Protsenko | ### STLRH. Store-Release Halfword |
397 | 17 | Alexander Kamkin | Specifications: stlrh |
398 | 11 | Alexander Protsenko | |
399 | 17 | Alexander Kamkin | +In total+: 8. |
400 | 12 | Alexander Protsenko | |
401 | 11 | Alexander Protsenko | *Exclusive Load-Acquire and Store-Release instructions* |
402 | |||
403 | ### LDAXR. Load-Acquire Exclusive register |
||
404 | 17 | Alexander Kamkin | Specifications: ldaxr, ldaxr_32 |
405 | 11 | Alexander Protsenko | ### LDAXRB. Load-Acquire Exclusive byte |
406 | 17 | Alexander Kamkin | Specifications: ldaxrb_32 |
407 | 11 | Alexander Protsenko | ### LDAXRH. Load-Acquire Exclusive halfword |
408 | 17 | Alexander Kamkin | Specifications: ldaxrh_32 |
409 | 11 | Alexander Protsenko | ### LDAXP. Load-Acquire Exclusive pair |
410 | 17 | Alexander Kamkin | Specifications: ldaxp, ldaxp_32 |
411 | 11 | Alexander Protsenko | ### STLXR. Store-Release Exclusive register |
412 | 17 | Alexander Kamkin | Specifications: stlxr, stlxr_32 |
413 | 11 | Alexander Protsenko | ### STLXRB. Store-Release Exclusive byte |
414 | 17 | Alexander Kamkin | Specifications: stlxrb_32 |
415 | 11 | Alexander Protsenko | ### STLXRH. Store-Release Exclusive halfword |
416 | 17 | Alexander Kamkin | Specifications: stlxrh_32 |
417 | 11 | Alexander Protsenko | ### STLXP. Store-Release Exclusive pair |
418 | 17 | Alexander Kamkin | Specifications: stlxp, stlxp_32 |
419 | 11 | Alexander Protsenko | |
420 | 17 | Alexander Kamkin | +In total+: 12. |
421 | 1 | Alexander Protsenko | |
422 | 10 | Alexander Protsenko | h2. Pseudo instructions |
423 | 1 | Alexander Protsenko | |
424 | 10 | Alexander Protsenko | psldr, psldr32 |
425 | 12 | Alexander Protsenko | |
426 | 17 | Alexander Kamkin | +In total+: 2. |