|
@@ -21,7 +21,7 @@ atomic_add: /* %o0 = increment, %o1 = atomic_ptr */
|
|
add %g1, %o0, %g7
|
|
add %g1, %o0, %g7
|
|
cas [%o1], %g1, %g7
|
|
cas [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %icc, 2f
|
|
|
|
|
|
+ bne,pn %icc, BACKOFF_LABEL(2f, 1b)
|
|
nop
|
|
nop
|
|
retl
|
|
retl
|
|
nop
|
|
nop
|
|
@@ -36,7 +36,7 @@ atomic_sub: /* %o0 = decrement, %o1 = atomic_ptr */
|
|
sub %g1, %o0, %g7
|
|
sub %g1, %o0, %g7
|
|
cas [%o1], %g1, %g7
|
|
cas [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %icc, 2f
|
|
|
|
|
|
+ bne,pn %icc, BACKOFF_LABEL(2f, 1b)
|
|
nop
|
|
nop
|
|
retl
|
|
retl
|
|
nop
|
|
nop
|
|
@@ -51,7 +51,7 @@ atomic_add_ret: /* %o0 = increment, %o1 = atomic_ptr */
|
|
add %g1, %o0, %g7
|
|
add %g1, %o0, %g7
|
|
cas [%o1], %g1, %g7
|
|
cas [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %icc, 2f
|
|
|
|
|
|
+ bne,pn %icc, BACKOFF_LABEL(2f, 1b)
|
|
add %g1, %o0, %g1
|
|
add %g1, %o0, %g1
|
|
retl
|
|
retl
|
|
sra %g1, 0, %o0
|
|
sra %g1, 0, %o0
|
|
@@ -66,7 +66,7 @@ atomic_sub_ret: /* %o0 = decrement, %o1 = atomic_ptr */
|
|
sub %g1, %o0, %g7
|
|
sub %g1, %o0, %g7
|
|
cas [%o1], %g1, %g7
|
|
cas [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %icc, 2f
|
|
|
|
|
|
+ bne,pn %icc, BACKOFF_LABEL(2f, 1b)
|
|
sub %g1, %o0, %g1
|
|
sub %g1, %o0, %g1
|
|
retl
|
|
retl
|
|
sra %g1, 0, %o0
|
|
sra %g1, 0, %o0
|
|
@@ -81,7 +81,7 @@ atomic64_add: /* %o0 = increment, %o1 = atomic_ptr */
|
|
add %g1, %o0, %g7
|
|
add %g1, %o0, %g7
|
|
casx [%o1], %g1, %g7
|
|
casx [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %xcc, 2f
|
|
|
|
|
|
+ bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
|
|
nop
|
|
nop
|
|
retl
|
|
retl
|
|
nop
|
|
nop
|
|
@@ -96,7 +96,7 @@ atomic64_sub: /* %o0 = decrement, %o1 = atomic_ptr */
|
|
sub %g1, %o0, %g7
|
|
sub %g1, %o0, %g7
|
|
casx [%o1], %g1, %g7
|
|
casx [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %xcc, 2f
|
|
|
|
|
|
+ bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
|
|
nop
|
|
nop
|
|
retl
|
|
retl
|
|
nop
|
|
nop
|
|
@@ -111,7 +111,7 @@ atomic64_add_ret: /* %o0 = increment, %o1 = atomic_ptr */
|
|
add %g1, %o0, %g7
|
|
add %g1, %o0, %g7
|
|
casx [%o1], %g1, %g7
|
|
casx [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %xcc, 2f
|
|
|
|
|
|
+ bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
|
|
nop
|
|
nop
|
|
retl
|
|
retl
|
|
add %g1, %o0, %o0
|
|
add %g1, %o0, %o0
|
|
@@ -126,7 +126,7 @@ atomic64_sub_ret: /* %o0 = decrement, %o1 = atomic_ptr */
|
|
sub %g1, %o0, %g7
|
|
sub %g1, %o0, %g7
|
|
casx [%o1], %g1, %g7
|
|
casx [%o1], %g1, %g7
|
|
cmp %g1, %g7
|
|
cmp %g1, %g7
|
|
- bne,pn %xcc, 2f
|
|
|
|
|
|
+ bne,pn %xcc, BACKOFF_LABEL(2f, 1b)
|
|
nop
|
|
nop
|
|
retl
|
|
retl
|
|
sub %g1, %o0, %o0
|
|
sub %g1, %o0, %o0
|