linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/3] MIPS: jump_label: Remove redundant nops
@ 2019-04-05 22:50 Paul Burton
  2019-04-05 22:50 ` [PATCH 2/3] MIPS: jump_label: Use compact branches for >= r6 Paul Burton
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Paul Burton @ 2019-04-05 22:50 UTC (permalink / raw)
  To: linux-mips@vger.kernel.org; +Cc: Paul Burton

Both arch_static_branch() & arch_static_branch_jump() emit a control
transfer instruction (ie. branch or jump) without disabling assembler
re-ordering. As such the assembler will automatically fill their delay
slots.

Both functions follow their branch or jump with an explicit nop that at
first appears to be there to fill the delay slot, but given that the
assembler will do that the explicit nops serve no purpose & we end up
with our branch or jump followed by 2 nops. Remove the redundant nops.

Signed-off-by: Paul Burton <paul.burton@mips.com>
---

 arch/mips/include/asm/jump_label.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/arch/mips/include/asm/jump_label.h b/arch/mips/include/asm/jump_label.h
index e4456e450f94..df04449b261b 100644
--- a/arch/mips/include/asm/jump_label.h
+++ b/arch/mips/include/asm/jump_label.h
@@ -29,7 +29,7 @@
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
 	asm_volatile_goto("1:\t" B_INSN " 2f\n\t"
-		"2:\tnop\n\t"
+		"2:\t.insn\n\t"
 		".pushsection __jump_table,  \"aw\"\n\t"
 		WORD_INSN " 1b, %l[l_yes], %0\n\t"
 		".popsection\n\t"
@@ -43,7 +43,6 @@ static __always_inline bool arch_static_branch(struct static_key *key, bool bran
 static __always_inline bool arch_static_branch_jump(struct static_key *key, bool branch)
 {
 	asm_volatile_goto("1:\tj %l[l_yes]\n\t"
-		"nop\n\t"
 		".pushsection __jump_table,  \"aw\"\n\t"
 		WORD_INSN " 1b, %l[l_yes], %0\n\t"
 		".popsection\n\t"
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-04-15 17:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-05 22:50 [PATCH 1/3] MIPS: jump_label: Remove redundant nops Paul Burton
2019-04-05 22:50 ` [PATCH 2/3] MIPS: jump_label: Use compact branches for >= r6 Paul Burton
2019-04-05 22:50 ` [PATCH 3/3] MIPS: generic: Enable CONFIG_JUMP_LABEL Paul Burton
2019-04-15 17:37 ` [PATCH 1/3] MIPS: jump_label: Remove redundant nops Paul Burton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).