xref: /linux/arch/csky/abiv1/inc/abi/reg_ops.h (revision 0d3b051adbb72ed81956447d0d1e54d5943ee6f5)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
3 
4 #ifndef __ABI_REG_OPS_H
5 #define __ABI_REG_OPS_H
6 #include <asm/reg_ops.h>
7 
8 #define cprcr(reg)					\
9 ({							\
10 	unsigned int tmp;				\
11 	asm volatile("cprcr %0, "reg"\n":"=b"(tmp));	\
12 	tmp;						\
13 })
14 
15 #define cpwcr(reg, val)					\
16 ({							\
17 	asm volatile("cpwcr %0, "reg"\n"::"b"(val));	\
18 })
19 
20 static inline unsigned int mfcr_hint(void)
21 {
22 	return mfcr("cr30");
23 }
24 
25 static inline unsigned int mfcr_ccr2(void) { return 0; }
26 
27 #endif /* __ABI_REG_OPS_H */
28