Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 88926
b: refs/heads/master
c: 286275c
h: refs/heads/master
v: v3
  • Loading branch information
Joe Perches authored and Ingo Molnar committed Apr 17, 2008
1 parent b70e962 commit 629f690
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 25 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 49f74946f008add0b22723244976a32b365de06f
refs/heads/master: 286275c90f148562b973b1e1f39f9689e6676dc4
37 changes: 13 additions & 24 deletions trunk/include/asm-x86/bitops.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,13 @@
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 1)
/* Technically wrong, but this avoids compilation errors on some gcc
versions. */
#define ADDR "=m" (*(volatile long *) addr)
#define BIT_ADDR "=m" (((volatile int *) addr)[nr >> 5])
#define ADDR "=m" (*(volatile long *)addr)
#define BIT_ADDR "=m" (((volatile int *)addr)[nr >> 5])
#else
#define ADDR "+m" (*(volatile long *) addr)
#define BIT_ADDR "+m" (((volatile int *) addr)[nr >> 5])
#define BIT_ADDR "+m" (((volatile int *)addr)[nr >> 5])
#endif
#define BASE_ADDR "m" (*(volatile int *) addr)
#define BASE_ADDR "m" (*(volatile int *)addr)

/**
* set_bit - Atomically set a bit in memory
Expand All @@ -48,9 +48,7 @@
*/
static inline void set_bit(int nr, volatile void *addr)
{
asm volatile(LOCK_PREFIX "bts %1,%0"
: ADDR
: "Ir" (nr) : "memory");
asm volatile(LOCK_PREFIX "bts %1,%0" : ADDR : "Ir" (nr) : "memory");
}

/**
Expand Down Expand Up @@ -82,8 +80,7 @@ static inline void __set_bit(int nr, volatile void *addr)
*/
static inline void clear_bit(int nr, volatile void *addr)
{
asm volatile(LOCK_PREFIX "btr %1,%2"
: BIT_ADDR : "Ir" (nr), BASE_ADDR);
asm volatile(LOCK_PREFIX "btr %1,%2" : BIT_ADDR : "Ir" (nr), BASE_ADDR);
}

/*
Expand Down Expand Up @@ -151,8 +148,7 @@ static inline void __change_bit(int nr, volatile void *addr)
*/
static inline void change_bit(int nr, volatile void *addr)
{
asm volatile(LOCK_PREFIX "btc %1,%2"
: BIT_ADDR : "Ir" (nr), BASE_ADDR);
asm volatile(LOCK_PREFIX "btc %1,%2" : BIT_ADDR : "Ir" (nr), BASE_ADDR);
}

/**
Expand All @@ -168,9 +164,7 @@ static inline int test_and_set_bit(int nr, volatile void *addr)
int oldbit;

asm volatile(LOCK_PREFIX "bts %2,%1\n\t"
"sbb %0,%0"
: "=r" (oldbit), ADDR
: "Ir" (nr) : "memory");
"sbb %0,%0" : "=r" (oldbit), ADDR : "Ir" (nr) : "memory");

return oldbit;
}
Expand Down Expand Up @@ -202,8 +196,7 @@ static inline int __test_and_set_bit(int nr, volatile void *addr)

asm volatile("bts %2,%3\n\t"
"sbb %0,%0"
: "=r" (oldbit), BIT_ADDR
: "Ir" (nr), BASE_ADDR);
: "=r" (oldbit), BIT_ADDR : "Ir" (nr), BASE_ADDR);
return oldbit;
}

Expand All @@ -221,8 +214,7 @@ static inline int test_and_clear_bit(int nr, volatile void *addr)

asm volatile(LOCK_PREFIX "btr %2,%1\n\t"
"sbb %0,%0"
: "=r" (oldbit), ADDR
: "Ir" (nr) : "memory");
: "=r" (oldbit), ADDR : "Ir" (nr) : "memory");

return oldbit;
}
Expand All @@ -242,8 +234,7 @@ static inline int __test_and_clear_bit(int nr, volatile void *addr)

asm volatile("btr %2,%3\n\t"
"sbb %0,%0"
: "=r" (oldbit), BIT_ADDR
: "Ir" (nr), BASE_ADDR);
: "=r" (oldbit), BIT_ADDR : "Ir" (nr), BASE_ADDR);
return oldbit;
}

Expand All @@ -254,8 +245,7 @@ static inline int __test_and_change_bit(int nr, volatile void *addr)

asm volatile("btc %2,%3\n\t"
"sbb %0,%0"
: "=r" (oldbit), BIT_ADDR
: "Ir" (nr), BASE_ADDR);
: "=r" (oldbit), BIT_ADDR : "Ir" (nr), BASE_ADDR);

return oldbit;
}
Expand All @@ -274,8 +264,7 @@ static inline int test_and_change_bit(int nr, volatile void *addr)

asm volatile(LOCK_PREFIX "btc %2,%1\n\t"
"sbb %0,%0"
: "=r" (oldbit), ADDR
: "Ir" (nr) : "memory");
: "=r" (oldbit), ADDR : "Ir" (nr) : "memory");

return oldbit;
}
Expand Down

0 comments on commit 629f690

Please sign in to comment.