GNU Linux-libre 4.14.251-gnu1
[releases.git] / arch / cris / include / arch-v32 / arch / hwregs / iop / iop_mpu_macros.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /* ************************************************************************* */
3 /* This file is autogenerated by IOPASM Version 1.2                          */
4 /* DO NOT EDIT THIS FILE - All changes will be lost!                         */
5 /* ************************************************************************* */
6
7
8
9 #ifndef __IOP_MPU_MACROS_H__
10 #define __IOP_MPU_MACROS_H__
11
12
13 /* ************************************************************************* */
14 /*                           REGISTER DEFINITIONS                            */
15 /* ************************************************************************* */
16 #define MPU_R0 (0x0)
17 #define MPU_R1 (0x1)
18 #define MPU_R2 (0x2)
19 #define MPU_R3 (0x3)
20 #define MPU_R4 (0x4)
21 #define MPU_R5 (0x5)
22 #define MPU_R6 (0x6)
23 #define MPU_R7 (0x7)
24 #define MPU_R8 (0x8)
25 #define MPU_R9 (0x9)
26 #define MPU_R10 (0xa)
27 #define MPU_R11 (0xb)
28 #define MPU_R12 (0xc)
29 #define MPU_R13 (0xd)
30 #define MPU_R14 (0xe)
31 #define MPU_R15 (0xf)
32 #define MPU_PC (0x2)
33 #define MPU_WSTS (0x3)
34 #define MPU_JADDR (0x4)
35 #define MPU_IRP (0x5)
36 #define MPU_SRP (0x6)
37 #define MPU_T0 (0x8)
38 #define MPU_T1 (0x9)
39 #define MPU_T2 (0xa)
40 #define MPU_T3 (0xb)
41 #define MPU_I0 (0x10)
42 #define MPU_I1 (0x11)
43 #define MPU_I2 (0x12)
44 #define MPU_I3 (0x13)
45 #define MPU_I4 (0x14)
46 #define MPU_I5 (0x15)
47 #define MPU_I6 (0x16)
48 #define MPU_I7 (0x17)
49 #define MPU_I8 (0x18)
50 #define MPU_I9 (0x19)
51 #define MPU_I10 (0x1a)
52 #define MPU_I11 (0x1b)
53 #define MPU_I12 (0x1c)
54 #define MPU_I13 (0x1d)
55 #define MPU_I14 (0x1e)
56 #define MPU_I15 (0x1f)
57 #define MPU_P2 (0x2)
58 #define MPU_P3 (0x3)
59 #define MPU_P5 (0x5)
60 #define MPU_P6 (0x6)
61 #define MPU_P8 (0x8)
62 #define MPU_P9 (0x9)
63 #define MPU_P10 (0xa)
64 #define MPU_P11 (0xb)
65 #define MPU_P16 (0x10)
66 #define MPU_P17 (0x12)
67 #define MPU_P18 (0x12)
68 #define MPU_P19 (0x13)
69 #define MPU_P20 (0x14)
70 #define MPU_P21 (0x15)
71 #define MPU_P22 (0x16)
72 #define MPU_P23 (0x17)
73 #define MPU_P24 (0x18)
74 #define MPU_P25 (0x19)
75 #define MPU_P26 (0x1a)
76 #define MPU_P27 (0x1b)
77 #define MPU_P28 (0x1c)
78 #define MPU_P29 (0x1d)
79 #define MPU_P30 (0x1e)
80 #define MPU_P31 (0x1f)
81 #define MPU_P1 (0x1)
82 #define MPU_REGA (0x1)
83
84
85
86 /* ************************************************************************* */
87 /*                              ADDRESS MACROS                               */
88 /* ************************************************************************* */
89 #define MK_DWORD_ADDR(ADDR) (ADDR >> 2)
90 #define MK_BYTE_ADDR(ADDR) (ADDR)
91
92
93
94 /* ************************************************************************* */
95 /*                            INSTRUCTION MACROS                             */
96 /* ************************************************************************* */
97 #define MPU_ADD_RRR(S,N,D) (0x4000008C | ((S & ((1 << 5) - 1)) << 16)\
98                                 | ((N & ((1 << 5) - 1)) << 11)\
99                                 | ((D & ((1 << 5) - 1)) << 21))
100
101 #define MPU_ADD_RRS(S,N,D) (0x4000048C | ((S & ((1 << 5) - 1)) << 16)\
102                                 | ((N & ((1 << 5) - 1)) << 11)\
103                                 | ((D & ((1 << 5) - 1)) << 21))
104
105 #define MPU_ADD_RSR(S,N,D) (0x4000018C | ((S & ((1 << 5) - 1)) << 16)\
106                                 | ((N & ((1 << 5) - 1)) << 11)\
107                                 | ((D & ((1 << 5) - 1)) << 21))
108
109 #define MPU_ADD_RSS(S,N,D) (0x4000058C | ((S & ((1 << 5) - 1)) << 16)\
110                                 | ((N & ((1 << 5) - 1)) << 11)\
111                                 | ((D & ((1 << 5) - 1)) << 21))
112
113 #define MPU_ADD_SRR(S,N,D) (0x4000028C | ((S & ((1 << 5) - 1)) << 16)\
114                                 | ((N & ((1 << 5) - 1)) << 11)\
115                                 | ((D & ((1 << 5) - 1)) << 21))
116
117 #define MPU_ADD_SRS(S,N,D) (0x4000068C | ((S & ((1 << 5) - 1)) << 16)\
118                                 | ((N & ((1 << 5) - 1)) << 11)\
119                                 | ((D & ((1 << 5) - 1)) << 21))
120
121 #define MPU_ADD_SSR(S,N,D) (0x4000038C | ((S & ((1 << 5) - 1)) << 16)\
122                                 | ((N & ((1 << 5) - 1)) << 11)\
123                                 | ((D & ((1 << 5) - 1)) << 21))
124
125 #define MPU_ADD_SSS(S,N,D) (0x4000078C | ((S & ((1 << 5) - 1)) << 16)\
126                                 | ((N & ((1 << 5) - 1)) << 11)\
127                                 | ((D & ((1 << 5) - 1)) << 21))
128
129 #define MPU_ADDQ_RIR(S,N,D) (0x10000000 | ((S & ((1 << 5) - 1)) << 16)\
130                                  | ((N & ((1 << 16) - 1)) << 0)\
131                                  | ((D & ((1 << 5) - 1)) << 21))
132
133 #define MPU_ADDQ_IRR(S,N,D) (0x10000000 | ((S & ((1 << 16) - 1)) << 0)\
134                                  | ((N & ((1 << 5) - 1)) << 16)\
135                                  | ((D & ((1 << 5) - 1)) << 21))
136
137 #define MPU_ADDX_IRR_INSTR(S,N,D) (0xC000008C | ((N & ((1 << 5) - 1)) << 16)\
138                                        | ((D & ((1 << 5) - 1)) << 21))
139
140 #define MPU_ADDX_IRR_IMM(S,N,D) (S & 0xFFFFFFFF)
141
142 #define MPU_ADDX_RIR_INSTR(S,N,D) (0xC000008C | ((S & ((1 << 5) - 1)) << 16)\
143                                        | ((D & ((1 << 5) - 1)) << 21))
144
145 #define MPU_ADDX_RIR_IMM(S,N,D) (N & 0xFFFFFFFF)
146
147 #define MPU_ADDX_ISR_INSTR(S,N,D) (0xC000028C | ((N & ((1 << 5) - 1)) << 16)\
148                                        | ((D & ((1 << 5) - 1)) << 21))
149
150 #define MPU_ADDX_ISR_IMM(S,N,D) (S & 0xFFFFFFFF)
151
152 #define MPU_ADDX_SIR_INSTR(S,N,D) (0xC000028C | ((S & ((1 << 5) - 1)) << 16)\
153                                        | ((D & ((1 << 5) - 1)) << 21))
154
155 #define MPU_ADDX_SIR_IMM(S,N,D) (N & 0xFFFFFFFF)
156
157 #define MPU_ADDX_IRS_INSTR(S,N,D) (0xC000048C | ((N & ((1 << 5) - 1)) << 16)\
158                                        | ((D & ((1 << 5) - 1)) << 21))
159
160 #define MPU_ADDX_IRS_IMM(S,N,D) (S & 0xFFFFFFFF)
161
162 #define MPU_ADDX_RIS_INSTR(S,N,D) (0xC000048C | ((S & ((1 << 5) - 1)) << 16)\
163                                        | ((D & ((1 << 5) - 1)) << 21))
164
165 #define MPU_ADDX_RIS_IMM(S,N,D) (N & 0xFFFFFFFF)
166
167 #define MPU_ADDX_ISS_INSTR(S,N,D) (0xC000068C | ((N & ((1 << 5) - 1)) << 16)\
168                                        | ((D & ((1 << 5) - 1)) << 21))
169
170 #define MPU_ADDX_ISS_IMM(S,N,D) (S & 0xFFFFFFFF)
171
172 #define MPU_ADDX_SIS_INSTR(S,N,D) (0xC000068C | ((S & ((1 << 5) - 1)) << 16)\
173                                        | ((D & ((1 << 5) - 1)) << 21))
174
175 #define MPU_ADDX_SIS_IMM(S,N,D) (N & 0xFFFFFFFF)
176
177 #define MPU_AND_RRR(S,N,D) (0x4000008A | ((S & ((1 << 5) - 1)) << 16)\
178                                 | ((N & ((1 << 5) - 1)) << 11)\
179                                 | ((D & ((1 << 5) - 1)) << 21))
180
181 #define MPU_AND_RRS(S,N,D) (0x4000048A | ((S & ((1 << 5) - 1)) << 16)\
182                                 | ((N & ((1 << 5) - 1)) << 11)\
183                                 | ((D & ((1 << 5) - 1)) << 21))
184
185 #define MPU_AND_RSR(S,N,D) (0x4000018A | ((S & ((1 << 5) - 1)) << 16)\
186                                 | ((N & ((1 << 5) - 1)) << 11)\
187                                 | ((D & ((1 << 5) - 1)) << 21))
188
189 #define MPU_AND_RSS(S,N,D) (0x4000058A | ((S & ((1 << 5) - 1)) << 16)\
190                                 | ((N & ((1 << 5) - 1)) << 11)\
191                                 | ((D & ((1 << 5) - 1)) << 21))
192
193 #define MPU_AND_SRR(S,N,D) (0x4000028A | ((S & ((1 << 5) - 1)) << 16)\
194                                 | ((N & ((1 << 5) - 1)) << 11)\
195                                 | ((D & ((1 << 5) - 1)) << 21))
196
197 #define MPU_AND_SRS(S,N,D) (0x4000068A | ((S & ((1 << 5) - 1)) << 16)\
198                                 | ((N & ((1 << 5) - 1)) << 11)\
199                                 | ((D & ((1 << 5) - 1)) << 21))
200
201 #define MPU_AND_SSR(S,N,D) (0x4000038A | ((S & ((1 << 5) - 1)) << 16)\
202                                 | ((N & ((1 << 5) - 1)) << 11)\
203                                 | ((D & ((1 << 5) - 1)) << 21))
204
205 #define MPU_AND_SSS(S,N,D) (0x4000078A | ((S & ((1 << 5) - 1)) << 16)\
206                                 | ((N & ((1 << 5) - 1)) << 11)\
207                                 | ((D & ((1 << 5) - 1)) << 21))
208
209 #define MPU_ANDQ_RIR(S,N,D) (0x08000000 | ((S & ((1 << 5) - 1)) << 16)\
210                                  | ((N & ((1 << 16) - 1)) << 0)\
211                                  | ((D & ((1 << 5) - 1)) << 21))
212
213 #define MPU_ANDQ_IRR(S,N,D) (0x08000000 | ((S & ((1 << 16) - 1)) << 0)\
214                                  | ((N & ((1 << 5) - 1)) << 16)\
215                                  | ((D & ((1 << 5) - 1)) << 21))
216
217 #define MPU_ANDX_RIR_INSTR(S,N,D) (0xC000008A | ((S & ((1 << 5) - 1)) << 16)\
218                                        | ((D & ((1 << 5) - 1)) << 21))
219
220 #define MPU_ANDX_RIR_IMM(S,N,D) (N & 0xFFFFFFFF)
221
222 #define MPU_ANDX_IRR_INSTR(S,N,D) (0xC000008A | ((N & ((1 << 5) - 1)) << 16)\
223                                        | ((D & ((1 << 5) - 1)) << 21))
224
225 #define MPU_ANDX_IRR_IMM(S,N,D) (S & 0xFFFFFFFF)
226
227 #define MPU_ANDX_ISR_INSTR(S,N,D) (0xC000028A | ((N & ((1 << 5) - 1)) << 16)\
228                                        | ((D & ((1 << 5) - 1)) << 21))
229
230 #define MPU_ANDX_ISR_IMM(S,N,D) (S & 0xFFFFFFFF)
231
232 #define MPU_ANDX_SIR_INSTR(S,N,D) (0xC000028A | ((S & ((1 << 5) - 1)) << 16)\
233                                        | ((D & ((1 << 5) - 1)) << 21))
234
235 #define MPU_ANDX_SIR_IMM(S,N,D) (N & 0xFFFFFFFF)
236
237 #define MPU_ANDX_IRS_INSTR(S,N,D) (0xC000048A | ((N & ((1 << 5) - 1)) << 16)\
238                                        | ((D & ((1 << 5) - 1)) << 21))
239
240 #define MPU_ANDX_IRS_IMM(S,N,D) (S & 0xFFFFFFFF)
241
242 #define MPU_ANDX_ISS_INSTR(S,N,D) (0xC000068A | ((N & ((1 << 5) - 1)) << 16)\
243                                        | ((D & ((1 << 5) - 1)) << 21))
244
245 #define MPU_ANDX_ISS_IMM(S,N,D) (S & 0xFFFFFFFF)
246
247 #define MPU_ANDX_RIS_INSTR(S,N,D) (0xC000048A | ((S & ((1 << 5) - 1)) << 16)\
248                                        | ((D & ((1 << 5) - 1)) << 21))
249
250 #define MPU_ANDX_RIS_IMM(S,N,D) (N & 0xFFFFFFFF)
251
252 #define MPU_ANDX_SIS_INSTR(S,N,D) (0xC000068A | ((S & ((1 << 5) - 1)) << 16)\
253                                        | ((D & ((1 << 5) - 1)) << 21))
254
255 #define MPU_ANDX_SIS_IMM(S,N,D) (N & 0xFFFFFFFF)
256
257 #define MPU_BA_I(S) (0x60000000 | ((S & ((1 << 16) - 1)) << 0))
258
259 #define MPU_BAR_R(S) (0x62000000 | ((S & ((1 << 5) - 1)) << 11))
260
261 #define MPU_BAR_S(S) (0x63000000 | ((S & ((1 << 5) - 1)) << 11))
262
263 #define MPU_BBC_RII(S,N,D) (0x78000000 | ((S & ((1 << 5) - 1)) << 16)\
264                                 | ((N & ((1 << 5) - 1)) << 21)\
265                                 | ((D & ((1 << 16) - 1)) << 0))
266
267 #define MPU_BBS_RII(S,N,D) (0x7C000000 | ((S & ((1 << 5) - 1)) << 16)\
268                                 | ((N & ((1 << 5) - 1)) << 21)\
269                                 | ((D & ((1 << 16) - 1)) << 0))
270
271 #define MPU_BNZ_RI(S,D) (0x74400000 | ((S & ((1 << 5) - 1)) << 16)\
272                              | ((D & ((1 << 16) - 1)) << 0))
273
274 #define MPU_BMI_RI(S,D) (0x7FE00000 | ((S & ((1 << 5) - 1)) << 16)\
275                              | ((D & ((1 << 16) - 1)) << 0))
276
277 #define MPU_BPL_RI(S,D) (0x7BE00000 | ((S & ((1 << 5) - 1)) << 16)\
278                              | ((D & ((1 << 16) - 1)) << 0))
279
280 #define MPU_BZ_RI(S,D) (0x74000000 | ((S & ((1 << 5) - 1)) << 16)\
281                             | ((D & ((1 << 16) - 1)) << 0))
282
283 #define MPU_DI() (0x40000001)
284
285 #define MPU_EI() (0x40000003)
286
287 #define MPU_HALT() (0x40000002)
288
289 #define MPU_JIR_I(S) (0x60200000 | ((S & ((1 << 16) - 1)) << 0))
290
291 #define MPU_JIR_R(S) (0x62200000 | ((S & ((1 << 5) - 1)) << 11))
292
293 #define MPU_JIR_S(S) (0x63200000 | ((S & ((1 << 5) - 1)) << 11))
294
295 #define MPU_JNT() (0x61000000)
296
297 #define MPU_JSR_I(S) (0x60400000 | ((S & ((1 << 16) - 1)) << 0))
298
299 #define MPU_JSR_R(S) (0x62400000 | ((S & ((1 << 5) - 1)) << 11))
300
301 #define MPU_JSR_S(S) (0x63400000 | ((S & ((1 << 5) - 1)) << 11))
302
303 #define MPU_LSL_RRR(S,N,D) (0x4000008E | ((S & ((1 << 5) - 1)) << 16)\
304                                 | ((N & ((1 << 5) - 1)) << 11)\
305                                 | ((D & ((1 << 5) - 1)) << 21))
306
307 #define MPU_LSL_RRS(S,N,D) (0x4000048E | ((S & ((1 << 5) - 1)) << 16)\
308                                 | ((N & ((1 << 5) - 1)) << 11)\
309                                 | ((D & ((1 << 5) - 1)) << 21))
310
311 #define MPU_LSL_RSR(S,N,D) (0x4000018E | ((S & ((1 << 5) - 1)) << 16)\
312                                 | ((N & ((1 << 5) - 1)) << 11)\
313                                 | ((D & ((1 << 5) - 1)) << 21))
314
315 #define MPU_LSL_RSS(S,N,D) (0x4000058E | ((S & ((1 << 5) - 1)) << 16)\
316                                 | ((N & ((1 << 5) - 1)) << 11)\
317                                 | ((D & ((1 << 5) - 1)) << 21))
318
319 #define MPU_LSL_SRR(S,N,D) (0x4000028E | ((S & ((1 << 5) - 1)) << 16)\
320                                 | ((N & ((1 << 5) - 1)) << 11)\
321                                 | ((D & ((1 << 5) - 1)) << 21))
322
323 #define MPU_LSL_SRS(S,N,D) (0x4000068E | ((S & ((1 << 5) - 1)) << 16)\
324                                 | ((N & ((1 << 5) - 1)) << 11)\
325                                 | ((D & ((1 << 5) - 1)) << 21))
326
327 #define MPU_LSL_SSR(S,N,D) (0x4000038E | ((S & ((1 << 5) - 1)) << 16)\
328                                 | ((N & ((1 << 5) - 1)) << 11)\
329                                 | ((D & ((1 << 5) - 1)) << 21))
330
331 #define MPU_LSL_SSS(S,N,D) (0x4000078E | ((S & ((1 << 5) - 1)) << 16)\
332                                 | ((N & ((1 << 5) - 1)) << 11)\
333                                 | ((D & ((1 << 5) - 1)) << 21))
334
335 #define MPU_LSLQ_RIR(S,N,D) (0x18000000 | ((S & ((1 << 5) - 1)) << 16)\
336                                  | ((N & ((1 << 16) - 1)) << 0)\
337                                  | ((D & ((1 << 5) - 1)) << 21))
338
339 #define MPU_LSR_RRR(S,N,D) (0x4000008F | ((S & ((1 << 5) - 1)) << 16)\
340                                 | ((N & ((1 << 5) - 1)) << 11)\
341                                 | ((D & ((1 << 5) - 1)) << 21))
342
343 #define MPU_LSR_RRS(S,N,D) (0x4000048F | ((S & ((1 << 5) - 1)) << 16)\
344                                 | ((N & ((1 << 5) - 1)) << 11)\
345                                 | ((D & ((1 << 5) - 1)) << 21))
346
347 #define MPU_LSR_RSR(S,N,D) (0x4000018F | ((S & ((1 << 5) - 1)) << 16)\
348                                 | ((N & ((1 << 5) - 1)) << 11)\
349                                 | ((D & ((1 << 5) - 1)) << 21))
350
351 #define MPU_LSR_RSS(S,N,D) (0x4000058F | ((S & ((1 << 5) - 1)) << 16)\
352                                 | ((N & ((1 << 5) - 1)) << 11)\
353                                 | ((D & ((1 << 5) - 1)) << 21))
354
355 #define MPU_LSR_SRR(S,N,D) (0x4000028F | ((S & ((1 << 5) - 1)) << 16)\
356                                 | ((N & ((1 << 5) - 1)) << 11)\
357                                 | ((D & ((1 << 5) - 1)) << 21))
358
359 #define MPU_LSR_SRS(S,N,D) (0x4000068F | ((S & ((1 << 5) - 1)) << 16)\
360                                 | ((N & ((1 << 5) - 1)) << 11)\
361                                 | ((D & ((1 << 5) - 1)) << 21))
362
363 #define MPU_LSR_SSR(S,N,D) (0x4000038F | ((S & ((1 << 5) - 1)) << 16)\
364                                 | ((N & ((1 << 5) - 1)) << 11)\
365                                 | ((D & ((1 << 5) - 1)) << 21))
366
367 #define MPU_LSR_SSS(S,N,D) (0x4000078F | ((S & ((1 << 5) - 1)) << 16)\
368                                 | ((N & ((1 << 5) - 1)) << 11)\
369                                 | ((D & ((1 << 5) - 1)) << 21))
370
371 #define MPU_LSRQ_RIR(S,N,D) (0x1C000000 | ((S & ((1 << 5) - 1)) << 16)\
372                                  | ((N & ((1 << 16) - 1)) << 0)\
373                                  | ((D & ((1 << 5) - 1)) << 21))
374
375 #define MPU_LW_IR(S,D) (0x64400000 | ((S & ((1 << 16) - 1)) << 0)\
376                             | ((D & ((1 << 5) - 1)) << 16))
377
378 #define MPU_LW_IS(S,D) (0x64600000 | ((S & ((1 << 16) - 1)) << 0)\
379                             | ((D & ((1 << 5) - 1)) << 16))
380
381 #define MPU_LW_RR(S,D) (0x66400000 | ((S & ((1 << 5) - 1)) << 11)\
382                             | ((D & ((1 << 5) - 1)) << 16))
383
384 #define MPU_LW_RS(S,D) (0x66600000 | ((S & ((1 << 5) - 1)) << 11)\
385                             | ((D & ((1 << 5) - 1)) << 16))
386
387 #define MPU_LW_SR(S,D) (0x67400000 | ((S & ((1 << 5) - 1)) << 11)\
388                             | ((D & ((1 << 5) - 1)) << 16))
389
390 #define MPU_LW_SS(S,D) (0x67600000 | ((S & ((1 << 5) - 1)) << 11)\
391                             | ((D & ((1 << 5) - 1)) << 16))
392
393 #define MPU_LW_RIR(S,N,D) (0x66400000 | ((S & ((1 << 5) - 1)) << 11)\
394                                | ((N & ((1 << 8) - 1)) << 0)\
395                                | ((D & ((1 << 5) - 1)) << 16))
396
397 #define MPU_LW_RIS(S,N,D) (0x66600000 | ((S & ((1 << 5) - 1)) << 11)\
398                                | ((N & ((1 << 8) - 1)) << 0)\
399                                | ((D & ((1 << 5) - 1)) << 16))
400
401 #define MPU_LW_SIR(S,N,D) (0x67400000 | ((S & ((1 << 5) - 1)) << 11)\
402                                | ((N & ((1 << 8) - 1)) << 0)\
403                                | ((D & ((1 << 5) - 1)) << 16))
404
405 #define MPU_LW_SIS(S,N,D) (0x67600000 | ((S & ((1 << 5) - 1)) << 11)\
406                                | ((N & ((1 << 8) - 1)) << 0)\
407                                | ((D & ((1 << 5) - 1)) << 16))
408
409 #define MPU_MOVE_RR(S,D) (0x40000081 | ((S & ((1 << 5) - 1)) << 11)\
410                               | ((D & ((1 << 5) - 1)) << 21))
411
412 #define MPU_MOVE_RS(S,D) (0x40000481 | ((S & ((1 << 5) - 1)) << 11)\
413                               | ((D & ((1 << 5) - 1)) << 21))
414
415 #define MPU_MOVE_SR(S,D) (0x40000181 | ((S & ((1 << 5) - 1)) << 11)\
416                               | ((D & ((1 << 5) - 1)) << 21))
417
418 #define MPU_MOVE_SS(S,D) (0x40000581 | ((S & ((1 << 5) - 1)) << 11)\
419                               | ((D & ((1 << 5) - 1)) << 21))
420
421 #define MPU_MOVEQ_IR(S,D) (0x24000000 | ((S & ((1 << 16) - 1)) << 0)\
422                                | ((D & ((1 << 5) - 1)) << 21))
423
424 #define MPU_MOVEQ_IS(S,D) (0x2C000000 | ((S & ((1 << 16) - 1)) << 0)\
425                                | ((D & ((1 << 5) - 1)) << 21))
426
427 #define MPU_MOVEX_IR_INSTR(S,D) (0xC0000081 | ((D & ((1 << 5) - 1)) << 21))
428
429 #define MPU_MOVEX_IR_IMM(S,D) (S & 0xFFFFFFFF)
430
431 #define MPU_MOVEX_IS_INSTR(S,D) (0xC0000481 | ((D & ((1 << 5) - 1)) << 21))
432
433 #define MPU_MOVEX_IS_IMM(S,D) (S & 0xFFFFFFFF)
434
435 #define MPU_NOP() (0x40000000)
436
437 #define MPU_NOT_RR(S,D) (0x40100081 | ((S & ((1 << 5) - 1)) << 11)\
438                              | ((D & ((1 << 5) - 1)) << 21))
439
440 #define MPU_NOT_RS(S,D) (0x40100481 | ((S & ((1 << 5) - 1)) << 11)\
441                              | ((D & ((1 << 5) - 1)) << 21))
442
443 #define MPU_NOT_SR(S,D) (0x40100181 | ((S & ((1 << 5) - 1)) << 11)\
444                              | ((D & ((1 << 5) - 1)) << 21))
445
446 #define MPU_NOT_SS(S,D) (0x40100581 | ((S & ((1 << 5) - 1)) << 11)\
447                              | ((D & ((1 << 5) - 1)) << 21))
448
449 #define MPU_OR_RRR(S,N,D) (0x4000008B | ((S & ((1 << 5) - 1)) << 16)\
450                                | ((N & ((1 << 5) - 1)) << 11)\
451                                | ((D & ((1 << 5) - 1)) << 21))
452
453 #define MPU_OR_RRS(S,N,D) (0x4000048B | ((S & ((1 << 5) - 1)) << 16)\
454                                | ((N & ((1 << 5) - 1)) << 11)\
455                                | ((D & ((1 << 5) - 1)) << 21))
456
457 #define MPU_OR_RSR(S,N,D) (0x4000018B | ((S & ((1 << 5) - 1)) << 16)\
458                                | ((N & ((1 << 5) - 1)) << 11)\
459                                | ((D & ((1 << 5) - 1)) << 21))
460
461 #define MPU_OR_RSS(S,N,D) (0x4000058B | ((S & ((1 << 5) - 1)) << 16)\
462                                | ((N & ((1 << 5) - 1)) << 11)\
463                                | ((D & ((1 << 5) - 1)) << 21))
464
465 #define MPU_OR_SRR(S,N,D) (0x4000028B | ((S & ((1 << 5) - 1)) << 16)\
466                                | ((N & ((1 << 5) - 1)) << 11)\
467                                | ((D & ((1 << 5) - 1)) << 21))
468
469 #define MPU_OR_SRS(S,N,D) (0x4000068B | ((S & ((1 << 5) - 1)) << 16)\
470                                | ((N & ((1 << 5) - 1)) << 11)\
471                                | ((D & ((1 << 5) - 1)) << 21))
472
473 #define MPU_OR_SSR(S,N,D) (0x4000038B | ((S & ((1 << 5) - 1)) << 16)\
474                                | ((N & ((1 << 5) - 1)) << 11)\
475                                | ((D & ((1 << 5) - 1)) << 21))
476
477 #define MPU_OR_SSS(S,N,D) (0x4000078B | ((S & ((1 << 5) - 1)) << 16)\
478                                | ((N & ((1 << 5) - 1)) << 11)\
479                                | ((D & ((1 << 5) - 1)) << 21))
480
481 #define MPU_ORQ_RIR(S,N,D) (0x0C000000 | ((S & ((1 << 5) - 1)) << 16)\
482                                 | ((N & ((1 << 16) - 1)) << 0)\
483                                 | ((D & ((1 << 5) - 1)) << 21))
484
485 #define MPU_ORQ_IRR(S,N,D) (0x0C000000 | ((S & ((1 << 16) - 1)) << 0)\
486                                 | ((N & ((1 << 5) - 1)) << 16)\
487                                 | ((D & ((1 << 5) - 1)) << 21))
488
489 #define MPU_ORX_RIR_INSTR(S,N,D) (0xC000008B | ((S & ((1 << 5) - 1)) << 16)\
490                                       | ((D & ((1 << 5) - 1)) << 21))
491
492 #define MPU_ORX_RIR_IMM(S,N,D) (N & 0xFFFFFFFF)
493
494 #define MPU_ORX_IRR_INSTR(S,N,D) (0xC000008B | ((N & ((1 << 5) - 1)) << 16)\
495                                       | ((D & ((1 << 5) - 1)) << 21))
496
497 #define MPU_ORX_IRR_IMM(S,N,D) (S & 0xFFFFFFFF)
498
499 #define MPU_ORX_SIR_INSTR(S,N,D) (0xC000028B | ((S & ((1 << 5) - 1)) << 16)\
500                                       | ((D & ((1 << 5) - 1)) << 21))
501
502 #define MPU_ORX_SIR_IMM(S,N,D) (N & 0xFFFFFFFF)
503
504 #define MPU_ORX_ISR_INSTR(S,N,D) (0xC000028B | ((N & ((1 << 5) - 1)) << 16)\
505                                       | ((D & ((1 << 5) - 1)) << 21))
506
507 #define MPU_ORX_ISR_IMM(S,N,D) (S & 0xFFFFFFFF)
508
509 #define MPU_ORX_RIS_INSTR(S,N,D) (0xC000048B | ((S & ((1 << 5) - 1)) << 16)\
510                                       | ((D & ((1 << 5) - 1)) << 21))
511
512 #define MPU_ORX_RIS_IMM(S,N,D) (N & 0xFFFFFFFF)
513
514 #define MPU_ORX_IRS_INSTR(S,N,D) (0xC000048B | ((N & ((1 << 5) - 1)) << 16)\
515                                       | ((D & ((1 << 5) - 1)) << 21))
516
517 #define MPU_ORX_IRS_IMM(S,N,D) (S & 0xFFFFFFFF)
518
519 #define MPU_ORX_SIS_INSTR(S,N,D) (0xC000068B | ((S & ((1 << 5) - 1)) << 16)\
520                                       | ((D & ((1 << 5) - 1)) << 21))
521
522 #define MPU_ORX_SIS_IMM(S,N,D) (N & 0xFFFFFFFF)
523
524 #define MPU_ORX_ISS_INSTR(S,N,D) (0xC000068B | ((N & ((1 << 5) - 1)) << 16)\
525                                       | ((D & ((1 << 5) - 1)) << 21))
526
527 #define MPU_ORX_ISS_IMM(S,N,D) (S & 0xFFFFFFFF)
528
529 #define MPU_RET() (0x63003000)
530
531 #define MPU_RETI() (0x63602800)
532
533 #define MPU_RR_IR(S,D) (0x50000000 | ((S & ((1 << 11) - 1)) << 0)\
534                             | ((D & ((1 << 5) - 1)) << 21))
535
536 #define MPU_RR_SR(S,D) (0x50008000 | ((S & ((1 << 5) - 1)) << 16)\
537                             | ((D & ((1 << 5) - 1)) << 21))
538
539 #define MPU_RW_RI(S,D) (0x56000000 | ((S & ((1 << 5) - 1)) << 11)\
540                             | ((D & ((1 << 11) - 1)) << 0))
541
542 #define MPU_RW_RS(S,D) (0x57000000 | ((S & ((1 << 5) - 1)) << 11)\
543                             | ((D & ((1 << 5) - 1)) << 16))
544
545 #define MPU_RWQ_II(S,D) (0x58000000 | ((S & ((1 << 16) - 1)) << 11)\
546                              | ((D & ((1 << 11) - 1)) << 0))
547
548 #define MPU_RWQ_IS(S,D) (0x55000000 | ((S & ((1 << 16) - 1)) << 0)\
549                              | ((D & ((1 << 5) - 1)) << 16))
550
551 #define MPU_RWX_II_INSTR(S,D) (0xD4000000 | ((D & ((1 << 11) - 1)) << 0))
552
553 #define MPU_RWX_II_IMM(S,D) (S & 0xFFFFFFFF)
554
555 #define MPU_RWX_IS_INSTR(S,D) (0xD5000000 | ((D & ((1 << 5) - 1)) << 16))
556
557 #define MPU_RWX_IS_IMM(S,D) (S & 0xFFFFFFFF)
558
559 #define MPU_SUB_RRR(S,N,D) (0x4000008D | ((S & ((1 << 5) - 1)) << 16)\
560                                 | ((N & ((1 << 5) - 1)) << 11)\
561                                 | ((D & ((1 << 5) - 1)) << 21))
562
563 #define MPU_SUB_RRS(S,N,D) (0x4000048D | ((S & ((1 << 5) - 1)) << 16)\
564                                 | ((N & ((1 << 5) - 1)) << 11)\
565                                 | ((D & ((1 << 5) - 1)) << 21))
566
567 #define MPU_SUB_RSR(S,N,D) (0x4000018D | ((S & ((1 << 5) - 1)) << 16)\
568                                 | ((N & ((1 << 5) - 1)) << 11)\
569                                 | ((D & ((1 << 5) - 1)) << 21))
570
571 #define MPU_SUB_RSS(S,N,D) (0x4000058D | ((S & ((1 << 5) - 1)) << 16)\
572                                 | ((N & ((1 << 5) - 1)) << 11)\
573                                 | ((D & ((1 << 5) - 1)) << 21))
574
575 #define MPU_SUB_SRR(S,N,D) (0x4000028D | ((S & ((1 << 5) - 1)) << 16)\
576                                 | ((N & ((1 << 5) - 1)) << 11)\
577                                 | ((D & ((1 << 5) - 1)) << 21))
578
579 #define MPU_SUB_SRS(S,N,D) (0x4000068D | ((S & ((1 << 5) - 1)) << 16)\
580                                 | ((N & ((1 << 5) - 1)) << 11)\
581                                 | ((D & ((1 << 5) - 1)) << 21))
582
583 #define MPU_SUB_SSR(S,N,D) (0x4000038D | ((S & ((1 << 5) - 1)) << 16)\
584                                 | ((N & ((1 << 5) - 1)) << 11)\
585                                 | ((D & ((1 << 5) - 1)) << 21))
586
587 #define MPU_SUB_SSS(S,N,D) (0x4000078D | ((S & ((1 << 5) - 1)) << 16)\
588                                 | ((N & ((1 << 5) - 1)) << 11)\
589                                 | ((D & ((1 << 5) - 1)) << 21))
590
591 #define MPU_SUBQ_RIR(S,N,D) (0x14000000 | ((S & ((1 << 5) - 1)) << 16)\
592                                  | ((N & ((1 << 16) - 1)) << 0)\
593                                  | ((D & ((1 << 5) - 1)) << 21))
594
595 #define MPU_SUBX_RIR_INSTR(S,N,D) (0xC000008D | ((S & ((1 << 5) - 1)) << 16)\
596                                        | ((D & ((1 << 5) - 1)) << 21))
597
598 #define MPU_SUBX_RIR_IMM(S,N,D) (N & 0xFFFFFFFF)
599
600 #define MPU_SUBX_SIR_INSTR(S,N,D) (0xC000028D | ((S & ((1 << 5) - 1)) << 16)\
601                                        | ((D & ((1 << 5) - 1)) << 21))
602
603 #define MPU_SUBX_SIR_IMM(S,N,D) (N & 0xFFFFFFFF)
604
605 #define MPU_SUBX_RIS_INSTR(S,N,D) (0xC000048D | ((S & ((1 << 5) - 1)) << 16)\
606                                        | ((D & ((1 << 5) - 1)) << 21))
607
608 #define MPU_SUBX_RIS_IMM(S,N,D) (N & 0xFFFFFFFF)
609
610 #define MPU_SUBX_SIS_INSTR(S,N,D) (0xC000068D | ((S & ((1 << 5) - 1)) << 16)\
611                                        | ((D & ((1 << 5) - 1)) << 21))
612
613 #define MPU_SUBX_SIS_IMM(S,N,D) (N & 0xFFFFFFFF)
614
615 #define MPU_SW_RI(S,D) (0x64000000 | ((S & ((1 << 5) - 1)) << 16)\
616                             | ((D & ((1 << 16) - 1)) << 0))
617
618 #define MPU_SW_SI(S,D) (0x64200000 | ((S & ((1 << 5) - 1)) << 16)\
619                             | ((D & ((1 << 16) - 1)) << 0))
620
621 #define MPU_SW_RR(S,D) (0x66000000 | ((S & ((1 << 5) - 1)) << 16)\
622                             | ((D & ((1 << 5) - 1)) << 11))
623
624 #define MPU_SW_SR(S,D) (0x66200000 | ((S & ((1 << 5) - 1)) << 16)\
625                             | ((D & ((1 << 5) - 1)) << 11))
626
627 #define MPU_SW_RS(S,D) (0x67000000 | ((S & ((1 << 5) - 1)) << 16)\
628                             | ((D & ((1 << 5) - 1)) << 11))
629
630 #define MPU_SW_SS(S,D) (0x67200000 | ((S & ((1 << 5) - 1)) << 16)\
631                             | ((D & ((1 << 5) - 1)) << 11))
632
633 #define MPU_SW_RIR(S,N,D) (0x66000000 | ((S & ((1 << 5) - 1)) << 16)\
634                                | ((N & ((1 << 8) - 1)) << 0)\
635                                | ((D & ((1 << 5) - 1)) << 11))
636
637 #define MPU_SW_SIR(S,N,D) (0x66200000 | ((S & ((1 << 5) - 1)) << 16)\
638                                | ((N & ((1 << 8) - 1)) << 0)\
639                                | ((D & ((1 << 5) - 1)) << 11))
640
641 #define MPU_SW_RIS(S,N,D) (0x67000000 | ((S & ((1 << 5) - 1)) << 16)\
642                                | ((N & ((1 << 8) - 1)) << 0)\
643                                | ((D & ((1 << 5) - 1)) << 11))
644
645 #define MPU_SW_SIS(S,N,D) (0x67200000 | ((S & ((1 << 5) - 1)) << 16)\
646                                | ((N & ((1 << 8) - 1)) << 0)\
647                                | ((D & ((1 << 5) - 1)) << 11))
648
649 #define MPU_SWX_II_INSTR(S,D) (0xE4000000 | ((D & ((1 << 16) - 1)) << 0))
650
651 #define MPU_SWX_II_IMM(S,D) (S & 0xFFFFFFFF)
652
653 #define MPU_SWX_IR_INSTR(S,D) (0xE6000000 | ((D & ((1 << 5) - 1)) << 11))
654
655 #define MPU_SWX_IR_IMM(S,D) (S & 0xFFFFFFFF)
656
657 #define MPU_SWX_IS_INSTR(S,D) (0xE7000000 | ((D & ((1 << 5) - 1)) << 11))
658
659 #define MPU_SWX_IS_IMM(S,D) (S & 0xFFFFFFFF)
660
661 #define MPU_SWX_IIR_INSTR(S,N,D) (0xE6000000 | ((N & ((1 << 8) - 1)) << 0)\
662                                       | ((D & ((1 << 5) - 1)) << 11))
663
664 #define MPU_SWX_IIR_IMM(S,N,D) (S & 0xFFFFFFFF)
665
666 #define MPU_SWX_IIS_INSTR(S,N,D) (0xE7000000 | ((N & ((1 << 8) - 1)) << 0)\
667                                       | ((D & ((1 << 5) - 1)) << 11))
668
669 #define MPU_SWX_IIS_IMM(S,N,D) (S & 0xFFFFFFFF)
670
671 #define MPU_XOR_RRR(S,N,D) (0x40000089 | ((S & ((1 << 5) - 1)) << 16)\
672                                 | ((N & ((1 << 5) - 1)) << 11)\
673                                 | ((D & ((1 << 5) - 1)) << 21))
674
675 #define MPU_XOR_RRS(S,N,D) (0x40000489 | ((S & ((1 << 5) - 1)) << 16)\
676                                 | ((N & ((1 << 5) - 1)) << 11)\
677                                 | ((D & ((1 << 5) - 1)) << 21))
678
679 #define MPU_XOR_RSR(S,N,D) (0x40000189 | ((S & ((1 << 5) - 1)) << 16)\
680                                 | ((N & ((1 << 5) - 1)) << 11)\
681                                 | ((D & ((1 << 5) - 1)) << 21))
682
683 #define MPU_XOR_RSS(S,N,D) (0x40000589 | ((S & ((1 << 5) - 1)) << 16)\
684                                 | ((N & ((1 << 5) - 1)) << 11)\
685                                 | ((D & ((1 << 5) - 1)) << 21))
686
687 #define MPU_XOR_SRR(S,N,D) (0x40000289 | ((S & ((1 << 5) - 1)) << 16)\
688                                 | ((N & ((1 << 5) - 1)) << 11)\
689                                 | ((D & ((1 << 5) - 1)) << 21))
690
691 #define MPU_XOR_SRS(S,N,D) (0x40000689 | ((S & ((1 << 5) - 1)) << 16)\
692                                 | ((N & ((1 << 5) - 1)) << 11)\
693                                 | ((D & ((1 << 5) - 1)) << 21))
694
695 #define MPU_XOR_SSR(S,N,D) (0x40000389 | ((S & ((1 << 5) - 1)) << 16)\
696                                 | ((N & ((1 << 5) - 1)) << 11)\
697                                 | ((D & ((1 << 5) - 1)) << 21))
698
699 #define MPU_XOR_SSS(S,N,D) (0x40000789 | ((S & ((1 << 5) - 1)) << 16)\
700                                 | ((N & ((1 << 5) - 1)) << 11)\
701                                 | ((D & ((1 << 5) - 1)) << 21))
702
703 #define MPU_XOR_RR(S,D) (0x40000088 | ((S & ((1 << 5) - 1)) << 11)\
704                              | ((D & ((1 << 5) - 1)) << 21))
705
706 #define MPU_XOR_RS(S,D) (0x40000488 | ((S & ((1 << 5) - 1)) << 11)\
707                              | ((D & ((1 << 5) - 1)) << 21))
708
709 #define MPU_XOR_SR(S,D) (0x40000188 | ((S & ((1 << 5) - 1)) << 11)\
710                              | ((D & ((1 << 5) - 1)) << 21))
711
712 #define MPU_XOR_SS(S,D) (0x40000588 | ((S & ((1 << 5) - 1)) << 11)\
713                              | ((D & ((1 << 5) - 1)) << 21))
714
715 #define MPU_XORQ_RIR(S,N,D) (0x04000000 | ((S & ((1 << 5) - 1)) << 16)\
716                                  | ((N & ((1 << 16) - 1)) << 0)\
717                                  | ((D & ((1 << 5) - 1)) << 21))
718
719 #define MPU_XORQ_IRR(S,N,D) (0x04000000 | ((S & ((1 << 16) - 1)) << 0)\
720                                  | ((N & ((1 << 5) - 1)) << 16)\
721                                  | ((D & ((1 << 5) - 1)) << 21))
722
723 #define MPU_XORX_RIR_INSTR(S,N,D) (0xC0000089 | ((S & ((1 << 5) - 1)) << 16)\
724                                        | ((D & ((1 << 5) - 1)) << 21))
725
726 #define MPU_XORX_RIR_IMM(S,N,D) (N & 0xFFFFFFFF)
727
728 #define MPU_XORX_IRR_INSTR(S,N,D) (0xC0000089 | ((N & ((1 << 5) - 1)) << 16)\
729                                        | ((D & ((1 << 5) - 1)) << 21))
730
731 #define MPU_XORX_IRR_IMM(S,N,D) (S & 0xFFFFFFFF)
732
733 #define MPU_XORX_SIR_INSTR(S,N,D) (0xC0000289 | ((S & ((1 << 5) - 1)) << 16)\
734                                        | ((D & ((1 << 5) - 1)) << 21))
735
736 #define MPU_XORX_SIR_IMM(S,N,D) (N & 0xFFFFFFFF)
737
738 #define MPU_XORX_ISR_INSTR(S,N,D) (0xC0000289 | ((N & ((1 << 5) - 1)) << 16)\
739                                        | ((D & ((1 << 5) - 1)) << 21))
740
741 #define MPU_XORX_ISR_IMM(S,N,D) (S & 0xFFFFFFFF)
742
743 #define MPU_XORX_RIS_INSTR(S,N,D) (0xC0000489 | ((S & ((1 << 5) - 1)) << 16)\
744                                        | ((D & ((1 << 5) - 1)) << 21))
745
746 #define MPU_XORX_RIS_IMM(S,N,D) (N & 0xFFFFFFFF)
747
748 #define MPU_XORX_IRS_INSTR(S,N,D) (0xC0000489 | ((N & ((1 << 5) - 1)) << 16)\
749                                        | ((D & ((1 << 5) - 1)) << 21))
750
751 #define MPU_XORX_IRS_IMM(S,N,D) (S & 0xFFFFFFFF)
752
753 #define MPU_XORX_SIS_INSTR(S,N,D) (0xC0000689 | ((S & ((1 << 5) - 1)) << 16)\
754                                        | ((D & ((1 << 5) - 1)) << 21))
755
756 #define MPU_XORX_SIS_IMM(S,N,D) (N & 0xFFFFFFFF)
757
758 #define MPU_XORX_ISS_INSTR(S,N,D) (0xC0000689 | ((N & ((1 << 5) - 1)) << 16)\
759                                        | ((D & ((1 << 5) - 1)) << 21))
760
761 #define MPU_XORX_ISS_IMM(S,N,D) (S & 0xFFFFFFFF)
762
763
764 #endif /* end of __IOP_MPU_MACROS_H__ */
765 /* End of iop_mpu_macros.h */