48 lines
970 B
C
48 lines
970 B
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
|
||
|
#ifndef __IWMMXT_H__
|
||
|
#define __IWMMXT_H__
|
||
|
|
||
|
.irp b, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
||
|
.set .LwR\b, \b
|
||
|
.set .Lr\b, \b
|
||
|
.endr
|
||
|
|
||
|
.set .LwCSSF, 0x2
|
||
|
.set .LwCASF, 0x3
|
||
|
.set .LwCGR0, 0x8
|
||
|
.set .LwCGR1, 0x9
|
||
|
.set .LwCGR2, 0xa
|
||
|
.set .LwCGR3, 0xb
|
||
|
|
||
|
.macro wldrd, reg:req, base:req, offset:req
|
||
|
.inst 0xedd00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
|
||
|
.endm
|
||
|
|
||
|
.macro wldrw, reg:req, base:req, offset:req
|
||
|
.inst 0xfd900100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
|
||
|
.endm
|
||
|
|
||
|
.macro wstrd, reg:req, base:req, offset:req
|
||
|
.inst 0xedc00100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
|
||
|
.endm
|
||
|
|
||
|
.macro wstrw, reg:req, base:req, offset:req
|
||
|
.inst 0xfd800100 | (.L\reg << 12) | (.L\base << 16) | (\offset >> 2)
|
||
|
.endm
|
||
|
|
||
|
#ifdef __clang__
|
||
|
|
||
|
#define wCon c1
|
||
|
|
||
|
.macro tmrc, dest:req, control:req
|
||
|
mrc p1, 0, \dest, \control, c0, 0
|
||
|
.endm
|
||
|
|
||
|
.macro tmcr, control:req, src:req
|
||
|
mcr p1, 0, \src, \control, c0, 0
|
||
|
.endm
|
||
|
#endif
|
||
|
|
||
|
#endif
|