1
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
39mrc p1, 0, \dest, \control, c0, 0
40.endm
41
42.macro tmcr, control:req, src:req
43mcr p1, 0, \src, \control, c0, 0
44.endm
45#endif
46
47#endif
48