1735ee005SGuo Ren /* SPDX-License-Identifier: GPL-2.0 */ 2735ee005SGuo Ren 3735ee005SGuo Ren #ifndef __ASM_REGS_OPS_H 4735ee005SGuo Ren #define __ASM_REGS_OPS_H 5735ee005SGuo Ren 6735ee005SGuo Ren #define mfcr(reg) \ 7735ee005SGuo Ren ({ \ 8735ee005SGuo Ren unsigned int tmp; \ 9735ee005SGuo Ren asm volatile( \ 10735ee005SGuo Ren "mfcr %0, "reg"\n" \ 11735ee005SGuo Ren : "=r"(tmp) \ 12735ee005SGuo Ren : \ 13735ee005SGuo Ren : "memory"); \ 14735ee005SGuo Ren tmp; \ 15735ee005SGuo Ren }) 16735ee005SGuo Ren 17735ee005SGuo Ren #define mtcr(reg, val) \ 18735ee005SGuo Ren ({ \ 19735ee005SGuo Ren asm volatile( \ 20735ee005SGuo Ren "mtcr %0, "reg"\n" \ 21735ee005SGuo Ren : \ 22735ee005SGuo Ren : "r"(val) \ 23735ee005SGuo Ren : "memory"); \ 24735ee005SGuo Ren }) 25735ee005SGuo Ren 26735ee005SGuo Ren #endif /* __ASM_REGS_OPS_H */ 27