sparc64: simple microoptimizations for atomic functions

Simple microoptimizations for sparc64 atomic functions:
Save one instruction by using a delay slot.
Use %g1 instead of %g7, because %g1 is written earlier.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Mikulas Patocka and committed by David S. Miller 6ec27475 9b3bb86a

+8 -12
+8 -12
arch/sparc/lib/atomic_64.S
··· 52 cas [%o1], %g1, %g7 53 cmp %g1, %g7 54 bne,pn %icc, 2f 55 - add %g7, %o0, %g7 56 - sra %g7, 0, %o0 57 retl 58 - nop 59 2: BACKOFF_SPIN(%o2, %o3, 1b) 60 .size atomic_add_ret, .-atomic_add_ret 61 ··· 67 cas [%o1], %g1, %g7 68 cmp %g1, %g7 69 bne,pn %icc, 2f 70 - sub %g7, %o0, %g7 71 - sra %g7, 0, %o0 72 retl 73 - nop 74 2: BACKOFF_SPIN(%o2, %o3, 1b) 75 .size atomic_sub_ret, .-atomic_sub_ret 76 ··· 112 casx [%o1], %g1, %g7 113 cmp %g1, %g7 114 bne,pn %xcc, 2f 115 - add %g7, %o0, %g7 116 - mov %g7, %o0 117 - retl 118 nop 119 2: BACKOFF_SPIN(%o2, %o3, 1b) 120 .size atomic64_add_ret, .-atomic64_add_ret 121 ··· 127 casx [%o1], %g1, %g7 128 cmp %g1, %g7 129 bne,pn %xcc, 2f 130 - sub %g7, %o0, %g7 131 - mov %g7, %o0 132 - retl 133 nop 134 2: BACKOFF_SPIN(%o2, %o3, 1b) 135 .size atomic64_sub_ret, .-atomic64_sub_ret
··· 52 cas [%o1], %g1, %g7 53 cmp %g1, %g7 54 bne,pn %icc, 2f 55 + add %g1, %o0, %g1 56 retl 57 + sra %g1, 0, %o0 58 2: BACKOFF_SPIN(%o2, %o3, 1b) 59 .size atomic_add_ret, .-atomic_add_ret 60 ··· 68 cas [%o1], %g1, %g7 69 cmp %g1, %g7 70 bne,pn %icc, 2f 71 + sub %g1, %o0, %g1 72 retl 73 + sra %g1, 0, %o0 74 2: BACKOFF_SPIN(%o2, %o3, 1b) 75 .size atomic_sub_ret, .-atomic_sub_ret 76 ··· 114 casx [%o1], %g1, %g7 115 cmp %g1, %g7 116 bne,pn %xcc, 2f 117 nop 118 + retl 119 + add %g1, %o0, %o0 120 2: BACKOFF_SPIN(%o2, %o3, 1b) 121 .size atomic64_add_ret, .-atomic64_add_ret 122 ··· 130 casx [%o1], %g1, %g7 131 cmp %g1, %g7 132 bne,pn %xcc, 2f 133 nop 134 + retl 135 + sub %g1, %o0, %o0 136 2: BACKOFF_SPIN(%o2, %o3, 1b) 137 .size atomic64_sub_ret, .-atomic64_sub_ret