1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | |
3 | #ifndef __IWMMXT_H__ |
4 | #define __IWMMXT_H__ |
5 | |
6 | .irp b, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 |
7 | .set .LwR\b, \b |
8 | .set .Lr\b, \b |
9 | .endr |
10 | |
11 | .set .LwCSSF, 0x2 |
12 | .set .LwCASF, 0x3 |
13 | .set .LwCGR0, 0x8 |
14 | .set .LwCGR1, 0x9 |
15 | .set .LwCGR2, 0xa |
16 | .set .LwCGR3, 0xb |
17 | |
18 | .macro wldrd, reg:req, base:req, offset:req |
19 | .inst 0xedd00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2) |
20 | .endm |
21 | |
22 | .macro wldrw, reg:req, base:req, offset:req |
23 | .inst 0xfd900100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2) |
24 | .endm |
25 | |
26 | .macro wstrd, reg:req, base:req, offset:req |
27 | .inst 0xedc00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2) |
28 | .endm |
29 | |
30 | .macro wstrw, reg:req, base:req, offset:req |
31 | .inst 0xfd800100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2) |
32 | .endm |
33 | |
34 | #ifdef __clang__ |
35 | |
36 | #define wCon c1 |
37 | |
38 | .macro tmrc, dest:req, control:req |
39 | mrc p1, 0, \dest, \control, c0, 0 |
40 | .endm |
41 | |
42 | .macro tmcr, control:req, src:req |
43 | mcr p1, 0, \src, \control, c0, 0 |
44 | .endm |
45 | #endif |
46 | |
47 | #endif |
48 | |