OSDN Git Service

2010-09-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
authormshawcroft <mshawcroft@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 3 Sep 2010 10:01:44 +0000 (10:01 +0000)
committermshawcroft <mshawcroft@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 3 Sep 2010 10:01:44 +0000 (10:01 +0000)
* config/arm/linux-atomic.c (__sync_val_compare_and_swap_4): Insert __builtin_expect().
(SUBWORD_VAL_CAS): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163805 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/arm/linux-atomic.c

index 685f16b..ddedeb5 100644 (file)
@@ -155,12 +155,12 @@ __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)
+      if (__builtin_expect (!fail, 1))
         return oldval;
     }
 }
@@ -180,7 +180,8 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
       {                                                                        \
        actual_oldval = *wordptr;                                       \
                                                                        \
-       if (((actual_oldval & mask) >> shift) != (unsigned int) oldval) \
+       if (__builtin_expect (((actual_oldval & mask) >> shift) !=      \
+                              (unsigned int) oldval, 0))                \
           return (actual_oldval & mask) >> shift;                      \
                                                                        \
        actual_newval = (actual_oldval & ~mask)                         \
@@ -189,7 +190,7 @@ __sync_val_compare_and_swap_4 (int *ptr, int oldval, int newval)
        fail = __kernel_cmpxchg (actual_oldval, actual_newval,          \
                                 wordptr);                              \
                                                                        \
-       if (!fail)                                                      \
+      if (__builtin_expect (!fail, 1))                                  \
           return oldval;                                               \
       }                                                                        \
   }