From 8f04faef91e759aa97d85f403ba236278a25d9f6 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 25 Mar 2007 20:45:08 +0000 Subject: Save a couple bytes in set_irq_level on Coldfire. Should add up to something. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12912 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/coldfire/system-target.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'firmware/target') 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) { int oldlevel; /* Read the old level and set the new one */ - asm volatile ("move.w %%sr,%0\n" - "or.l #0x2000,%1\n" - "move.w %1,%%sr\n" : "=d" (oldlevel), "+d" (level) : ); + asm volatile ("move.w %%sr, %0 \n" + "bset.l #13, %1 \n" /* Keep supervisor state set */ + "move.w %1, %%sr \n" + : "=d"(oldlevel), "+d"(level)); return oldlevel; } -- cgit v1.2.3