linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: asm: Rewrite get_thread_info using BIC
@ 2020-05-27 12:22 Linus Walleij
  2020-05-27 13:13 ` Russell King - ARM Linux admin
  2020-07-21 13:37 ` Dmitry Osipenko
  0 siblings, 2 replies; 6+ messages in thread
From: Linus Walleij @ 2020-05-27 12:22 UTC (permalink / raw)
  To: Russell King; +Cc: Linus Walleij, Ard Biesheuvel, linux-arm-kernel

By using two BIC instructions we can replace the ARM/thumb
split instructions with something that works on either
and also save one instruction.

Based on code from proc-macros.S and an idea from Ard
Biesheuvel.

We need to include <linux/const.h> to expand the
THREAD_SIZE definition properly in the preprocessor.

Suggested-by: Russell King <linux@armlinux.org.uk>
Suggested-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
 arch/arm/include/asm/assembler.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
index 99929122dad7..f218e8cf7f88 100644
--- a/arch/arm/include/asm/assembler.h
+++ b/arch/arm/include/asm/assembler.h
@@ -17,6 +17,7 @@
 #error "Only include this from assembly code"
 #endif
 
+#include <linux/const.h>
 #include <asm/ptrace.h>
 #include <asm/domain.h>
 #include <asm/opcodes-virt.h>
@@ -203,10 +204,8 @@
  * Get current thread_info.
  */
 	.macro	get_thread_info, rd
- ARM(	mov	\rd, sp, lsr #THREAD_SIZE_ORDER + PAGE_SHIFT	)
- THUMB(	mov	\rd, sp			)
- THUMB(	lsr	\rd, \rd, #THREAD_SIZE_ORDER + PAGE_SHIFT	)
-	mov	\rd, \rd, lsl #THREAD_SIZE_ORDER + PAGE_SHIFT
+	bic	\rd, sp, #(THREAD_SIZE - 1) & ~63
+	bic	\rd, \rd, #63
 	.endm
 
 /*
-- 
2.25.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

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

end of thread, other threads:[~2020-07-21 13:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-27 12:22 [PATCH] ARM: asm: Rewrite get_thread_info using BIC Linus Walleij
2020-05-27 13:13 ` Russell King - ARM Linux admin
2020-07-21 13:37 ` Dmitry Osipenko
2020-07-21 13:38   ` Russell King - ARM Linux admin
2020-07-21 13:39     ` Dmitry Osipenko
2020-07-21 13:54   ` Linus Walleij

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).