linux-atomic.c (__sync_val_compare_and_swap_4): Return actual_oldval.
* config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return actual_oldval. Use __builtin_expect. (SUBWORD_VAL_CAS): Likewise. From-SVN: r165339
This commit is contained in:
parent
a0a2a39912
commit
5dbae3676b
2 changed files with 14 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
|||
2010-10-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
|
||||
|
||||
* config/pa/linux-atomic.c (__sync_val_compare_and_swap_4): Return
|
||||
actual_oldval. Use __builtin_expect.
|
||||
(SUBWORD_VAL_CAS): Likewise.
|
||||
|
||||
2010-10-11 Nathan Froyd <froydnj@codesourcery.com>
|
||||
|
||||
* recog.c (nonmemory_operand): Call immediate_operand for
|
||||
|
|
|
@ -191,13 +191,13 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
|
|||
{
|
||||
actual_oldval = *ptr;
|
||||
|
||||
if (oldval != actual_oldval)
|
||||
if (__builtin_expect (oldval != actual_oldval, 0))
|
||||
return actual_oldval;
|
||||
|
||||
fail = __kernel_cmpxchg (actual_oldval, newval, ptr);
|
||||
|
||||
if (!fail)
|
||||
return oldval;
|
||||
if (__builtin_expect (!fail, 1))
|
||||
return actual_oldval;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -216,8 +216,9 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
|
|||
{ \
|
||||
actual_oldval = *wordptr; \
|
||||
\
|
||||
if (((actual_oldval & mask) >> shift) != (unsigned int) oldval) \
|
||||
return (actual_oldval & mask) >> shift; \
|
||||
if (__builtin_expect (((actual_oldval & mask) >> shift) \
|
||||
!= (unsigned int) oldval, 0)) \
|
||||
return (actual_oldval & mask) >> shift; \
|
||||
\
|
||||
actual_newval = (actual_oldval & ~mask) \
|
||||
| (((unsigned int) newval << shift) & mask); \
|
||||
|
@ -225,8 +226,8 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
|
|||
fail = __kernel_cmpxchg (actual_oldval, actual_newval, \
|
||||
wordptr); \
|
||||
\
|
||||
if (!fail) \
|
||||
return oldval; \
|
||||
if (__builtin_expect (!fail, 1)) \
|
||||
return (actual_oldval & mask) >> shift; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue