Go to the documentation of this file.
10 #ifndef _ASM_M32R_IRQFLAGS_H
11 #define _ASM_M32R_IRQFLAGS_H
13 #include <linux/types.h>
18 asm volatile(
"mvfc %0,psw" :
"=r"(
flags));
24 #if !defined(CONFIG_CHIP_M32102) && !defined(CONFIG_CHIP_M32104)
29 unsigned long tmpreg0, tmpreg1;
31 "ld24 %0, #0 ; Use 32-bit insn. \n\t"
32 "mvfc %1, psw ; No interrupt can be accepted here. \n\t"
34 "and3 %0, %1, #0xffbf \n\t"
36 :
"=&r" (tmpreg0),
"=&r" (tmpreg1)
44 #if !defined(CONFIG_CHIP_M32102) && !defined(CONFIG_CHIP_M32104)
52 "or3 %0, %0, #0x0040; \n\t"
64 #if !(defined(CONFIG_CHIP_M32102) || defined(CONFIG_CHIP_M32104))
67 "clrpsw #0x40 -> nop; \n\t"
77 "and3 %1, %0, #0xffbf \n\t"
79 :
"=r" (
flags),
"=&r" (tmpreg)
88 asm volatile(
"mvtc %0,psw"
96 return !(flags & 0x40);