aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-m68k
diff options
context:
space:
mode:
authorRoman Zippel <zippel@linux-m68k.org>2006-06-25 08:46:54 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-25 13:00:56 -0400
commit6bf9f755c3f30c81df17fce7d2f8dda11b9516a4 (patch)
tree79e44842ef7377829ee008ff1349a526a240c00e /include/asm-m68k
parent53617825ccf3ff8a71e6efcf3dcf58885ed6f3e5 (diff)
[PATCH] m68k: fix constraints of the signal functions and some cleanup
Signed-off-by: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-m68k')
-rw-r--r--include/asm-m68k/signal.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/include/asm-m68k/signal.h b/include/asm-m68k/signal.h
index b7b7ea20caab..85037a3d3e8e 100644
--- a/include/asm-m68k/signal.h
+++ b/include/asm-m68k/signal.h
@@ -156,13 +156,17 @@ typedef struct sigaltstack {
156 156
157static inline void sigaddset(sigset_t *set, int _sig) 157static inline void sigaddset(sigset_t *set, int _sig)
158{ 158{
159 __asm__("bfset %0{%1,#1}" : "=m" (*set) : "id" ((_sig - 1) ^ 31) 159 asm ("bfset %0{%1,#1}"
160 : "+od" (*set)
161 : "id" ((_sig - 1) ^ 31)
160 : "cc"); 162 : "cc");
161} 163}
162 164
163static inline void sigdelset(sigset_t *set, int _sig) 165static inline void sigdelset(sigset_t *set, int _sig)
164{ 166{
165 __asm__("bfclr %0{%1,#1}" : "=m"(*set) : "id"((_sig - 1) ^ 31) 167 asm ("bfclr %0{%1,#1}"
168 : "+od" (*set)
169 : "id" ((_sig - 1) ^ 31)
166 : "cc"); 170 : "cc");
167} 171}
168 172
@@ -175,8 +179,10 @@ static inline int __const_sigismember(sigset_t *set, int _sig)
175static inline int __gen_sigismember(sigset_t *set, int _sig) 179static inline int __gen_sigismember(sigset_t *set, int _sig)
176{ 180{
177 int ret; 181 int ret;
178 __asm__("bfextu %1{%2,#1},%0" 182 asm ("bfextu %1{%2,#1},%0"
179 : "=d"(ret) : "m"(*set), "id"((_sig-1) ^ 31)); 183 : "=d" (ret)
184 : "od" (*set), "id" ((_sig-1) ^ 31)
185 : "cc");
180 return ret; 186 return ret;
181} 187}
182 188
@@ -187,7 +193,10 @@ static inline int __gen_sigismember(sigset_t *set, int _sig)
187 193
188static inline int sigfindinword(unsigned long word) 194static inline int sigfindinword(unsigned long word)
189{ 195{
190 __asm__("bfffo %1{#0,#0},%0" : "=d"(word) : "d"(word & -word) : "cc"); 196 asm ("bfffo %1{#0,#0},%0"
197 : "=d" (word)
198 : "d" (word & -word)
199 : "cc");
191 return word ^ 31; 200 return word ^ 31;
192} 201}
193 202