bne-    1b"
        : "=&r" (t), "+m" (v->counter)
        : "r" (&v->counter)
-       : "cc");
+       : "cc", "xer");
 }
 
 static __inline__ int atomic_inc_return(atomic_t *v)
        ISYNC_ON_SMP
        : "=&r" (t)
        : "r" (&v->counter)
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }
        bne-    1b"
        : "=&r" (t), "+m" (v->counter)
        : "r" (&v->counter)
-       : "cc");
+       : "cc", "xer");
 }
 
 static __inline__ int atomic_dec_return(atomic_t *v)
        ISYNC_ON_SMP
        : "=&r" (t)
        : "r" (&v->counter)
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }
        bne-    1b"
        : "=&r" (t), "+m" (v->counter)
        : "r" (&v->counter)
-       : "cc");
+       : "cc", "xer");
 }
 
 static __inline__ long atomic64_inc_return(atomic64_t *v)
        ISYNC_ON_SMP
        : "=&r" (t)
        : "r" (&v->counter)
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }
        bne-    1b"
        : "=&r" (t), "+m" (v->counter)
        : "r" (&v->counter)
-       : "cc");
+       : "cc", "xer");
 }
 
 static __inline__ long atomic64_dec_return(atomic64_t *v)
        ISYNC_ON_SMP
        : "=&r" (t)
        : "r" (&v->counter)
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }
        "\n\
 2:"    : "=&r" (t)
        : "r" (&v->counter)
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }
 
        bne-    1b"
        : "=&r" (t)
        : "r" (&(l->a.counter))
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }
        bne-    1b"
        : "=&r" (t)
        : "r" (&(l->a.counter))
-       : "cc", "memory");
+       : "cc", "xer", "memory");
 
        return t;
 }