summaryrefslogtreecommitdiff
path: root/firmware/target/arm
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-04-30 08:47:34 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-04-30 08:47:34 +0000
commit0987a6be89bb369aa6cfa9befce7af8667fa4d2c (patch)
tree146db26bc625259d6cde81b3f14100349b0f31e4 /firmware/target/arm
parentc7f84b67634330763d3d531f4433581ac29c987e (diff)
This is how it should have been done.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13292 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm')
-rw-r--r--firmware/target/arm/system-arm.h3
1 files changed, 1 insertions, 2 deletions
diff --git a/firmware/target/arm/system-arm.h b/firmware/target/arm/system-arm.h
index 5cacc4cf62..775b1ba1c9 100644
--- a/firmware/target/arm/system-arm.h
+++ b/firmware/target/arm/system-arm.h
@@ -97,10 +97,9 @@ static inline int set_irq_level(int level)
asm volatile (
"mrs %1, cpsr \n"
"bic %0, %1, #0x80 \n"
- "and %2, %2, #0x80 \n"
"orr %0, %0, %2 \n"
"msr cpsr_c, %0 \n"
- : "=&r"(cpsr), "=&r"(oldlevel), "+&r"(level)
+ : "=&r,r"(cpsr), "=&r,r"(oldlevel) : "r,i"(level & 0x80)
);
return oldlevel;
}