diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2004-10-27 06:49:15 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2004-10-27 06:49:15 +0000 |
commit | abeb582a9cb347bcf14b265ad1fa5ff5caa5ed6b (patch) | |
tree | 27fe4a89450fee6ede5cf485be27f639b10d961e | |
parent | bf41fcee8b46fe0c3f52c7d6431ea1effc0c3a5e (diff) | |
download | rockbox-abeb582a9cb347bcf14b265ad1fa5ff5caa5ed6b.tar.gz rockbox-abeb582a9cb347bcf14b265ad1fa5ff5caa5ed6b.zip |
Coldfire: set_irq_level() mixed up the in/out registers
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5363 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/export/system.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/firmware/export/system.h b/firmware/export/system.h index 7ac5c1d1d5..1205e9360b 100644 --- a/firmware/export/system.h +++ b/firmware/export/system.h | |||
@@ -147,12 +147,12 @@ enum { | |||
147 | #define HIGHEST_IRQ_LEVEL (7<<8) | 147 | #define HIGHEST_IRQ_LEVEL (7<<8) |
148 | static inline int set_irq_level(int level) | 148 | static inline int set_irq_level(int level) |
149 | { | 149 | { |
150 | int i; | 150 | int oldlevel; |
151 | /* Read the old level and set the new one */ | 151 | /* Read the old level and set the new one */ |
152 | asm volatile ("move.w %%sr,%0\n" | 152 | asm volatile ("move.w %%sr,%0\n" |
153 | "or.l #0x2000,%1\n" | 153 | "or.l #0x2000,%1\n" |
154 | "move.w %1,%%sr\n" : "=r" (i) : "r" (level)); | 154 | "move.w %1,%%sr\n" : "=r" (oldlevel), "+r" (level) : ); |
155 | return i; | 155 | return oldlevel; |
156 | } | 156 | } |
157 | 157 | ||
158 | #endif | 158 | #endif |