Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 756cca61 authored by Ralf Baechle's avatar Ralf Baechle
Browse files

MIPS: Microoptimize arch_{read,write}_lock

parent 4bafad92
Loading
Loading
Loading
Loading
+11 −11
Original line number Diff line number Diff line
@@ -245,16 +245,16 @@ static inline void arch_read_lock(arch_rwlock_t *rw)
		__asm__ __volatile__(
		"	.set	noreorder	# arch_read_lock	\n"
		"1:	ll	%1, %2					\n"
		"	bltz	%1, 2f					\n"
		"	bltz	%1, 3f					\n"
		"	 addu	%1, 1					\n"
		"	sc	%1, %0					\n"
		"2:	sc	%1, %0					\n"
		"	beqz	%1, 1b					\n"
		"	 nop						\n"
		"	.subsection 2					\n"
		"2:	ll	%1, %2					\n"
		"	bltz	%1, 2b					\n"
		"3:	ll	%1, %2					\n"
		"	bltz	%1, 3b					\n"
		"	 addu	%1, 1					\n"
		"	b	1b					\n"
		"	b	2b					\n"
		"	 nop						\n"
		"	.previous					\n"
		"	.set	reorder					\n"
@@ -324,16 +324,16 @@ static inline void arch_write_lock(arch_rwlock_t *rw)
		__asm__ __volatile__(
		"	.set	noreorder	# arch_write_lock	\n"
		"1:	ll	%1, %2					\n"
		"	bnez	%1, 2f					\n"
		"	bnez	%1, 3f					\n"
		"	 lui	%1, 0x8000				\n"
		"	sc	%1, %0					\n"
		"	beqz	%1, 2f					\n"
		"2:	sc	%1, %0					\n"
		"	beqz	%1, 3f					\n"
		"	 nop						\n"
		"	.subsection 2					\n"
		"2:	ll	%1, %2					\n"
		"	bnez	%1, 2b					\n"
		"3:	ll	%1, %2					\n"
		"	bnez	%1, 3b					\n"
		"	 lui	%1, 0x8000				\n"
		"	b	1b					\n"
		"	b	2b					\n"
		"	 nop						\n"
		"	.previous					\n"
		"	.set	reorder					\n"