Project

General

Profile

Instruction Set Architecture » History » Version 2

Alexander Protsenko, 03/15/2023 06:59 PM

1 1 Alexander Protsenko
h1. Instruction Set Architecture
2
3
h3. Arithmetic (immediate)
4
5
### ADD (immediate). Add.
6
Specification: add, add_32
7
### SUB (immediate). Subtract.
8
Specification: sub, sub_32
9
### ADDS (immediate). Add and set flags.
10
Specification: adds, adds_32
11
### SUBS (immediate). Subtract and set flags.
12
Specification: subs, subs_32
13
### CMP (immediate). Compare.
14
Specification: cmp, cmp_32
15
### CMN (immediate). Compare negative.
16
Specification: cmn, cmn_32
17
18
[2]: mov_sp
19
[3]: mov_sp_32
20
21
h3. Logical (immediate)
22
23
### AND (immediate). Bitwise AND
24
Specification: and_bitmask, and_bitmask_32
25
### ANDS (immediate). Bitwise AND and set flags
26
Specification: ands_bitmask, ands_bitmask_32
27
### EOR (immediate). Bitwise exclusive OR
28
Specification: eor_bitmask, eor_bitmask_32
29
### ORR (immediate). Bitwise inclusive OR
30
Specification: orr_bitmask, orr_bitmask_32
31
### TST (immediate). TST Test bits
32
Specification: tst_bitmask, tst_bitmask_32
33
34
h3. Move (wide immediate)
35
36
### MOVZ. Move wide with zero
37
Specification: movz, movz_32
38
### MOVN. Move wide with NOT
39
Specification: movn, movn_32
40
### MOVK. Move wide with keep
41
Specification: movk, movk_32
42
43
h3. Move (immediate)
44
45
### MOV (wide immediate). Move (wide immediate)
46
Specification: mov_wide_imm, mov_wide_imm_32
47
### MOV (inverted wide immediate). Move (inverted wide immediate)
48
Specification: mov_inv_wide_imm, mov_inv_wide_imm_32
49 2 Alexander Protsenko
### MOV (bitmask immediate). Move (bitmask immediate)
50
Specification: mov_bitmask, mov_bitmask_32
51 1 Alexander Protsenko
52
[43]: adrp
53
[44]: adr
54
[45]: extr
55
[46]: extr_32
56
[47]: madd
57
[48]: madd_32
58
[49]: msub
59
[50]: msub_32
60
[51]: mneg
61
[52]: mneg_32
62
[53]: mul
63
[54]: mul_32
64
[55]: smaddl
65
[56]: smsubl
66
[57]: smnegl
67
[58]: smull
68
[59]: smulh
69
[60]: umaddl
70
[61]: umsubl
71
[62]: umnegl
72
[63]: umull
73
[64]: umulh
74
[65]: sdiv
75
[66]: sdiv_32
76
[67]: udiv
77
[68]: udiv_32
78
[69]: add_sh_reg
79
[70]: add_sh_reg_32
80
[71]: adds_sh_reg
81
[72]: adds_sh_reg_32
82
[73]: sub_sh_reg
83
[74]: sub_sh_reg_32
84
[75]: subs_sh_reg
85
[76]: subs_sh_reg_32
86
[77]: cmn_sh_reg
87
[78]: cmn_sh_reg_32
88
[79]: cmp_sh_reg
89
[80]: cmp_sh_reg_32
90
[81]: add_ex_reg
91
[82]: add_ex_reg_32
92
[83]: adds_ex_reg
93
[84]: adds_ex_reg_32
94
[85]: sub_ex_reg
95
[86]: sub_ex_reg_32
96
[87]: subs_ex_reg
97
[88]: subs_ex_reg_32
98
[89]: cmn_ex_reg
99
[90]: cmn_ex_reg_32
100
[91]: cmp_ex_reg
101
[92]: cmp_ex_reg_32
102
[93]: and_bitwise
103
[94]: and_bitwise_32
104
[95]: ands_bitwise
105
[96]: ands_bitwise_32
106
[97]: bic_bitwise
107
[98]: bic_bitwise_32
108
[99]: bics_bitwise
109
[100]: bics_bitwise_32
110
[101]: eon_bitwise
111
[102]: eon_bitwise_32
112
[103]: eor_bitwise
113
[104]: eor_bitwise_32
114
[105]: orr_bitwise
115
[106]: orr_bitwise_32
116
[107]: orn_bitwise
117
[108]: orn_bitwise_32
118
[109]: mvn_bitwise
119
[110]: mvn_bitwise_32
120
[111]: mov_reg
121
[112]: mov_reg_32
122
[113]: tst_bitwise
123
[114]: tst_bitwise_32
124
[115]: b
125
[116]: cbnz
126
[117]: cbnz_32
127
[118]: cbz
128
[119]: cbz_32
129
[120]: tbnz
130
[121]: tbz
131
[122]: b_imm
132
[123]: bl
133
[124]: blr
134
[125]: br
135
[126]: ret
136
[127]: ldr_postindex
137
[128]: str_postindex
138
[129]: ldxr
139
[130]: ldxr_32
140
[131]: ldxrb_32
141
[132]: ldxrh_32
142
[133]: ldxp
143
[134]: ldxp_32
144
[135]: stxr
145
[136]: stxr_32
146
[137]: stxrb_32
147
[138]: stxrh_32
148
[139]: stxp
149
[140]: stxp_32
150
[141]: ldar
151
[142]: ldar_32
152
[143]: ldarb
153
[144]: ldarh
154
[145]: stlr
155
[146]: stlr_32
156
[147]: stlrb
157
[148]: stlrh
158
[149]: ldaxr
159
[150]: ldaxr_32
160
[151]: ldaxrb_32
161
[152]: ldaxrh_32
162
[153]: ldaxp
163
[154]: ldaxp_32
164
[155]: stlxr
165
[156]: stlxr_32
166
[157]: stlxrb_32
167
[158]: stlxrh_32
168
[159]: stlxp
169
[160]: stlxp_32
170
[161]: svc
171
[162]: hvc
172
[163]: smc
173
[164]: eret
174
[165]: brk
175
[166]: hlt
176
[167]: dcps1
177
[168]: dcps2
178
[169]: dcps3
179
[170]: drps
180
[171]: mrs
181
[172]: msr
182
[173]: msr_dc
183
[174]: msr_ds
184
[175]: msr_ss
185
[176]: msr_uao
186
[177]: sys
187
[178]: sysl
188
[179]: ic
189
[180]: ic_reg
190
[181]: dc
191
[182]: at
192
[183]: tlbi
193
[184]: tlbi_reg
194
[185]: hint
195
[186]: nop
196
[187]: yield_op
197
[188]: wfe
198
[189]: wfi
199
[190]: sev
200
[191]: sevl
201
[192]: clrex
202
[193]: dsb
203
[194]: dmb
204
[195]: isb
205
206
[200]: psldr
207
[201]: psldr32