diff options
author | David Daney <david.daney@cavium.com> | 2013-04-25 11:48:53 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2013-04-26 11:18:24 -0400 |
commit | 3d39019a1655d195a60a86ebf38f9da30bd83d03 (patch) | |
tree | 3865e565fe49f2da4d9e690c8fdf63d7c04dbfa3 | |
parent | e01961ceea5453ba93c386adf49fff6d1b811e74 (diff) |
MIPS: Remove redundant instructions from arch_spin_{,try}lock.
We were doing:
SRL $r,$?,16
ANDI $r,$r,0xffff
The logical right shift by 16 leaves the upper 16 bits clear, so the
subsequent masking out of those bits is redundant, and can safely be
removed.
Signed-off-by: David Daney <david.daney@cavium.com>
Cc: linux-mips@linux-mips.org
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/include/asm/spinlock.h | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h index 0b1dbd22e6f8..78d201fb6c87 100644 --- a/arch/mips/include/asm/spinlock.h +++ b/arch/mips/include/asm/spinlock.h | |||
@@ -71,7 +71,6 @@ static inline void arch_spin_lock(arch_spinlock_t *lock) | |||
71 | " nop \n" | 71 | " nop \n" |
72 | " srl %[my_ticket], %[ticket], 16 \n" | 72 | " srl %[my_ticket], %[ticket], 16 \n" |
73 | " andi %[ticket], %[ticket], 0xffff \n" | 73 | " andi %[ticket], %[ticket], 0xffff \n" |
74 | " andi %[my_ticket], %[my_ticket], 0xffff \n" | ||
75 | " bne %[ticket], %[my_ticket], 4f \n" | 74 | " bne %[ticket], %[my_ticket], 4f \n" |
76 | " subu %[ticket], %[my_ticket], %[ticket] \n" | 75 | " subu %[ticket], %[my_ticket], %[ticket] \n" |
77 | "2: \n" | 76 | "2: \n" |
@@ -105,7 +104,6 @@ static inline void arch_spin_lock(arch_spinlock_t *lock) | |||
105 | " beqz %[my_ticket], 1b \n" | 104 | " beqz %[my_ticket], 1b \n" |
106 | " srl %[my_ticket], %[ticket], 16 \n" | 105 | " srl %[my_ticket], %[ticket], 16 \n" |
107 | " andi %[ticket], %[ticket], 0xffff \n" | 106 | " andi %[ticket], %[ticket], 0xffff \n" |
108 | " andi %[my_ticket], %[my_ticket], 0xffff \n" | ||
109 | " bne %[ticket], %[my_ticket], 4f \n" | 107 | " bne %[ticket], %[my_ticket], 4f \n" |
110 | " subu %[ticket], %[my_ticket], %[ticket] \n" | 108 | " subu %[ticket], %[my_ticket], %[ticket] \n" |
111 | "2: \n" | 109 | "2: \n" |
@@ -153,7 +151,6 @@ static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock) | |||
153 | " \n" | 151 | " \n" |
154 | "1: ll %[ticket], %[ticket_ptr] \n" | 152 | "1: ll %[ticket], %[ticket_ptr] \n" |
155 | " srl %[my_ticket], %[ticket], 16 \n" | 153 | " srl %[my_ticket], %[ticket], 16 \n" |
156 | " andi %[my_ticket], %[my_ticket], 0xffff \n" | ||
157 | " andi %[now_serving], %[ticket], 0xffff \n" | 154 | " andi %[now_serving], %[ticket], 0xffff \n" |
158 | " bne %[my_ticket], %[now_serving], 3f \n" | 155 | " bne %[my_ticket], %[now_serving], 3f \n" |
159 | " addu %[ticket], %[ticket], %[inc] \n" | 156 | " addu %[ticket], %[ticket], %[inc] \n" |
@@ -178,7 +175,6 @@ static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock) | |||
178 | " \n" | 175 | " \n" |
179 | "1: ll %[ticket], %[ticket_ptr] \n" | 176 | "1: ll %[ticket], %[ticket_ptr] \n" |
180 | " srl %[my_ticket], %[ticket], 16 \n" | 177 | " srl %[my_ticket], %[ticket], 16 \n" |
181 | " andi %[my_ticket], %[my_ticket], 0xffff \n" | ||
182 | " andi %[now_serving], %[ticket], 0xffff \n" | 178 | " andi %[now_serving], %[ticket], 0xffff \n" |
183 | " bne %[my_ticket], %[now_serving], 3f \n" | 179 | " bne %[my_ticket], %[now_serving], 3f \n" |
184 | " addu %[ticket], %[ticket], %[inc] \n" | 180 | " addu %[ticket], %[ticket], %[inc] \n" |