1 /* Macros for DPI ops, auto-generated from template */
2 
3 
4 /* mov/mvn */
5 
6 /* Rd := imm8 ROR rot */
7 #define ARM_MOV_REG_IMM_COND(p, reg, imm8, rot, cond) \
8 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_MOV, reg, 0, imm8, rot, cond)
9 #define ARM_MOV_REG_IMM(p, reg, imm8, rot) \
10 	ARM_MOV_REG_IMM_COND(p, reg, imm8, rot, ARMCOND_AL)
11 /* S */
12 #define ARM_MOVS_REG_IMM_COND(p, reg, imm8, rot, cond) \
13 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_MOV, reg, 0, imm8, rot, cond)
14 #define ARM_MOVS_REG_IMM(p, reg, imm8, rot) \
15 	ARM_MOVS_REG_IMM_COND(p, reg, imm8, rot, ARMCOND_AL)
16 
17 #ifndef ARM_NOIASM
18 #define _MOV_REG_IMM_COND(reg, imm8, rot, cond) \
19 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_MOV, reg, 0, imm8, rot, cond)
20 #define _MOV_REG_IMM(reg, imm8, rot) \
21 	_MOV_REG_IMM_COND(reg, imm8, rot, ARMCOND_AL)
22 /* S */
23 #define _MOVS_REG_IMM_COND(reg, imm8, rot, cond) \
24 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_MOV, reg, 0, imm8, rot, cond)
25 #define _MOVS_REG_IMM(reg, imm8, rot) \
26 	_MOVS_REG_IMM_COND(reg, imm8, rot, ARMCOND_AL)
27 #endif
28 
29 
30 /* Rd := imm8 */
31 #define ARM_MOV_REG_IMM8_COND(p, reg, imm8, cond) \
32 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_MOV, reg, 0, imm8, 0, cond)
33 #define ARM_MOV_REG_IMM8(p, reg, imm8) \
34 	ARM_MOV_REG_IMM8_COND(p, reg, imm8, ARMCOND_AL)
35 /* S */
36 #define ARM_MOVS_REG_IMM8_COND(p, reg, imm8, cond) \
37 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_MOV, reg, 0, imm8, 0, cond)
38 #define ARM_MOVS_REG_IMM8(p, reg, imm8) \
39 	ARM_MOVS_REG_IMM8_COND(p, reg, imm8, ARMCOND_AL)
40 
41 #ifndef ARM_NOIASM
42 #define _MOV_REG_IMM8_COND(reg, imm8, cond) \
43 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_MOV, reg, 0, imm8, 0, cond)
44 #define _MOV_REG_IMM8(reg, imm8) \
45 	_MOV_REG_IMM8_COND(reg, imm8, ARMCOND_AL)
46 /* S */
47 #define _MOVS_REG_IMM8_COND(reg, imm8, cond) \
48 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_MOV, reg, 0, imm8, 0, cond)
49 #define _MOVS_REG_IMM8(reg, imm8) \
50 	_MOVS_REG_IMM8_COND(reg, imm8, ARMCOND_AL)
51 #endif
52 
53 
54 /* Rd := Rm */
55 #define ARM_MOV_REG_REG_COND(p, rd, rm, cond) \
56 	ARM_DPIOP_REG_REG_COND(p, ARMOP_MOV, rd, 0, rm, cond)
57 #define ARM_MOV_REG_REG(p, rd, rm) \
58 	ARM_MOV_REG_REG_COND(p, rd, rm, ARMCOND_AL)
59 /* S */
60 #define ARM_MOVS_REG_REG_COND(p, rd, rm, cond) \
61 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_MOV, rd, 0, rm, cond)
62 #define ARM_MOVS_REG_REG(p, rd, rm) \
63 	ARM_MOVS_REG_REG_COND(p, rd, rm, ARMCOND_AL)
64 
65 #ifndef ARM_NOIASM
66 #define _MOV_REG_REG_COND(rd, rm, cond) \
67 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_MOV, rd, 0, rm, cond)
68 #define _MOV_REG_REG(rd, rm) \
69 	_MOV_REG_REG_COND(rd, rm, ARMCOND_AL)
70 /* S */
71 #define _MOVS_REG_REG_COND(rd, rm, cond) \
72 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_MOV, rd, 0, rm, cond)
73 #define _MOVS_REG_REG(rd, rm) \
74 	_MOVS_REG_REG_COND(rd, rm, ARMCOND_AL)
75 #endif
76 
77 
78 /* Rd := Rm <shift_type> imm_shift */
79 #define ARM_MOV_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, cond) \
80 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_MOV, rd, 0, rm, shift_type, imm_shift, cond)
81 #define ARM_MOV_REG_IMMSHIFT(p, rd, rm, shift_type, imm_shift) \
82 	ARM_MOV_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, ARMCOND_AL)
83 /* S */
84 #define ARM_MOVS_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, cond) \
85 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_MOV, rd, 0, rm, shift_type, imm_shift, cond)
86 #define ARM_MOVS_REG_IMMSHIFT(p, rd, rm, shift_type, imm_shift) \
87 	ARM_MOVS_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, ARMCOND_AL)
88 
89 #ifndef ARM_NOIASM
90 #define _MOV_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, cond) \
91 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_MOV, rd, 0, rm, shift_type, imm_shift, cond)
92 #define _MOV_REG_IMMSHIFT(rd, rm, shift_type, imm_shift) \
93 	_MOV_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, ARMCOND_AL)
94 /* S */
95 #define _MOVS_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, cond) \
96 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_MOV, rd, 0, rm, shift_type, imm_shift, cond)
97 #define _MOVS_REG_IMMSHIFT(rd, rm, shift_type, imm_shift) \
98 	_MOVS_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, ARMCOND_AL)
99 #endif
100 
101 
102 
103 /* Rd := (Rm <shift_type> Rs) */
104 #define ARM_MOV_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, cond) \
105 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_MOV, rd, 0, rm, shift_type, rs, cond)
106 #define ARM_MOV_REG_REGSHIFT(p, rd, rm, shift_type, rs) \
107 	ARM_MOV_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, ARMCOND_AL)
108 /* S */
109 #define ARM_MOVS_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, cond) \
110 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_MOV, rd, 0, rm, shift_type, rs, cond)
111 #define ARM_MOVS_REG_REGSHIFT(p, rd, rm, shift_type, rs) \
112 	ARM_MOVS_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, ARMCOND_AL)
113 
114 #ifndef ARM_NOIASM
115 #define _MOV_REG_REGSHIFT_COND(rd, rm, shift_type, rs, cond) \
116 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_MOV, rd, 0, rm, shift_type, rs, cond)
117 #define _MOV_REG_REGSHIFT(rd, rm, shift_type, rs) \
118 	_MOV_REG_REGSHIFT_COND(rd, rm, shift_type, rs, ARMCOND_AL)
119 /* S */
120 #define _MOVS_REG_REGSHIFT_COND(rd, rm, shift_type, rs, cond) \
121 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_MOV, rd, 0, rm, shift_type, rs, cond)
122 #define _MOVS_REG_REGSHIFT(rd, rm, shift_type, rs) \
123 	_MOVS_REG_REGSHIFT_COND(rd, rm, shift_type, rs, ARMCOND_AL)
124 #endif
125 
126 
127 /* Rd := imm8 ROR rot */
128 #define ARM_MVN_REG_IMM_COND(p, reg, imm8, rot, cond) \
129 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_MVN, reg, 0, imm8, rot, cond)
130 #define ARM_MVN_REG_IMM(p, reg, imm8, rot) \
131 	ARM_MVN_REG_IMM_COND(p, reg, imm8, rot, ARMCOND_AL)
132 /* S */
133 #define ARM_MVNS_REG_IMM_COND(p, reg, imm8, rot, cond) \
134 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_MVN, reg, 0, imm8, rot, cond)
135 #define ARM_MVNS_REG_IMM(p, reg, imm8, rot) \
136 	ARM_MVNS_REG_IMM_COND(p, reg, imm8, rot, ARMCOND_AL)
137 
138 #ifndef ARM_NOIASM
139 #define _MVN_REG_IMM_COND(reg, imm8, rot, cond) \
140 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_MVN, reg, 0, imm8, rot, cond)
141 #define _MVN_REG_IMM(reg, imm8, rot) \
142 	_MVN_REG_IMM_COND(reg, imm8, rot, ARMCOND_AL)
143 /* S */
144 #define _MVNS_REG_IMM_COND(reg, imm8, rot, cond) \
145 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_MVN, reg, 0, imm8, rot, cond)
146 #define _MVNS_REG_IMM(reg, imm8, rot) \
147 	_MVNS_REG_IMM_COND(reg, imm8, rot, ARMCOND_AL)
148 #endif
149 
150 
151 /* Rd := imm8 */
152 #define ARM_MVN_REG_IMM8_COND(p, reg, imm8, cond) \
153 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_MVN, reg, 0, imm8, 0, cond)
154 #define ARM_MVN_REG_IMM8(p, reg, imm8) \
155 	ARM_MVN_REG_IMM8_COND(p, reg, imm8, ARMCOND_AL)
156 /* S */
157 #define ARM_MVNS_REG_IMM8_COND(p, reg, imm8, cond) \
158 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_MVN, reg, 0, imm8, 0, cond)
159 #define ARM_MVNS_REG_IMM8(p, reg, imm8) \
160 	ARM_MVNS_REG_IMM8_COND(p, reg, imm8, ARMCOND_AL)
161 
162 #ifndef ARM_NOIASM
163 #define _MVN_REG_IMM8_COND(reg, imm8, cond) \
164 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_MVN, reg, 0, imm8, 0, cond)
165 #define _MVN_REG_IMM8(reg, imm8) \
166 	_MVN_REG_IMM8_COND(reg, imm8, ARMCOND_AL)
167 /* S */
168 #define _MVNS_REG_IMM8_COND(reg, imm8, cond) \
169 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_MVN, reg, 0, imm8, 0, cond)
170 #define _MVNS_REG_IMM8(reg, imm8) \
171 	_MVNS_REG_IMM8_COND(reg, imm8, ARMCOND_AL)
172 #endif
173 
174 
175 /* Rd := Rm */
176 #define ARM_MVN_REG_REG_COND(p, rd, rm, cond) \
177 	ARM_DPIOP_REG_REG_COND(p, ARMOP_MVN, rd, 0, rm, cond)
178 #define ARM_MVN_REG_REG(p, rd, rm) \
179 	ARM_MVN_REG_REG_COND(p, rd, rm, ARMCOND_AL)
180 /* S */
181 #define ARM_MVNS_REG_REG_COND(p, rd, rm, cond) \
182 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_MVN, rd, 0, rm, cond)
183 #define ARM_MVNS_REG_REG(p, rd, rm) \
184 	ARM_MVNS_REG_REG_COND(p, rd, rm, ARMCOND_AL)
185 
186 #ifndef ARM_NOIASM
187 #define _MVN_REG_REG_COND(rd, rm, cond) \
188 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_MVN, rd, 0, rm, cond)
189 #define _MVN_REG_REG(rd, rm) \
190 	_MVN_REG_REG_COND(rd, rm, ARMCOND_AL)
191 /* S */
192 #define _MVNS_REG_REG_COND(rd, rm, cond) \
193 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_MVN, rd, 0, rm, cond)
194 #define _MVNS_REG_REG(rd, rm) \
195 	_MVNS_REG_REG_COND(rd, rm, ARMCOND_AL)
196 #endif
197 
198 
199 /* Rd := Rm <shift_type> imm_shift */
200 #define ARM_MVN_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, cond) \
201 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_MVN, rd, 0, rm, shift_type, imm_shift, cond)
202 #define ARM_MVN_REG_IMMSHIFT(p, rd, rm, shift_type, imm_shift) \
203 	ARM_MVN_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, ARMCOND_AL)
204 /* S */
205 #define ARM_MVNS_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, cond) \
206 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_MVN, rd, 0, rm, shift_type, imm_shift, cond)
207 #define ARM_MVNS_REG_IMMSHIFT(p, rd, rm, shift_type, imm_shift) \
208 	ARM_MVNS_REG_IMMSHIFT_COND(p, rd, rm, shift_type, imm_shift, ARMCOND_AL)
209 
210 #ifndef ARM_NOIASM
211 #define _MVN_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, cond) \
212 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_MVN, rd, 0, rm, shift_type, imm_shift, cond)
213 #define _MVN_REG_IMMSHIFT(rd, rm, shift_type, imm_shift) \
214 	_MVN_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, ARMCOND_AL)
215 /* S */
216 #define _MVNS_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, cond) \
217 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_MVN, rd, 0, rm, shift_type, imm_shift, cond)
218 #define _MVNS_REG_IMMSHIFT(rd, rm, shift_type, imm_shift) \
219 	_MVNS_REG_IMMSHIFT_COND(rd, rm, shift_type, imm_shift, ARMCOND_AL)
220 #endif
221 
222 
223 
224 /* Rd := (Rm <shift_type> Rs) */
225 #define ARM_MVN_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, cond) \
226 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_MVN, rd, 0, rm, shift_type, rs, cond)
227 #define ARM_MVN_REG_REGSHIFT(p, rd, rm, shift_type, rs) \
228 	ARM_MVN_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, ARMCOND_AL)
229 /* S */
230 #define ARM_MVNS_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, cond) \
231 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_MVN, rd, 0, rm, shift_type, rs, cond)
232 #define ARM_MVNS_REG_REGSHIFT(p, rd, rm, shift_type, rs) \
233 	ARM_MVNS_REG_REGSHIFT_COND(p, rd, rm, shift_type, rs, ARMCOND_AL)
234 
235 #ifndef ARM_NOIASM
236 #define _MVN_REG_REGSHIFT_COND(rd, rm, shift_type, rs, cond) \
237 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_MVN, rd, 0, rm, shift_type, rs, cond)
238 #define _MVN_REG_REGSHIFT(rd, rm, shift_type, rs) \
239 	_MVN_REG_REGSHIFT_COND(rd, rm, shift_type, rs, ARMCOND_AL)
240 /* S */
241 #define _MVNS_REG_REGSHIFT_COND(rd, rm, shift_type, rs, cond) \
242 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_MVN, rd, 0, rm, shift_type, rs, cond)
243 #define _MVNS_REG_REGSHIFT(rd, rm, shift_type, rs) \
244 	_MVNS_REG_REGSHIFT_COND(rd, rm, shift_type, rs, ARMCOND_AL)
245 #endif
246 
247 
248 
249 /* DPIs, arithmetic and logical */
250 
251 /* -- AND -- */
252 
253 /* Rd := Rn AND (imm8 ROR rot) ; rot is power of 2 */
254 #define ARM_AND_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
255 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_AND, rd, rn, imm8, rot, cond)
256 #define ARM_AND_REG_IMM(p, rd, rn, imm8, rot) \
257 	ARM_AND_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
258 #define ARM_ANDS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
259 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_AND, rd, rn, imm8, rot, cond)
260 #define ARM_ANDS_REG_IMM(p, rd, rn, imm8, rot) \
261 	ARM_ANDS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
262 
263 #ifndef ARM_NOIASM
264 #define _AND_REG_IMM_COND(rd, rn, imm8, rot, cond) \
265 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_AND, rd, rn, imm8, rot, cond)
266 #define _AND_REG_IMM(rd, rn, imm8, rot) \
267 	_AND_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
268 #define _ANDS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
269 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_AND, rd, rn, imm8, rot, cond)
270 #define _ANDS_REG_IMM(rd, rn, imm8, rot) \
271 	_ANDS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
272 #endif
273 
274 
275 /* Rd := Rn AND imm8 */
276 #define ARM_AND_REG_IMM8_COND(p, rd, rn, imm8, cond) \
277 	ARM_AND_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
278 #define ARM_AND_REG_IMM8(p, rd, rn, imm8) \
279 	ARM_AND_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
280 #define ARM_ANDS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
281 	ARM_ANDS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
282 #define ARM_ANDS_REG_IMM8(p, rd, rn, imm8) \
283 	ARM_ANDS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
284 
285 #ifndef ARM_NOIASM
286 #define _AND_REG_IMM8_COND(rd, rn, imm8, cond) \
287 	_AND_REG_IMM_COND(rd, rn, imm8, 0, cond)
288 #define _AND_REG_IMM8(rd, rn, imm8) \
289 	_AND_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
290 #define _ANDS_REG_IMM8_COND(rd, rn, imm8, cond) \
291 	_ANDS_REG_IMM_COND(rd, rn, imm8, 0, cond)
292 #define _ANDS_REG_IMM8(rd, rn, imm8) \
293 	_ANDS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
294 #endif
295 
296 
297 /* Rd := Rn AND Rm */
298 #define ARM_AND_REG_REG_COND(p, rd, rn, rm, cond) \
299 	ARM_DPIOP_REG_REG_COND(p, ARMOP_AND, rd, rn, rm, cond)
300 #define ARM_AND_REG_REG(p, rd, rn, rm) \
301 	ARM_AND_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
302 #define ARM_ANDS_REG_REG_COND(p, rd, rn, rm, cond) \
303 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_AND, rd, rn, rm, cond)
304 #define ARM_ANDS_REG_REG(p, rd, rn, rm) \
305 	ARM_ANDS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
306 
307 #ifndef ARM_NOIASM
308 #define _AND_REG_REG_COND(rd, rn, rm, cond) \
309 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_AND, rd, rn, rm, cond)
310 #define _AND_REG_REG(rd, rn, rm) \
311 	_AND_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
312 #define _ANDS_REG_REG_COND(rd, rn, rm, cond) \
313 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_AND, rd, rn, rm, cond)
314 #define _ANDS_REG_REG(rd, rn, rm) \
315 	_ANDS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
316 #endif
317 
318 
319 /* Rd := Rn AND (Rm <shift_type> imm_shift) */
320 #define ARM_AND_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
321 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_AND, rd, rn, rm, shift_type, imm_shift, cond)
322 #define ARM_AND_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
323 	ARM_AND_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
324 #define ARM_ANDS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
325 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_AND, rd, rn, rm, shift_type, imm_shift, cond)
326 #define ARM_ANDS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
327 	ARM_ANDS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
328 
329 #ifndef ARM_NOIASM
330 #define _AND_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
331 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_AND, rd, rn, rm, shift_type, imm_shift, cond)
332 #define _AND_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
333 	_AND_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
334 #define _ANDS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
335 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_AND, rd, rn, rm, shift_type, imm_shift, cond)
336 #define _ANDS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
337 	_ANDS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
338 #endif
339 
340 
341 /* Rd := Rn AND (Rm <shift_type> Rs) */
342 #define ARM_AND_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
343 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_AND, rd, rn, rm, shift_t, rs, cond)
344 #define ARM_AND_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
345 	ARM_AND_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
346 #define ARM_ANDS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
347 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_AND, rd, rn, rm, shift_t, rs, cond)
348 #define ARM_ANDS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
349 	ARM_ANDS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
350 
351 #ifndef ARM_NOIASM
352 #define _AND_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
353 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_AND, rd, rn, rm, shift_t, rs, cond)
354 #define _AND_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
355 	_AND_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
356 #define _ANDS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
357 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_AND, rd, rn, rm, shift_t, rs, cond)
358 #define _ANDS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
359 	_ANDS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
360 #endif
361 
362 
363 /* -- EOR -- */
364 
365 /* Rd := Rn EOR (imm8 ROR rot) ; rot is power of 2 */
366 #define ARM_EOR_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
367 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_EOR, rd, rn, imm8, rot, cond)
368 #define ARM_EOR_REG_IMM(p, rd, rn, imm8, rot) \
369 	ARM_EOR_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
370 #define ARM_EORS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
371 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_EOR, rd, rn, imm8, rot, cond)
372 #define ARM_EORS_REG_IMM(p, rd, rn, imm8, rot) \
373 	ARM_EORS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
374 
375 #ifndef ARM_NOIASM
376 #define _EOR_REG_IMM_COND(rd, rn, imm8, rot, cond) \
377 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_EOR, rd, rn, imm8, rot, cond)
378 #define _EOR_REG_IMM(rd, rn, imm8, rot) \
379 	_EOR_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
380 #define _EORS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
381 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_EOR, rd, rn, imm8, rot, cond)
382 #define _EORS_REG_IMM(rd, rn, imm8, rot) \
383 	_EORS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
384 #endif
385 
386 
387 /* Rd := Rn EOR imm8 */
388 #define ARM_EOR_REG_IMM8_COND(p, rd, rn, imm8, cond) \
389 	ARM_EOR_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
390 #define ARM_EOR_REG_IMM8(p, rd, rn, imm8) \
391 	ARM_EOR_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
392 #define ARM_EORS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
393 	ARM_EORS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
394 #define ARM_EORS_REG_IMM8(p, rd, rn, imm8) \
395 	ARM_EORS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
396 
397 #ifndef ARM_NOIASM
398 #define _EOR_REG_IMM8_COND(rd, rn, imm8, cond) \
399 	_EOR_REG_IMM_COND(rd, rn, imm8, 0, cond)
400 #define _EOR_REG_IMM8(rd, rn, imm8) \
401 	_EOR_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
402 #define _EORS_REG_IMM8_COND(rd, rn, imm8, cond) \
403 	_EORS_REG_IMM_COND(rd, rn, imm8, 0, cond)
404 #define _EORS_REG_IMM8(rd, rn, imm8) \
405 	_EORS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
406 #endif
407 
408 
409 /* Rd := Rn EOR Rm */
410 #define ARM_EOR_REG_REG_COND(p, rd, rn, rm, cond) \
411 	ARM_DPIOP_REG_REG_COND(p, ARMOP_EOR, rd, rn, rm, cond)
412 #define ARM_EOR_REG_REG(p, rd, rn, rm) \
413 	ARM_EOR_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
414 #define ARM_EORS_REG_REG_COND(p, rd, rn, rm, cond) \
415 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_EOR, rd, rn, rm, cond)
416 #define ARM_EORS_REG_REG(p, rd, rn, rm) \
417 	ARM_EORS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
418 
419 #ifndef ARM_NOIASM
420 #define _EOR_REG_REG_COND(rd, rn, rm, cond) \
421 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_EOR, rd, rn, rm, cond)
422 #define _EOR_REG_REG(rd, rn, rm) \
423 	_EOR_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
424 #define _EORS_REG_REG_COND(rd, rn, rm, cond) \
425 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_EOR, rd, rn, rm, cond)
426 #define _EORS_REG_REG(rd, rn, rm) \
427 	_EORS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
428 #endif
429 
430 
431 /* Rd := Rn EOR (Rm <shift_type> imm_shift) */
432 #define ARM_EOR_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
433 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_EOR, rd, rn, rm, shift_type, imm_shift, cond)
434 #define ARM_EOR_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
435 	ARM_EOR_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
436 #define ARM_EORS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
437 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_EOR, rd, rn, rm, shift_type, imm_shift, cond)
438 #define ARM_EORS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
439 	ARM_EORS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
440 
441 #ifndef ARM_NOIASM
442 #define _EOR_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
443 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_EOR, rd, rn, rm, shift_type, imm_shift, cond)
444 #define _EOR_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
445 	_EOR_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
446 #define _EORS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
447 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_EOR, rd, rn, rm, shift_type, imm_shift, cond)
448 #define _EORS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
449 	_EORS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
450 #endif
451 
452 
453 /* Rd := Rn EOR (Rm <shift_type> Rs) */
454 #define ARM_EOR_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
455 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_EOR, rd, rn, rm, shift_t, rs, cond)
456 #define ARM_EOR_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
457 	ARM_EOR_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
458 #define ARM_EORS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
459 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_EOR, rd, rn, rm, shift_t, rs, cond)
460 #define ARM_EORS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
461 	ARM_EORS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
462 
463 #ifndef ARM_NOIASM
464 #define _EOR_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
465 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_EOR, rd, rn, rm, shift_t, rs, cond)
466 #define _EOR_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
467 	_EOR_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
468 #define _EORS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
469 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_EOR, rd, rn, rm, shift_t, rs, cond)
470 #define _EORS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
471 	_EORS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
472 #endif
473 
474 
475 /* -- SUB -- */
476 
477 /* Rd := Rn SUB (imm8 ROR rot) ; rot is power of 2 */
478 #define ARM_SUB_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
479 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_SUB, rd, rn, imm8, rot, cond)
480 #define ARM_SUB_REG_IMM(p, rd, rn, imm8, rot) \
481 	ARM_SUB_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
482 #define ARM_SUBS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
483 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_SUB, rd, rn, imm8, rot, cond)
484 #define ARM_SUBS_REG_IMM(p, rd, rn, imm8, rot) \
485 	ARM_SUBS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
486 
487 #ifndef ARM_NOIASM
488 #define _SUB_REG_IMM_COND(rd, rn, imm8, rot, cond) \
489 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_SUB, rd, rn, imm8, rot, cond)
490 #define _SUB_REG_IMM(rd, rn, imm8, rot) \
491 	_SUB_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
492 #define _SUBS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
493 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_SUB, rd, rn, imm8, rot, cond)
494 #define _SUBS_REG_IMM(rd, rn, imm8, rot) \
495 	_SUBS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
496 #endif
497 
498 
499 /* Rd := Rn SUB imm8 */
500 #define ARM_SUB_REG_IMM8_COND(p, rd, rn, imm8, cond) \
501 	ARM_SUB_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
502 #define ARM_SUB_REG_IMM8(p, rd, rn, imm8) \
503 	ARM_SUB_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
504 #define ARM_SUBS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
505 	ARM_SUBS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
506 #define ARM_SUBS_REG_IMM8(p, rd, rn, imm8) \
507 	ARM_SUBS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
508 
509 #ifndef ARM_NOIASM
510 #define _SUB_REG_IMM8_COND(rd, rn, imm8, cond) \
511 	_SUB_REG_IMM_COND(rd, rn, imm8, 0, cond)
512 #define _SUB_REG_IMM8(rd, rn, imm8) \
513 	_SUB_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
514 #define _SUBS_REG_IMM8_COND(rd, rn, imm8, cond) \
515 	_SUBS_REG_IMM_COND(rd, rn, imm8, 0, cond)
516 #define _SUBS_REG_IMM8(rd, rn, imm8) \
517 	_SUBS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
518 #endif
519 
520 
521 /* Rd := Rn SUB Rm */
522 #define ARM_SUB_REG_REG_COND(p, rd, rn, rm, cond) \
523 	ARM_DPIOP_REG_REG_COND(p, ARMOP_SUB, rd, rn, rm, cond)
524 #define ARM_SUB_REG_REG(p, rd, rn, rm) \
525 	ARM_SUB_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
526 #define ARM_SUBS_REG_REG_COND(p, rd, rn, rm, cond) \
527 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_SUB, rd, rn, rm, cond)
528 #define ARM_SUBS_REG_REG(p, rd, rn, rm) \
529 	ARM_SUBS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
530 
531 #ifndef ARM_NOIASM
532 #define _SUB_REG_REG_COND(rd, rn, rm, cond) \
533 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_SUB, rd, rn, rm, cond)
534 #define _SUB_REG_REG(rd, rn, rm) \
535 	_SUB_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
536 #define _SUBS_REG_REG_COND(rd, rn, rm, cond) \
537 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_SUB, rd, rn, rm, cond)
538 #define _SUBS_REG_REG(rd, rn, rm) \
539 	_SUBS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
540 #endif
541 
542 
543 /* Rd := Rn SUB (Rm <shift_type> imm_shift) */
544 #define ARM_SUB_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
545 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_SUB, rd, rn, rm, shift_type, imm_shift, cond)
546 #define ARM_SUB_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
547 	ARM_SUB_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
548 #define ARM_SUBS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
549 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_SUB, rd, rn, rm, shift_type, imm_shift, cond)
550 #define ARM_SUBS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
551 	ARM_SUBS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
552 
553 #ifndef ARM_NOIASM
554 #define _SUB_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
555 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_SUB, rd, rn, rm, shift_type, imm_shift, cond)
556 #define _SUB_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
557 	_SUB_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
558 #define _SUBS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
559 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_SUB, rd, rn, rm, shift_type, imm_shift, cond)
560 #define _SUBS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
561 	_SUBS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
562 #endif
563 
564 
565 /* Rd := Rn SUB (Rm <shift_type> Rs) */
566 #define ARM_SUB_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
567 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_SUB, rd, rn, rm, shift_t, rs, cond)
568 #define ARM_SUB_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
569 	ARM_SUB_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
570 #define ARM_SUBS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
571 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_SUB, rd, rn, rm, shift_t, rs, cond)
572 #define ARM_SUBS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
573 	ARM_SUBS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
574 
575 #ifndef ARM_NOIASM
576 #define _SUB_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
577 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_SUB, rd, rn, rm, shift_t, rs, cond)
578 #define _SUB_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
579 	_SUB_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
580 #define _SUBS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
581 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_SUB, rd, rn, rm, shift_t, rs, cond)
582 #define _SUBS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
583 	_SUBS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
584 #endif
585 
586 
587 /* -- RSB -- */
588 
589 /* Rd := Rn RSB (imm8 ROR rot) ; rot is power of 2 */
590 #define ARM_RSB_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
591 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_RSB, rd, rn, imm8, rot, cond)
592 #define ARM_RSB_REG_IMM(p, rd, rn, imm8, rot) \
593 	ARM_RSB_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
594 #define ARM_RSBS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
595 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_RSB, rd, rn, imm8, rot, cond)
596 #define ARM_RSBS_REG_IMM(p, rd, rn, imm8, rot) \
597 	ARM_RSBS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
598 
599 #ifndef ARM_NOIASM
600 #define _RSB_REG_IMM_COND(rd, rn, imm8, rot, cond) \
601 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_RSB, rd, rn, imm8, rot, cond)
602 #define _RSB_REG_IMM(rd, rn, imm8, rot) \
603 	_RSB_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
604 #define _RSBS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
605 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_RSB, rd, rn, imm8, rot, cond)
606 #define _RSBS_REG_IMM(rd, rn, imm8, rot) \
607 	_RSBS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
608 #endif
609 
610 
611 /* Rd := Rn RSB imm8 */
612 #define ARM_RSB_REG_IMM8_COND(p, rd, rn, imm8, cond) \
613 	ARM_RSB_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
614 #define ARM_RSB_REG_IMM8(p, rd, rn, imm8) \
615 	ARM_RSB_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
616 #define ARM_RSBS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
617 	ARM_RSBS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
618 #define ARM_RSBS_REG_IMM8(p, rd, rn, imm8) \
619 	ARM_RSBS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
620 
621 #ifndef ARM_NOIASM
622 #define _RSB_REG_IMM8_COND(rd, rn, imm8, cond) \
623 	_RSB_REG_IMM_COND(rd, rn, imm8, 0, cond)
624 #define _RSB_REG_IMM8(rd, rn, imm8) \
625 	_RSB_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
626 #define _RSBS_REG_IMM8_COND(rd, rn, imm8, cond) \
627 	_RSBS_REG_IMM_COND(rd, rn, imm8, 0, cond)
628 #define _RSBS_REG_IMM8(rd, rn, imm8) \
629 	_RSBS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
630 #endif
631 
632 
633 /* Rd := Rn RSB Rm */
634 #define ARM_RSB_REG_REG_COND(p, rd, rn, rm, cond) \
635 	ARM_DPIOP_REG_REG_COND(p, ARMOP_RSB, rd, rn, rm, cond)
636 #define ARM_RSB_REG_REG(p, rd, rn, rm) \
637 	ARM_RSB_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
638 #define ARM_RSBS_REG_REG_COND(p, rd, rn, rm, cond) \
639 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_RSB, rd, rn, rm, cond)
640 #define ARM_RSBS_REG_REG(p, rd, rn, rm) \
641 	ARM_RSBS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
642 
643 #ifndef ARM_NOIASM
644 #define _RSB_REG_REG_COND(rd, rn, rm, cond) \
645 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_RSB, rd, rn, rm, cond)
646 #define _RSB_REG_REG(rd, rn, rm) \
647 	_RSB_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
648 #define _RSBS_REG_REG_COND(rd, rn, rm, cond) \
649 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_RSB, rd, rn, rm, cond)
650 #define _RSBS_REG_REG(rd, rn, rm) \
651 	_RSBS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
652 #endif
653 
654 
655 /* Rd := Rn RSB (Rm <shift_type> imm_shift) */
656 #define ARM_RSB_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
657 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_RSB, rd, rn, rm, shift_type, imm_shift, cond)
658 #define ARM_RSB_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
659 	ARM_RSB_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
660 #define ARM_RSBS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
661 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_RSB, rd, rn, rm, shift_type, imm_shift, cond)
662 #define ARM_RSBS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
663 	ARM_RSBS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
664 
665 #ifndef ARM_NOIASM
666 #define _RSB_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
667 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_RSB, rd, rn, rm, shift_type, imm_shift, cond)
668 #define _RSB_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
669 	_RSB_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
670 #define _RSBS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
671 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_RSB, rd, rn, rm, shift_type, imm_shift, cond)
672 #define _RSBS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
673 	_RSBS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
674 #endif
675 
676 
677 /* Rd := Rn RSB (Rm <shift_type> Rs) */
678 #define ARM_RSB_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
679 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_RSB, rd, rn, rm, shift_t, rs, cond)
680 #define ARM_RSB_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
681 	ARM_RSB_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
682 #define ARM_RSBS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
683 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_RSB, rd, rn, rm, shift_t, rs, cond)
684 #define ARM_RSBS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
685 	ARM_RSBS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
686 
687 #ifndef ARM_NOIASM
688 #define _RSB_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
689 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_RSB, rd, rn, rm, shift_t, rs, cond)
690 #define _RSB_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
691 	_RSB_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
692 #define _RSBS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
693 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_RSB, rd, rn, rm, shift_t, rs, cond)
694 #define _RSBS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
695 	_RSBS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
696 #endif
697 
698 
699 /* -- ADD -- */
700 
701 /* Rd := Rn ADD (imm8 ROR rot) ; rot is power of 2 */
702 #define ARM_ADD_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
703 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_ADD, rd, rn, imm8, rot, cond)
704 #define ARM_ADD_REG_IMM(p, rd, rn, imm8, rot) \
705 	ARM_ADD_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
706 #define ARM_ADDS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
707 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_ADD, rd, rn, imm8, rot, cond)
708 #define ARM_ADDS_REG_IMM(p, rd, rn, imm8, rot) \
709 	ARM_ADDS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
710 
711 #ifndef ARM_NOIASM
712 #define _ADD_REG_IMM_COND(rd, rn, imm8, rot, cond) \
713 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_ADD, rd, rn, imm8, rot, cond)
714 #define _ADD_REG_IMM(rd, rn, imm8, rot) \
715 	_ADD_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
716 #define _ADDS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
717 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_ADD, rd, rn, imm8, rot, cond)
718 #define _ADDS_REG_IMM(rd, rn, imm8, rot) \
719 	_ADDS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
720 #endif
721 
722 
723 /* Rd := Rn ADD imm8 */
724 #define ARM_ADD_REG_IMM8_COND(p, rd, rn, imm8, cond) \
725 	ARM_ADD_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
726 #define ARM_ADD_REG_IMM8(p, rd, rn, imm8) \
727 	ARM_ADD_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
728 #define ARM_ADDS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
729 	ARM_ADDS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
730 #define ARM_ADDS_REG_IMM8(p, rd, rn, imm8) \
731 	ARM_ADDS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
732 
733 #ifndef ARM_NOIASM
734 #define _ADD_REG_IMM8_COND(rd, rn, imm8, cond) \
735 	_ADD_REG_IMM_COND(rd, rn, imm8, 0, cond)
736 #define _ADD_REG_IMM8(rd, rn, imm8) \
737 	_ADD_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
738 #define _ADDS_REG_IMM8_COND(rd, rn, imm8, cond) \
739 	_ADDS_REG_IMM_COND(rd, rn, imm8, 0, cond)
740 #define _ADDS_REG_IMM8(rd, rn, imm8) \
741 	_ADDS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
742 #endif
743 
744 
745 /* Rd := Rn ADD Rm */
746 #define ARM_ADD_REG_REG_COND(p, rd, rn, rm, cond) \
747 	ARM_DPIOP_REG_REG_COND(p, ARMOP_ADD, rd, rn, rm, cond)
748 #define ARM_ADD_REG_REG(p, rd, rn, rm) \
749 	ARM_ADD_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
750 #define ARM_ADDS_REG_REG_COND(p, rd, rn, rm, cond) \
751 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_ADD, rd, rn, rm, cond)
752 #define ARM_ADDS_REG_REG(p, rd, rn, rm) \
753 	ARM_ADDS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
754 
755 #ifndef ARM_NOIASM
756 #define _ADD_REG_REG_COND(rd, rn, rm, cond) \
757 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_ADD, rd, rn, rm, cond)
758 #define _ADD_REG_REG(rd, rn, rm) \
759 	_ADD_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
760 #define _ADDS_REG_REG_COND(rd, rn, rm, cond) \
761 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_ADD, rd, rn, rm, cond)
762 #define _ADDS_REG_REG(rd, rn, rm) \
763 	_ADDS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
764 #endif
765 
766 
767 /* Rd := Rn ADD (Rm <shift_type> imm_shift) */
768 #define ARM_ADD_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
769 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_ADD, rd, rn, rm, shift_type, imm_shift, cond)
770 #define ARM_ADD_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
771 	ARM_ADD_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
772 #define ARM_ADDS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
773 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_ADD, rd, rn, rm, shift_type, imm_shift, cond)
774 #define ARM_ADDS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
775 	ARM_ADDS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
776 
777 #ifndef ARM_NOIASM
778 #define _ADD_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
779 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_ADD, rd, rn, rm, shift_type, imm_shift, cond)
780 #define _ADD_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
781 	_ADD_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
782 #define _ADDS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
783 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_ADD, rd, rn, rm, shift_type, imm_shift, cond)
784 #define _ADDS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
785 	_ADDS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
786 #endif
787 
788 
789 /* Rd := Rn ADD (Rm <shift_type> Rs) */
790 #define ARM_ADD_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
791 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_ADD, rd, rn, rm, shift_t, rs, cond)
792 #define ARM_ADD_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
793 	ARM_ADD_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
794 #define ARM_ADDS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
795 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_ADD, rd, rn, rm, shift_t, rs, cond)
796 #define ARM_ADDS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
797 	ARM_ADDS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
798 
799 #ifndef ARM_NOIASM
800 #define _ADD_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
801 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_ADD, rd, rn, rm, shift_t, rs, cond)
802 #define _ADD_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
803 	_ADD_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
804 #define _ADDS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
805 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_ADD, rd, rn, rm, shift_t, rs, cond)
806 #define _ADDS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
807 	_ADDS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
808 #endif
809 
810 
811 /* -- ADC -- */
812 
813 /* Rd := Rn ADC (imm8 ROR rot) ; rot is power of 2 */
814 #define ARM_ADC_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
815 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_ADC, rd, rn, imm8, rot, cond)
816 #define ARM_ADC_REG_IMM(p, rd, rn, imm8, rot) \
817 	ARM_ADC_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
818 #define ARM_ADCS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
819 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_ADC, rd, rn, imm8, rot, cond)
820 #define ARM_ADCS_REG_IMM(p, rd, rn, imm8, rot) \
821 	ARM_ADCS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
822 
823 #ifndef ARM_NOIASM
824 #define _ADC_REG_IMM_COND(rd, rn, imm8, rot, cond) \
825 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_ADC, rd, rn, imm8, rot, cond)
826 #define _ADC_REG_IMM(rd, rn, imm8, rot) \
827 	_ADC_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
828 #define _ADCS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
829 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_ADC, rd, rn, imm8, rot, cond)
830 #define _ADCS_REG_IMM(rd, rn, imm8, rot) \
831 	_ADCS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
832 #endif
833 
834 
835 /* Rd := Rn ADC imm8 */
836 #define ARM_ADC_REG_IMM8_COND(p, rd, rn, imm8, cond) \
837 	ARM_ADC_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
838 #define ARM_ADC_REG_IMM8(p, rd, rn, imm8) \
839 	ARM_ADC_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
840 #define ARM_ADCS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
841 	ARM_ADCS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
842 #define ARM_ADCS_REG_IMM8(p, rd, rn, imm8) \
843 	ARM_ADCS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
844 
845 #ifndef ARM_NOIASM
846 #define _ADC_REG_IMM8_COND(rd, rn, imm8, cond) \
847 	_ADC_REG_IMM_COND(rd, rn, imm8, 0, cond)
848 #define _ADC_REG_IMM8(rd, rn, imm8) \
849 	_ADC_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
850 #define _ADCS_REG_IMM8_COND(rd, rn, imm8, cond) \
851 	_ADCS_REG_IMM_COND(rd, rn, imm8, 0, cond)
852 #define _ADCS_REG_IMM8(rd, rn, imm8) \
853 	_ADCS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
854 #endif
855 
856 
857 /* Rd := Rn ADC Rm */
858 #define ARM_ADC_REG_REG_COND(p, rd, rn, rm, cond) \
859 	ARM_DPIOP_REG_REG_COND(p, ARMOP_ADC, rd, rn, rm, cond)
860 #define ARM_ADC_REG_REG(p, rd, rn, rm) \
861 	ARM_ADC_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
862 #define ARM_ADCS_REG_REG_COND(p, rd, rn, rm, cond) \
863 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_ADC, rd, rn, rm, cond)
864 #define ARM_ADCS_REG_REG(p, rd, rn, rm) \
865 	ARM_ADCS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
866 
867 #ifndef ARM_NOIASM
868 #define _ADC_REG_REG_COND(rd, rn, rm, cond) \
869 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_ADC, rd, rn, rm, cond)
870 #define _ADC_REG_REG(rd, rn, rm) \
871 	_ADC_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
872 #define _ADCS_REG_REG_COND(rd, rn, rm, cond) \
873 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_ADC, rd, rn, rm, cond)
874 #define _ADCS_REG_REG(rd, rn, rm) \
875 	_ADCS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
876 #endif
877 
878 
879 /* Rd := Rn ADC (Rm <shift_type> imm_shift) */
880 #define ARM_ADC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
881 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_ADC, rd, rn, rm, shift_type, imm_shift, cond)
882 #define ARM_ADC_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
883 	ARM_ADC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
884 #define ARM_ADCS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
885 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_ADC, rd, rn, rm, shift_type, imm_shift, cond)
886 #define ARM_ADCS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
887 	ARM_ADCS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
888 
889 #ifndef ARM_NOIASM
890 #define _ADC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
891 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_ADC, rd, rn, rm, shift_type, imm_shift, cond)
892 #define _ADC_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
893 	_ADC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
894 #define _ADCS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
895 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_ADC, rd, rn, rm, shift_type, imm_shift, cond)
896 #define _ADCS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
897 	_ADCS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
898 #endif
899 
900 
901 /* Rd := Rn ADC (Rm <shift_type> Rs) */
902 #define ARM_ADC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
903 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_ADC, rd, rn, rm, shift_t, rs, cond)
904 #define ARM_ADC_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
905 	ARM_ADC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
906 #define ARM_ADCS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
907 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_ADC, rd, rn, rm, shift_t, rs, cond)
908 #define ARM_ADCS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
909 	ARM_ADCS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
910 
911 #ifndef ARM_NOIASM
912 #define _ADC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
913 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_ADC, rd, rn, rm, shift_t, rs, cond)
914 #define _ADC_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
915 	_ADC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
916 #define _ADCS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
917 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_ADC, rd, rn, rm, shift_t, rs, cond)
918 #define _ADCS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
919 	_ADCS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
920 #endif
921 
922 
923 /* -- SBC -- */
924 
925 /* Rd := Rn SBC (imm8 ROR rot) ; rot is power of 2 */
926 #define ARM_SBC_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
927 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_SBC, rd, rn, imm8, rot, cond)
928 #define ARM_SBC_REG_IMM(p, rd, rn, imm8, rot) \
929 	ARM_SBC_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
930 #define ARM_SBCS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
931 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_SBC, rd, rn, imm8, rot, cond)
932 #define ARM_SBCS_REG_IMM(p, rd, rn, imm8, rot) \
933 	ARM_SBCS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
934 
935 #ifndef ARM_NOIASM
936 #define _SBC_REG_IMM_COND(rd, rn, imm8, rot, cond) \
937 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_SBC, rd, rn, imm8, rot, cond)
938 #define _SBC_REG_IMM(rd, rn, imm8, rot) \
939 	_SBC_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
940 #define _SBCS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
941 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_SBC, rd, rn, imm8, rot, cond)
942 #define _SBCS_REG_IMM(rd, rn, imm8, rot) \
943 	_SBCS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
944 #endif
945 
946 
947 /* Rd := Rn SBC imm8 */
948 #define ARM_SBC_REG_IMM8_COND(p, rd, rn, imm8, cond) \
949 	ARM_SBC_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
950 #define ARM_SBC_REG_IMM8(p, rd, rn, imm8) \
951 	ARM_SBC_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
952 #define ARM_SBCS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
953 	ARM_SBCS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
954 #define ARM_SBCS_REG_IMM8(p, rd, rn, imm8) \
955 	ARM_SBCS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
956 
957 #ifndef ARM_NOIASM
958 #define _SBC_REG_IMM8_COND(rd, rn, imm8, cond) \
959 	_SBC_REG_IMM_COND(rd, rn, imm8, 0, cond)
960 #define _SBC_REG_IMM8(rd, rn, imm8) \
961 	_SBC_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
962 #define _SBCS_REG_IMM8_COND(rd, rn, imm8, cond) \
963 	_SBCS_REG_IMM_COND(rd, rn, imm8, 0, cond)
964 #define _SBCS_REG_IMM8(rd, rn, imm8) \
965 	_SBCS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
966 #endif
967 
968 
969 /* Rd := Rn SBC Rm */
970 #define ARM_SBC_REG_REG_COND(p, rd, rn, rm, cond) \
971 	ARM_DPIOP_REG_REG_COND(p, ARMOP_SBC, rd, rn, rm, cond)
972 #define ARM_SBC_REG_REG(p, rd, rn, rm) \
973 	ARM_SBC_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
974 #define ARM_SBCS_REG_REG_COND(p, rd, rn, rm, cond) \
975 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_SBC, rd, rn, rm, cond)
976 #define ARM_SBCS_REG_REG(p, rd, rn, rm) \
977 	ARM_SBCS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
978 
979 #ifndef ARM_NOIASM
980 #define _SBC_REG_REG_COND(rd, rn, rm, cond) \
981 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_SBC, rd, rn, rm, cond)
982 #define _SBC_REG_REG(rd, rn, rm) \
983 	_SBC_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
984 #define _SBCS_REG_REG_COND(rd, rn, rm, cond) \
985 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_SBC, rd, rn, rm, cond)
986 #define _SBCS_REG_REG(rd, rn, rm) \
987 	_SBCS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
988 #endif
989 
990 
991 /* Rd := Rn SBC (Rm <shift_type> imm_shift) */
992 #define ARM_SBC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
993 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_SBC, rd, rn, rm, shift_type, imm_shift, cond)
994 #define ARM_SBC_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
995 	ARM_SBC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
996 #define ARM_SBCS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
997 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_SBC, rd, rn, rm, shift_type, imm_shift, cond)
998 #define ARM_SBCS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
999 	ARM_SBCS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1000 
1001 #ifndef ARM_NOIASM
1002 #define _SBC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1003 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_SBC, rd, rn, rm, shift_type, imm_shift, cond)
1004 #define _SBC_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1005 	_SBC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1006 #define _SBCS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1007 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_SBC, rd, rn, rm, shift_type, imm_shift, cond)
1008 #define _SBCS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1009 	_SBCS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1010 #endif
1011 
1012 
1013 /* Rd := Rn SBC (Rm <shift_type> Rs) */
1014 #define ARM_SBC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1015 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_SBC, rd, rn, rm, shift_t, rs, cond)
1016 #define ARM_SBC_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1017 	ARM_SBC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1018 #define ARM_SBCS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1019 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_SBC, rd, rn, rm, shift_t, rs, cond)
1020 #define ARM_SBCS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1021 	ARM_SBCS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1022 
1023 #ifndef ARM_NOIASM
1024 #define _SBC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1025 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_SBC, rd, rn, rm, shift_t, rs, cond)
1026 #define _SBC_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1027 	_SBC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1028 #define _SBCS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1029 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_SBC, rd, rn, rm, shift_t, rs, cond)
1030 #define _SBCS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1031 	_SBCS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1032 #endif
1033 
1034 
1035 /* -- RSC -- */
1036 
1037 /* Rd := Rn RSC (imm8 ROR rot) ; rot is power of 2 */
1038 #define ARM_RSC_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
1039 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_RSC, rd, rn, imm8, rot, cond)
1040 #define ARM_RSC_REG_IMM(p, rd, rn, imm8, rot) \
1041 	ARM_RSC_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
1042 #define ARM_RSCS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
1043 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_RSC, rd, rn, imm8, rot, cond)
1044 #define ARM_RSCS_REG_IMM(p, rd, rn, imm8, rot) \
1045 	ARM_RSCS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
1046 
1047 #ifndef ARM_NOIASM
1048 #define _RSC_REG_IMM_COND(rd, rn, imm8, rot, cond) \
1049 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_RSC, rd, rn, imm8, rot, cond)
1050 #define _RSC_REG_IMM(rd, rn, imm8, rot) \
1051 	_RSC_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
1052 #define _RSCS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
1053 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_RSC, rd, rn, imm8, rot, cond)
1054 #define _RSCS_REG_IMM(rd, rn, imm8, rot) \
1055 	_RSCS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
1056 #endif
1057 
1058 
1059 /* Rd := Rn RSC imm8 */
1060 #define ARM_RSC_REG_IMM8_COND(p, rd, rn, imm8, cond) \
1061 	ARM_RSC_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
1062 #define ARM_RSC_REG_IMM8(p, rd, rn, imm8) \
1063 	ARM_RSC_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
1064 #define ARM_RSCS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
1065 	ARM_RSCS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
1066 #define ARM_RSCS_REG_IMM8(p, rd, rn, imm8) \
1067 	ARM_RSCS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
1068 
1069 #ifndef ARM_NOIASM
1070 #define _RSC_REG_IMM8_COND(rd, rn, imm8, cond) \
1071 	_RSC_REG_IMM_COND(rd, rn, imm8, 0, cond)
1072 #define _RSC_REG_IMM8(rd, rn, imm8) \
1073 	_RSC_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
1074 #define _RSCS_REG_IMM8_COND(rd, rn, imm8, cond) \
1075 	_RSCS_REG_IMM_COND(rd, rn, imm8, 0, cond)
1076 #define _RSCS_REG_IMM8(rd, rn, imm8) \
1077 	_RSCS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
1078 #endif
1079 
1080 
1081 /* Rd := Rn RSC Rm */
1082 #define ARM_RSC_REG_REG_COND(p, rd, rn, rm, cond) \
1083 	ARM_DPIOP_REG_REG_COND(p, ARMOP_RSC, rd, rn, rm, cond)
1084 #define ARM_RSC_REG_REG(p, rd, rn, rm) \
1085 	ARM_RSC_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
1086 #define ARM_RSCS_REG_REG_COND(p, rd, rn, rm, cond) \
1087 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_RSC, rd, rn, rm, cond)
1088 #define ARM_RSCS_REG_REG(p, rd, rn, rm) \
1089 	ARM_RSCS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
1090 
1091 #ifndef ARM_NOIASM
1092 #define _RSC_REG_REG_COND(rd, rn, rm, cond) \
1093 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_RSC, rd, rn, rm, cond)
1094 #define _RSC_REG_REG(rd, rn, rm) \
1095 	_RSC_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
1096 #define _RSCS_REG_REG_COND(rd, rn, rm, cond) \
1097 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_RSC, rd, rn, rm, cond)
1098 #define _RSCS_REG_REG(rd, rn, rm) \
1099 	_RSCS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
1100 #endif
1101 
1102 
1103 /* Rd := Rn RSC (Rm <shift_type> imm_shift) */
1104 #define ARM_RSC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
1105 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_RSC, rd, rn, rm, shift_type, imm_shift, cond)
1106 #define ARM_RSC_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
1107 	ARM_RSC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1108 #define ARM_RSCS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
1109 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_RSC, rd, rn, rm, shift_type, imm_shift, cond)
1110 #define ARM_RSCS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
1111 	ARM_RSCS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1112 
1113 #ifndef ARM_NOIASM
1114 #define _RSC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1115 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_RSC, rd, rn, rm, shift_type, imm_shift, cond)
1116 #define _RSC_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1117 	_RSC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1118 #define _RSCS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1119 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_RSC, rd, rn, rm, shift_type, imm_shift, cond)
1120 #define _RSCS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1121 	_RSCS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1122 #endif
1123 
1124 
1125 /* Rd := Rn RSC (Rm <shift_type> Rs) */
1126 #define ARM_RSC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1127 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_RSC, rd, rn, rm, shift_t, rs, cond)
1128 #define ARM_RSC_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1129 	ARM_RSC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1130 #define ARM_RSCS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1131 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_RSC, rd, rn, rm, shift_t, rs, cond)
1132 #define ARM_RSCS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1133 	ARM_RSCS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1134 
1135 #ifndef ARM_NOIASM
1136 #define _RSC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1137 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_RSC, rd, rn, rm, shift_t, rs, cond)
1138 #define _RSC_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1139 	_RSC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1140 #define _RSCS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1141 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_RSC, rd, rn, rm, shift_t, rs, cond)
1142 #define _RSCS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1143 	_RSCS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1144 #endif
1145 
1146 
1147 /* -- ORR -- */
1148 
1149 /* Rd := Rn ORR (imm8 ROR rot) ; rot is power of 2 */
1150 #define ARM_ORR_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
1151 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_ORR, rd, rn, imm8, rot, cond)
1152 #define ARM_ORR_REG_IMM(p, rd, rn, imm8, rot) \
1153 	ARM_ORR_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
1154 #define ARM_ORRS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
1155 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_ORR, rd, rn, imm8, rot, cond)
1156 #define ARM_ORRS_REG_IMM(p, rd, rn, imm8, rot) \
1157 	ARM_ORRS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
1158 
1159 #ifndef ARM_NOIASM
1160 #define _ORR_REG_IMM_COND(rd, rn, imm8, rot, cond) \
1161 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_ORR, rd, rn, imm8, rot, cond)
1162 #define _ORR_REG_IMM(rd, rn, imm8, rot) \
1163 	_ORR_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
1164 #define _ORRS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
1165 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_ORR, rd, rn, imm8, rot, cond)
1166 #define _ORRS_REG_IMM(rd, rn, imm8, rot) \
1167 	_ORRS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
1168 #endif
1169 
1170 
1171 /* Rd := Rn ORR imm8 */
1172 #define ARM_ORR_REG_IMM8_COND(p, rd, rn, imm8, cond) \
1173 	ARM_ORR_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
1174 #define ARM_ORR_REG_IMM8(p, rd, rn, imm8) \
1175 	ARM_ORR_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
1176 #define ARM_ORRS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
1177 	ARM_ORRS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
1178 #define ARM_ORRS_REG_IMM8(p, rd, rn, imm8) \
1179 	ARM_ORRS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
1180 
1181 #ifndef ARM_NOIASM
1182 #define _ORR_REG_IMM8_COND(rd, rn, imm8, cond) \
1183 	_ORR_REG_IMM_COND(rd, rn, imm8, 0, cond)
1184 #define _ORR_REG_IMM8(rd, rn, imm8) \
1185 	_ORR_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
1186 #define _ORRS_REG_IMM8_COND(rd, rn, imm8, cond) \
1187 	_ORRS_REG_IMM_COND(rd, rn, imm8, 0, cond)
1188 #define _ORRS_REG_IMM8(rd, rn, imm8) \
1189 	_ORRS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
1190 #endif
1191 
1192 
1193 /* Rd := Rn ORR Rm */
1194 #define ARM_ORR_REG_REG_COND(p, rd, rn, rm, cond) \
1195 	ARM_DPIOP_REG_REG_COND(p, ARMOP_ORR, rd, rn, rm, cond)
1196 #define ARM_ORR_REG_REG(p, rd, rn, rm) \
1197 	ARM_ORR_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
1198 #define ARM_ORRS_REG_REG_COND(p, rd, rn, rm, cond) \
1199 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_ORR, rd, rn, rm, cond)
1200 #define ARM_ORRS_REG_REG(p, rd, rn, rm) \
1201 	ARM_ORRS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
1202 
1203 #ifndef ARM_NOIASM
1204 #define _ORR_REG_REG_COND(rd, rn, rm, cond) \
1205 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_ORR, rd, rn, rm, cond)
1206 #define _ORR_REG_REG(rd, rn, rm) \
1207 	_ORR_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
1208 #define _ORRS_REG_REG_COND(rd, rn, rm, cond) \
1209 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_ORR, rd, rn, rm, cond)
1210 #define _ORRS_REG_REG(rd, rn, rm) \
1211 	_ORRS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
1212 #endif
1213 
1214 
1215 /* Rd := Rn ORR (Rm <shift_type> imm_shift) */
1216 #define ARM_ORR_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
1217 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_ORR, rd, rn, rm, shift_type, imm_shift, cond)
1218 #define ARM_ORR_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
1219 	ARM_ORR_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1220 #define ARM_ORRS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
1221 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_ORR, rd, rn, rm, shift_type, imm_shift, cond)
1222 #define ARM_ORRS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
1223 	ARM_ORRS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1224 
1225 #ifndef ARM_NOIASM
1226 #define _ORR_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1227 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_ORR, rd, rn, rm, shift_type, imm_shift, cond)
1228 #define _ORR_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1229 	_ORR_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1230 #define _ORRS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1231 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_ORR, rd, rn, rm, shift_type, imm_shift, cond)
1232 #define _ORRS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1233 	_ORRS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1234 #endif
1235 
1236 
1237 /* Rd := Rn ORR (Rm <shift_type> Rs) */
1238 #define ARM_ORR_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1239 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_ORR, rd, rn, rm, shift_t, rs, cond)
1240 #define ARM_ORR_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1241 	ARM_ORR_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1242 #define ARM_ORRS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1243 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_ORR, rd, rn, rm, shift_t, rs, cond)
1244 #define ARM_ORRS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1245 	ARM_ORRS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1246 
1247 #ifndef ARM_NOIASM
1248 #define _ORR_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1249 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_ORR, rd, rn, rm, shift_t, rs, cond)
1250 #define _ORR_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1251 	_ORR_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1252 #define _ORRS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1253 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_ORR, rd, rn, rm, shift_t, rs, cond)
1254 #define _ORRS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1255 	_ORRS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1256 #endif
1257 
1258 
1259 /* -- BIC -- */
1260 
1261 /* Rd := Rn BIC (imm8 ROR rot) ; rot is power of 2 */
1262 #define ARM_BIC_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
1263 	ARM_DPIOP_REG_IMM8ROT_COND(p, ARMOP_BIC, rd, rn, imm8, rot, cond)
1264 #define ARM_BIC_REG_IMM(p, rd, rn, imm8, rot) \
1265 	ARM_BIC_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
1266 #define ARM_BICS_REG_IMM_COND(p, rd, rn, imm8, rot, cond) \
1267 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_BIC, rd, rn, imm8, rot, cond)
1268 #define ARM_BICS_REG_IMM(p, rd, rn, imm8, rot) \
1269 	ARM_BICS_REG_IMM_COND(p, rd, rn, imm8, rot, ARMCOND_AL)
1270 
1271 #ifndef ARM_NOIASM
1272 #define _BIC_REG_IMM_COND(rd, rn, imm8, rot, cond) \
1273 	ARM_IASM_DPIOP_REG_IMM8ROT_COND(ARMOP_BIC, rd, rn, imm8, rot, cond)
1274 #define _BIC_REG_IMM(rd, rn, imm8, rot) \
1275 	_BIC_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
1276 #define _BICS_REG_IMM_COND(rd, rn, imm8, rot, cond) \
1277 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_BIC, rd, rn, imm8, rot, cond)
1278 #define _BICS_REG_IMM(rd, rn, imm8, rot) \
1279 	_BICS_REG_IMM_COND(rd, rn, imm8, rot, ARMCOND_AL)
1280 #endif
1281 
1282 
1283 /* Rd := Rn BIC imm8 */
1284 #define ARM_BIC_REG_IMM8_COND(p, rd, rn, imm8, cond) \
1285 	ARM_BIC_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
1286 #define ARM_BIC_REG_IMM8(p, rd, rn, imm8) \
1287 	ARM_BIC_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
1288 #define ARM_BICS_REG_IMM8_COND(p, rd, rn, imm8, cond) \
1289 	ARM_BICS_REG_IMM_COND(p, rd, rn, imm8, 0, cond)
1290 #define ARM_BICS_REG_IMM8(p, rd, rn, imm8) \
1291 	ARM_BICS_REG_IMM8_COND(p, rd, rn, imm8, ARMCOND_AL)
1292 
1293 #ifndef ARM_NOIASM
1294 #define _BIC_REG_IMM8_COND(rd, rn, imm8, cond) \
1295 	_BIC_REG_IMM_COND(rd, rn, imm8, 0, cond)
1296 #define _BIC_REG_IMM8(rd, rn, imm8) \
1297 	_BIC_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
1298 #define _BICS_REG_IMM8_COND(rd, rn, imm8, cond) \
1299 	_BICS_REG_IMM_COND(rd, rn, imm8, 0, cond)
1300 #define _BICS_REG_IMM8(rd, rn, imm8) \
1301 	_BICS_REG_IMM8_COND(rd, rn, imm8, ARMCOND_AL)
1302 #endif
1303 
1304 
1305 /* Rd := Rn BIC Rm */
1306 #define ARM_BIC_REG_REG_COND(p, rd, rn, rm, cond) \
1307 	ARM_DPIOP_REG_REG_COND(p, ARMOP_BIC, rd, rn, rm, cond)
1308 #define ARM_BIC_REG_REG(p, rd, rn, rm) \
1309 	ARM_BIC_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
1310 #define ARM_BICS_REG_REG_COND(p, rd, rn, rm, cond) \
1311 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_BIC, rd, rn, rm, cond)
1312 #define ARM_BICS_REG_REG(p, rd, rn, rm) \
1313 	ARM_BICS_REG_REG_COND(p, rd, rn, rm, ARMCOND_AL)
1314 
1315 #ifndef ARM_NOIASM
1316 #define _BIC_REG_REG_COND(rd, rn, rm, cond) \
1317 	ARM_IASM_DPIOP_REG_REG_COND(ARMOP_BIC, rd, rn, rm, cond)
1318 #define _BIC_REG_REG(rd, rn, rm) \
1319 	_BIC_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
1320 #define _BICS_REG_REG_COND(rd, rn, rm, cond) \
1321 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_BIC, rd, rn, rm, cond)
1322 #define _BICS_REG_REG(rd, rn, rm) \
1323 	_BICS_REG_REG_COND(rd, rn, rm, ARMCOND_AL)
1324 #endif
1325 
1326 
1327 /* Rd := Rn BIC (Rm <shift_type> imm_shift) */
1328 #define ARM_BIC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
1329 	ARM_DPIOP_REG_IMMSHIFT_COND(p, ARMOP_BIC, rd, rn, rm, shift_type, imm_shift, cond)
1330 #define ARM_BIC_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
1331 	ARM_BIC_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1332 #define ARM_BICS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, cond) \
1333 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_BIC, rd, rn, rm, shift_type, imm_shift, cond)
1334 #define ARM_BICS_REG_IMMSHIFT(p, rd, rn, rm, shift_type, imm_shift) \
1335 	ARM_BICS_REG_IMMSHIFT_COND(p, rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1336 
1337 #ifndef ARM_NOIASM
1338 #define _BIC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1339 	ARM_IASM_DPIOP_REG_IMMSHIFT_COND(ARMOP_BIC, rd, rn, rm, shift_type, imm_shift, cond)
1340 #define _BIC_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1341 	_BIC_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1342 #define _BICS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, cond) \
1343 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_BIC, rd, rn, rm, shift_type, imm_shift, cond)
1344 #define _BICS_REG_IMMSHIFT(rd, rn, rm, shift_type, imm_shift) \
1345 	_BICS_REG_IMMSHIFT_COND(rd, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1346 #endif
1347 
1348 
1349 /* Rd := Rn BIC (Rm <shift_type> Rs) */
1350 #define ARM_BIC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1351 	ARM_DPIOP_REG_REGSHIFT_COND(p, ARMOP_BIC, rd, rn, rm, shift_t, rs, cond)
1352 #define ARM_BIC_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1353 	ARM_BIC_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1354 #define ARM_BICS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, cond) \
1355 	ARM_DPIOP_S_REG_REGSHIFT_COND(p, ARMOP_BIC, rd, rn, rm, shift_t, rs, cond)
1356 #define ARM_BICS_REG_REGSHIFT(p, rd, rn, rm, shift_type, rs) \
1357 	ARM_BICS_REG_REGSHIFT_COND(p, rd, rn, rm, shift_type, rs, ARMCOND_AL)
1358 
1359 #ifndef ARM_NOIASM
1360 #define _BIC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1361 	ARM_IASM_DPIOP_REG_REGSHIFT_COND(ARMOP_BIC, rd, rn, rm, shift_t, rs, cond)
1362 #define _BIC_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1363 	_BIC_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1364 #define _BICS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, cond) \
1365 	ARM_IASM_DPIOP_S_REG_REGSHIFT_COND(ARMOP_BIC, rd, rn, rm, shift_t, rs, cond)
1366 #define _BICS_REG_REGSHIFT(rd, rn, rm, shift_type, rs) \
1367 	_BICS_REG_REGSHIFT_COND(rd, rn, rm, shift_type, rs, ARMCOND_AL)
1368 #endif
1369 
1370 
1371 
1372 
1373 
1374 
1375 /* DPIs, comparison */
1376 
1377 /* PSR := TST Rn, (imm8 ROR 2*rot) */
1378 #define ARM_TST_REG_IMM_COND(p, rn, imm8, rot, cond) \
1379 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_TST, 0, rn, imm8, rot, cond)
1380 #define ARM_TST_REG_IMM(p, rn, imm8, rot) \
1381 	ARM_TST_REG_IMM_COND(p, rn, imm8, rot, ARMCOND_AL)
1382 
1383 #ifndef ARM_NOIASM
1384 #define _TST_REG_IMM_COND(rn, imm8, rot, cond) \
1385 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_TST, 0, rn, imm8, rot, cond)
1386 #define _TST_REG_IMM(rn, imm8, rot) \
1387 	_TST_REG_IMM_COND(rn, imm8, rot, ARMCOND_AL)
1388 #endif
1389 
1390 
1391 /* PSR := TST Rn, imm8 */
1392 #define ARM_TST_REG_IMM8_COND(p, rn, imm8, cond) \
1393 	ARM_TST_REG_IMM_COND(p, rn, imm8, 0, cond)
1394 #define ARM_TST_REG_IMM8(p, rn, imm8) \
1395 	ARM_TST_REG_IMM8_COND(p, rn, imm8, ARMCOND_AL)
1396 
1397 #ifndef ARM_NOIASM
1398 #define _TST_REG_IMM8_COND(rn, imm8, cond) \
1399 	_TST_REG_IMM_COND(rn, imm8, 0, cond)
1400 #define _TST_REG_IMM8(rn, imm8) \
1401 	_TST_REG_IMM8_COND(rn, imm8, ARMCOND_AL)
1402 #endif
1403 
1404 
1405 /* PSR := TST Rn, Rm */
1406 #define ARM_TST_REG_REG_COND(p, rn, rm, cond) \
1407 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_TST, 0, rn, rm, cond)
1408 #define ARM_TST_REG_REG(p, rn, rm) \
1409 	ARM_TST_REG_REG_COND(p, rn, rm, ARMCOND_AL)
1410 
1411 #ifndef ARM_NOIASM
1412 #define _TST_REG_REG_COND(rn, rm, cond) \
1413 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_TST, 0, rn, rm, cond)
1414 #define _TST_REG_REG(rn, rm) \
1415 	_TST_REG_REG_COND(rn, rm, ARMCOND_AL)
1416 #endif
1417 
1418 
1419 /* PSR := TST Rn, (Rm <shift_type> imm8) */
1420 #define ARM_TST_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, cond) \
1421 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_TST, 0, rn, rm, shift_type, imm_shift, cond)
1422 #define ARM_TST_REG_IMMSHIFT(p, rn, rm, shift_type, imm_shift) \
1423 	ARM_TST_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1424 
1425 #ifndef ARM_NOIASM
1426 #define _TST_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, cond) \
1427 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_TST, 0, rn, rm, shift_type, imm_shift, cond)
1428 #define _TST_REG_IMMSHIFT(rn, rm, shift_type, imm_shift) \
1429 	_TST_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, ARMCOND_AL)
1430 #endif
1431 
1432 
1433 /* PSR := TEQ Rn, (imm8 ROR 2*rot) */
1434 #define ARM_TEQ_REG_IMM_COND(p, rn, imm8, rot, cond) \
1435 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_TEQ, 0, rn, imm8, rot, cond)
1436 #define ARM_TEQ_REG_IMM(p, rn, imm8, rot) \
1437 	ARM_TEQ_REG_IMM_COND(p, rn, imm8, rot, ARMCOND_AL)
1438 
1439 #ifndef ARM_NOIASM
1440 #define _TEQ_REG_IMM_COND(rn, imm8, rot, cond) \
1441 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_TEQ, 0, rn, imm8, rot, cond)
1442 #define _TEQ_REG_IMM(rn, imm8, rot) \
1443 	_TEQ_REG_IMM_COND(rn, imm8, rot, ARMCOND_AL)
1444 #endif
1445 
1446 
1447 /* PSR := TEQ Rn, imm8 */
1448 #define ARM_TEQ_REG_IMM8_COND(p, rn, imm8, cond) \
1449 	ARM_TEQ_REG_IMM_COND(p, rn, imm8, 0, cond)
1450 #define ARM_TEQ_REG_IMM8(p, rn, imm8) \
1451 	ARM_TEQ_REG_IMM8_COND(p, rn, imm8, ARMCOND_AL)
1452 
1453 #ifndef ARM_NOIASM
1454 #define _TEQ_REG_IMM8_COND(rn, imm8, cond) \
1455 	_TEQ_REG_IMM_COND(rn, imm8, 0, cond)
1456 #define _TEQ_REG_IMM8(rn, imm8) \
1457 	_TEQ_REG_IMM8_COND(rn, imm8, ARMCOND_AL)
1458 #endif
1459 
1460 
1461 /* PSR := TEQ Rn, Rm */
1462 #define ARM_TEQ_REG_REG_COND(p, rn, rm, cond) \
1463 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_TEQ, 0, rn, rm, cond)
1464 #define ARM_TEQ_REG_REG(p, rn, rm) \
1465 	ARM_TEQ_REG_REG_COND(p, rn, rm, ARMCOND_AL)
1466 
1467 #ifndef ARM_NOIASM
1468 #define _TEQ_REG_REG_COND(rn, rm, cond) \
1469 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_TEQ, 0, rn, rm, cond)
1470 #define _TEQ_REG_REG(rn, rm) \
1471 	_TEQ_REG_REG_COND(rn, rm, ARMCOND_AL)
1472 #endif
1473 
1474 
1475 /* PSR := TEQ Rn, (Rm <shift_type> imm8) */
1476 #define ARM_TEQ_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, cond) \
1477 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_TEQ, 0, rn, rm, shift_type, imm_shift, cond)
1478 #define ARM_TEQ_REG_IMMSHIFT(p, rn, rm, shift_type, imm_shift) \
1479 	ARM_TEQ_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1480 
1481 #ifndef ARM_NOIASM
1482 #define _TEQ_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, cond) \
1483 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_TEQ, 0, rn, rm, shift_type, imm_shift, cond)
1484 #define _TEQ_REG_IMMSHIFT(rn, rm, shift_type, imm_shift) \
1485 	_TEQ_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, ARMCOND_AL)
1486 #endif
1487 
1488 
1489 /* PSR := CMP Rn, (imm8 ROR 2*rot) */
1490 #define ARM_CMP_REG_IMM_COND(p, rn, imm8, rot, cond) \
1491 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_CMP, 0, rn, imm8, rot, cond)
1492 #define ARM_CMP_REG_IMM(p, rn, imm8, rot) \
1493 	ARM_CMP_REG_IMM_COND(p, rn, imm8, rot, ARMCOND_AL)
1494 
1495 #ifndef ARM_NOIASM
1496 #define _CMP_REG_IMM_COND(rn, imm8, rot, cond) \
1497 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_CMP, 0, rn, imm8, rot, cond)
1498 #define _CMP_REG_IMM(rn, imm8, rot) \
1499 	_CMP_REG_IMM_COND(rn, imm8, rot, ARMCOND_AL)
1500 #endif
1501 
1502 
1503 /* PSR := CMP Rn, imm8 */
1504 #define ARM_CMP_REG_IMM8_COND(p, rn, imm8, cond) \
1505 	ARM_CMP_REG_IMM_COND(p, rn, imm8, 0, cond)
1506 #define ARM_CMP_REG_IMM8(p, rn, imm8) \
1507 	ARM_CMP_REG_IMM8_COND(p, rn, imm8, ARMCOND_AL)
1508 
1509 #ifndef ARM_NOIASM
1510 #define _CMP_REG_IMM8_COND(rn, imm8, cond) \
1511 	_CMP_REG_IMM_COND(rn, imm8, 0, cond)
1512 #define _CMP_REG_IMM8(rn, imm8) \
1513 	_CMP_REG_IMM8_COND(rn, imm8, ARMCOND_AL)
1514 #endif
1515 
1516 
1517 /* PSR := CMP Rn, Rm */
1518 #define ARM_CMP_REG_REG_COND(p, rn, rm, cond) \
1519 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_CMP, 0, rn, rm, cond)
1520 #define ARM_CMP_REG_REG(p, rn, rm) \
1521 	ARM_CMP_REG_REG_COND(p, rn, rm, ARMCOND_AL)
1522 
1523 #ifndef ARM_NOIASM
1524 #define _CMP_REG_REG_COND(rn, rm, cond) \
1525 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_CMP, 0, rn, rm, cond)
1526 #define _CMP_REG_REG(rn, rm) \
1527 	_CMP_REG_REG_COND(rn, rm, ARMCOND_AL)
1528 #endif
1529 
1530 
1531 /* PSR := CMP Rn, (Rm <shift_type> imm8) */
1532 #define ARM_CMP_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, cond) \
1533 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_CMP, 0, rn, rm, shift_type, imm_shift, cond)
1534 #define ARM_CMP_REG_IMMSHIFT(p, rn, rm, shift_type, imm_shift) \
1535 	ARM_CMP_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1536 
1537 #ifndef ARM_NOIASM
1538 #define _CMP_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, cond) \
1539 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_CMP, 0, rn, rm, shift_type, imm_shift, cond)
1540 #define _CMP_REG_IMMSHIFT(rn, rm, shift_type, imm_shift) \
1541 	_CMP_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, ARMCOND_AL)
1542 #endif
1543 
1544 
1545 /* PSR := CMN Rn, (imm8 ROR 2*rot) */
1546 #define ARM_CMN_REG_IMM_COND(p, rn, imm8, rot, cond) \
1547 	ARM_DPIOP_S_REG_IMM8ROT_COND(p, ARMOP_CMN, 0, rn, imm8, rot, cond)
1548 #define ARM_CMN_REG_IMM(p, rn, imm8, rot) \
1549 	ARM_CMN_REG_IMM_COND(p, rn, imm8, rot, ARMCOND_AL)
1550 
1551 #ifndef ARM_NOIASM
1552 #define _CMN_REG_IMM_COND(rn, imm8, rot, cond) \
1553 	ARM_IASM_DPIOP_S_REG_IMM8ROT_COND(ARMOP_CMN, 0, rn, imm8, rot, cond)
1554 #define _CMN_REG_IMM(rn, imm8, rot) \
1555 	_CMN_REG_IMM_COND(rn, imm8, rot, ARMCOND_AL)
1556 #endif
1557 
1558 
1559 /* PSR := CMN Rn, imm8 */
1560 #define ARM_CMN_REG_IMM8_COND(p, rn, imm8, cond) \
1561 	ARM_CMN_REG_IMM_COND(p, rn, imm8, 0, cond)
1562 #define ARM_CMN_REG_IMM8(p, rn, imm8) \
1563 	ARM_CMN_REG_IMM8_COND(p, rn, imm8, ARMCOND_AL)
1564 
1565 #ifndef ARM_NOIASM
1566 #define _CMN_REG_IMM8_COND(rn, imm8, cond) \
1567 	_CMN_REG_IMM_COND(rn, imm8, 0, cond)
1568 #define _CMN_REG_IMM8(rn, imm8) \
1569 	_CMN_REG_IMM8_COND(rn, imm8, ARMCOND_AL)
1570 #endif
1571 
1572 
1573 /* PSR := CMN Rn, Rm */
1574 #define ARM_CMN_REG_REG_COND(p, rn, rm, cond) \
1575 	ARM_DPIOP_S_REG_REG_COND(p, ARMOP_CMN, 0, rn, rm, cond)
1576 #define ARM_CMN_REG_REG(p, rn, rm) \
1577 	ARM_CMN_REG_REG_COND(p, rn, rm, ARMCOND_AL)
1578 
1579 #ifndef ARM_NOIASM
1580 #define _CMN_REG_REG_COND(rn, rm, cond) \
1581 	ARM_IASM_DPIOP_S_REG_REG_COND(ARMOP_CMN, 0, rn, rm, cond)
1582 #define _CMN_REG_REG(rn, rm) \
1583 	_CMN_REG_REG_COND(rn, rm, ARMCOND_AL)
1584 #endif
1585 
1586 
1587 /* PSR := CMN Rn, (Rm <shift_type> imm8) */
1588 #define ARM_CMN_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, cond) \
1589 	ARM_DPIOP_S_REG_IMMSHIFT_COND(p, ARMOP_CMN, 0, rn, rm, shift_type, imm_shift, cond)
1590 #define ARM_CMN_REG_IMMSHIFT(p, rn, rm, shift_type, imm_shift) \
1591 	ARM_CMN_REG_IMMSHIFT_COND(p, rn, rm, shift_type, imm_shift, ARMCOND_AL)
1592 
1593 #ifndef ARM_NOIASM
1594 #define _CMN_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, cond) \
1595 	ARM_IASM_DPIOP_S_REG_IMMSHIFT_COND(ARMOP_CMN, 0, rn, rm, shift_type, imm_shift, cond)
1596 #define _CMN_REG_IMMSHIFT(rn, rm, shift_type, imm_shift) \
1597 	_CMN_REG_IMMSHIFT_COND(rn, rm, shift_type, imm_shift, ARMCOND_AL)
1598 #endif
1599 
1600 
1601 
1602 /* end generated */
1603 
1604