Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 65273
b: refs/heads/master
c: 9ea0f04
h: refs/heads/master
i:
  65271: 0191fc1
v: v3
  • Loading branch information
Ralf Baechle committed Oct 3, 2007
1 parent 68ca5d9 commit a1c3905
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 69 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: fef74705ea310acd716c2722bfeb0f796cf23640
refs/heads/master: 9ea0f043fec38fadb0101fbf29563a5635f42e93
68 changes: 0 additions & 68 deletions trunk/include/asm-mips/local.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,68 +115,6 @@ static __inline__ long local_sub_return(long i, local_t * l)
return result;
}

/*
* local_sub_if_positive - conditionally subtract integer from atomic variable
* @i: integer value to subtract
* @l: pointer of type local_t
*
* Atomically test @l and subtract @i if @l is greater or equal than @i.
* The function returns the old value of @l minus @i.
*/
static __inline__ long local_sub_if_positive(long i, local_t * l)
{
unsigned long result;

if (cpu_has_llsc && R10000_LLSC_WAR) {
unsigned long temp;

__asm__ __volatile__(
" .set mips3 \n"
"1:" __LL "%1, %2 # local_sub_if_positive\n"
" dsubu %0, %1, %3 \n"
" bltz %0, 1f \n"
__SC "%0, %2 \n"
" .set noreorder \n"
" beqzl %0, 1b \n"
" dsubu %0, %1, %3 \n"
" .set reorder \n"
"1: \n"
" .set mips0 \n"
: "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
: "Ir" (i), "m" (l->a.counter)
: "memory");
} else if (cpu_has_llsc) {
unsigned long temp;

__asm__ __volatile__(
" .set mips3 \n"
"1:" __LL "%1, %2 # local_sub_if_positive\n"
" dsubu %0, %1, %3 \n"
" bltz %0, 1f \n"
__SC "%0, %2 \n"
" .set noreorder \n"
" beqz %0, 1b \n"
" dsubu %0, %1, %3 \n"
" .set reorder \n"
"1: \n"
" .set mips0 \n"
: "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
: "Ir" (i), "m" (l->a.counter)
: "memory");
} else {
unsigned long flags;

local_irq_save(flags);
result = l->a.counter;
result -= i;
if (result >= 0)
l->a.counter = result;
local_irq_restore(flags);
}

return result;
}

#define local_cmpxchg(l, o, n) \
((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
#define local_xchg(l, n) (xchg_local(&((l)->a.counter),(n)))
Expand Down Expand Up @@ -234,12 +172,6 @@ static __inline__ long local_sub_if_positive(long i, local_t * l)
*/
#define local_dec_and_test(l) (local_sub_return(1, (l)) == 0)

/*
* local_dec_if_positive - decrement by 1 if old value positive
* @l: pointer of type local_t
*/
#define local_dec_if_positive(l) local_sub_if_positive(1, l)

/*
* local_add_negative - add and test if negative
* @l: pointer of type local_t
Expand Down

0 comments on commit a1c3905

Please sign in to comment.