summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/coldfire/system-target.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/firmware/target/coldfire/system-target.h b/firmware/target/coldfire/system-target.h
index 97d096f0e8..c707843af5 100644
--- a/firmware/target/coldfire/system-target.h
+++ b/firmware/target/coldfire/system-target.h
@@ -71,9 +71,10 @@ static inline int set_irq_level(int level)
71{ 71{
72 int oldlevel; 72 int oldlevel;
73 /* Read the old level and set the new one */ 73 /* Read the old level and set the new one */
74 asm volatile ("move.w %%sr,%0\n" 74 asm volatile ("move.w %%sr, %0 \n"
75 "or.l #0x2000,%1\n" 75 "bset.l #13, %1 \n" /* Keep supervisor state set */
76 "move.w %1,%%sr\n" : "=d" (oldlevel), "+d" (level) : ); 76 "move.w %1, %%sr \n"
77 : "=d"(oldlevel), "+d"(level));
77 return oldlevel; 78 return oldlevel;
78} 79}
79 80