Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: Microoptimize arch_{read,write}_lock

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

+11 -11
+11 -11
arch/mips/include/asm/spinlock.h
··· 245 245 __asm__ __volatile__( 246 246 " .set noreorder # arch_read_lock \n" 247 247 "1: ll %1, %2 \n" 248 - " bltz %1, 2f \n" 248 + " bltz %1, 3f \n" 249 249 " addu %1, 1 \n" 250 - " sc %1, %0 \n" 250 + "2: sc %1, %0 \n" 251 251 " beqz %1, 1b \n" 252 252 " nop \n" 253 253 " .subsection 2 \n" 254 - "2: ll %1, %2 \n" 255 - " bltz %1, 2b \n" 254 + "3: ll %1, %2 \n" 255 + " bltz %1, 3b \n" 256 256 " addu %1, 1 \n" 257 - " b 1b \n" 257 + " b 2b \n" 258 258 " nop \n" 259 259 " .previous \n" 260 260 " .set reorder \n" ··· 324 324 __asm__ __volatile__( 325 325 " .set noreorder # arch_write_lock \n" 326 326 "1: ll %1, %2 \n" 327 - " bnez %1, 2f \n" 327 + " bnez %1, 3f \n" 328 328 " lui %1, 0x8000 \n" 329 - " sc %1, %0 \n" 330 - " beqz %1, 2f \n" 329 + "2: sc %1, %0 \n" 330 + " beqz %1, 3f \n" 331 331 " nop \n" 332 332 " .subsection 2 \n" 333 - "2: ll %1, %2 \n" 334 - " bnez %1, 2b \n" 333 + "3: ll %1, %2 \n" 334 + " bnez %1, 3b \n" 335 335 " lui %1, 0x8000 \n" 336 - " b 1b \n" 336 + " b 2b \n" 337 337 " nop \n" 338 338 " .previous \n" 339 339 " .set reorder \n"