0001
0002
0003 #ifndef __IWMMXT_H__
0004 #define __IWMMXT_H__
0005
0006 .irp b, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
0007 .set .LwR\b, \b
0008 .set .Lr\b, \b
0009 .endr
0010
0011 .set .LwCSSF, 0x2
0012 .set .LwCASF, 0x3
0013 .set .LwCGR0, 0x8
0014 .set .LwCGR1, 0x9
0015 .set .LwCGR2, 0xa
0016 .set .LwCGR3, 0xb
0017
0018 .macro wldrd, reg:req, base:req, offset:req
0019 .inst 0xedd00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
0020 .endm
0021
0022 .macro wldrw, reg:req, base:req, offset:req
0023 .inst 0xfd900100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
0024 .endm
0025
0026 .macro wstrd, reg:req, base:req, offset:req
0027 .inst 0xedc00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
0028 .endm
0029
0030 .macro wstrw, reg:req, base:req, offset:req
0031 .inst 0xfd800100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
0032 .endm
0033
0034 #ifdef __clang__
0035
0036 #define wCon c1
0037
0038 .macro tmrc, dest:req, control:req
0039 mrc p1, 0, \dest, \control, c0, 0
0040 .endm
0041
0042 .macro tmcr, control:req, src:req
0043 mcr p1, 0, \src, \control, c0, 0
0044 .endm
0045 #endif
0046
0047 #endif