xref: /openbmc/linux/arch/csky/include/asm/reg_ops.h (revision 735ee005)
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