summaryrefslogtreecommitdiff
path: root/firmware/target/arm/system-arm.h
diff options
context:
space:
mode:
authorThomas Martitz <kugel@rockbox.org>2009-11-15 17:23:25 +0000
committerThomas Martitz <kugel@rockbox.org>2009-11-15 17:23:25 +0000
commita1bc3401f1c65524ded556f131283b8864ac3733 (patch)
tree815006b4bda1ce692c45751e41b0103b32a2dda8 /firmware/target/arm/system-arm.h
parent8ceaf7bb7277f61b1ebfce816a0e05a3674d25c4 (diff)
downloadrockbox-a1bc3401f1c65524ded556f131283b8864ac3733.tar.gz
rockbox-a1bc3401f1c65524ded556f131283b8864ac3733.zip
Fix a few possible problems discovered in -O0 / eabi experiments.
- two essential parts of Sansa AMS drivers are optimzed away in newer gcc, so mark them volatile. - use "r" instead of "i" (which is apparently invalid syntax) for the input list in some inline assembly git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23634 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/arm/system-arm.h')
-rw-r--r--firmware/target/arm/system-arm.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/firmware/target/arm/system-arm.h b/firmware/target/arm/system-arm.h
index 0608f50a02..96afba4568 100644
--- a/firmware/target/arm/system-arm.h
+++ b/firmware/target/arm/system-arm.h
@@ -243,7 +243,7 @@ static inline void enable_interrupt(int mask)
243 "mrs %0, cpsr \n" 243 "mrs %0, cpsr \n"
244 "bic %0, %0, %1 \n" 244 "bic %0, %0, %1 \n"
245 "msr cpsr_c, %0 \n" 245 "msr cpsr_c, %0 \n"
246 : "=&r"(tmp) : "i"(mask)); 246 : "=&r"(tmp) : "r"(mask));
247} 247}
248 248
249static inline void disable_interrupt(int mask) 249static inline void disable_interrupt(int mask)
@@ -254,7 +254,7 @@ static inline void disable_interrupt(int mask)
254 "mrs %0, cpsr \n" 254 "mrs %0, cpsr \n"
255 "orr %0, %0, %1 \n" 255 "orr %0, %0, %1 \n"
256 "msr cpsr_c, %0 \n" 256 "msr cpsr_c, %0 \n"
257 : "=&r"(tmp) : "i"(mask)); 257 : "=&r"(tmp) : "r"(mask));
258} 258}
259 259
260static inline int disable_interrupt_save(int mask) 260static inline int disable_interrupt_save(int mask)
@@ -266,7 +266,7 @@ static inline int disable_interrupt_save(int mask)
266 "orr %0, %1, %2 \n" 266 "orr %0, %1, %2 \n"
267 "msr cpsr_c, %0 \n" 267 "msr cpsr_c, %0 \n"
268 : "=&r"(tmp), "=&r"(cpsr) 268 : "=&r"(tmp), "=&r"(cpsr)
269 : "i"(mask)); 269 : "r"(mask));
270 return cpsr; 270 return cpsr;
271} 271}
272 272