[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>
This commit is contained in:
Родитель
53617825cc
Коммит
6bf9f755c3
|
@ -156,13 +156,17 @@ typedef struct sigaltstack {
|
|||
|
||||
static inline void sigaddset(sigset_t *set, int _sig)
|
||||
{
|
||||
__asm__("bfset %0{%1,#1}" : "=m" (*set) : "id" ((_sig - 1) ^ 31)
|
||||
asm ("bfset %0{%1,#1}"
|
||||
: "+od" (*set)
|
||||
: "id" ((_sig - 1) ^ 31)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
static inline void sigdelset(sigset_t *set, int _sig)
|
||||
{
|
||||
__asm__("bfclr %0{%1,#1}" : "=m"(*set) : "id"((_sig - 1) ^ 31)
|
||||
asm ("bfclr %0{%1,#1}"
|
||||
: "+od" (*set)
|
||||
: "id" ((_sig - 1) ^ 31)
|
||||
: "cc");
|
||||
}
|
||||
|
||||
|
@ -175,8 +179,10 @@ static inline int __const_sigismember(sigset_t *set, int _sig)
|
|||
static inline int __gen_sigismember(sigset_t *set, int _sig)
|
||||
{
|
||||
int ret;
|
||||
__asm__("bfextu %1{%2,#1},%0"
|
||||
: "=d"(ret) : "m"(*set), "id"((_sig-1) ^ 31));
|
||||
asm ("bfextu %1{%2,#1},%0"
|
||||
: "=d" (ret)
|
||||
: "od" (*set), "id" ((_sig-1) ^ 31)
|
||||
: "cc");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -187,7 +193,10 @@ static inline int __gen_sigismember(sigset_t *set, int _sig)
|
|||
|
||||
static inline int sigfindinword(unsigned long word)
|
||||
{
|
||||
__asm__("bfffo %1{#0,#0},%0" : "=d"(word) : "d"(word & -word) : "cc");
|
||||
asm ("bfffo %1{#0,#0},%0"
|
||||
: "=d" (word)
|
||||
: "d" (word & -word)
|
||||
: "cc");
|
||||
return word ^ 31;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче