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