xref: /linux/arch/sh/include/asm/bl_bit_32.h (revision 0d456bad36d42d16022be045c8a53ddbb59ee478)
1 #ifndef __ASM_SH_BL_BIT_32_H
2 #define __ASM_SH_BL_BIT_32_H
3 
4 static inline void set_bl_bit(void)
5 {
6 	unsigned long __dummy0, __dummy1;
7 
8 	__asm__ __volatile__ (
9 		"stc	sr, %0\n\t"
10 		"or	%2, %0\n\t"
11 		"and	%3, %0\n\t"
12 		"ldc	%0, sr\n\t"
13 		: "=&r" (__dummy0), "=r" (__dummy1)
14 		: "r" (0x10000000), "r" (0xffffff0f)
15 		: "memory"
16 	);
17 }
18 
19 static inline void clear_bl_bit(void)
20 {
21 	unsigned long __dummy0, __dummy1;
22 
23 	__asm__ __volatile__ (
24 		"stc	sr, %0\n\t"
25 		"and	%2, %0\n\t"
26 		"ldc	%0, sr\n\t"
27 		: "=&r" (__dummy0), "=r" (__dummy1)
28 		: "1" (~0x10000000)
29 		: "memory"
30 	);
31 }
32 
33 #endif /* __ASM_SH_BL_BIT_32_H */
34