[PATCH] arm64: Remove AArch64 X30 redundant register alias

Subsystems: arm64 port (aarch64 architecture), the rest

STALE1846d

4 messages, 3 authors, 2021-07-15 · open the first message on its own page

[PATCH] arm64: Remove AArch64 X30 redundant register alias

From: Naohiro Tamura <hidden>
Date: 2021-07-13 13:33:45

This trivial patch is my first one to the kernel community.
Please advice me if something is not right.

-- >8 --
Subject: arm64: Remove AArch64 X30 redundant register alias

This patch removes a redundant AArch64 register alias of X30.
According to the GNU as manual [1], "ip0, ip1, lr and fp are
automatically defined to alias to X16, X17, X30 and X29
respectively".

[1] https://sourceware.org/binutils/docs/as/AArch64-Directives.html

Signed-off-by: Naohiro Tamura <redacted>
---
 arch/arm64/include/asm/assembler.h | 5 -----
 1 file changed, 5 deletions(-)
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 89faca0e740d..c66efc1b5406 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -155,11 +155,6 @@ alternative_endif
 9999:	x;					\
 	_asm_extable	9999b, l
 
-/*
- * Register aliases.
- */
-lr	.req	x30		// link register
-
 /*
  * Vector entry
  */
-- 
2.17.1


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

Re: [PATCH] arm64: Remove AArch64 X30 redundant register alias

From: Marc Zyngier <maz@kernel.org>
Date: 2021-07-14 09:56:07

On Tue, 13 Jul 2021 14:29:45 +0100,
Naohiro Tamura [off-list ref] wrote:
quoted hunk
This trivial patch is my first one to the kernel community.
Please advice me if something is not right.

-- >8 --
Subject: arm64: Remove AArch64 X30 redundant register alias

This patch removes a redundant AArch64 register alias of X30.
According to the GNU as manual [1], "ip0, ip1, lr and fp are
automatically defined to alias to X16, X17, X30 and X29
respectively".

[1] https://sourceware.org/binutils/docs/as/AArch64-Directives.html

Signed-off-by: Naohiro Tamura <redacted>
---
 arch/arm64/include/asm/assembler.h | 5 -----
 1 file changed, 5 deletions(-)
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 89faca0e740d..c66efc1b5406 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -155,11 +155,6 @@ alternative_endif
 9999:	x;					\
 	_asm_extable	9999b, l
 
-/*
- * Register aliases.
- */
-lr	.req	x30		// link register
-
 /*
  * Vector entry
  */
I seem to vaguely remember that this isn't always defined, see [1] for
a recent example. Dropping it altogether may end-up being pretty
disruptive.

Thanks,

	M.

[1] https://lore.kernel.org/linux-arm-kernel/20210526213128.GB20442@willie-the-truck

-- 
Without deviation from the norm, progress is not possible.

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

Re: [PATCH] arm64: Remove AArch64 X30 redundant register alias

From: Robin Murphy <robin.murphy@arm.com>
Date: 2021-07-14 11:40:36

On 2021-07-14 10:54, Marc Zyngier wrote:
On Tue, 13 Jul 2021 14:29:45 +0100,
Naohiro Tamura [off-list ref] wrote:
quoted
This trivial patch is my first one to the kernel community.
Please advice me if something is not right.

-- >8 --
Subject: arm64: Remove AArch64 X30 redundant register alias

This patch removes a redundant AArch64 register alias of X30.
According to the GNU as manual [1], "ip0, ip1, lr and fp are
automatically defined to alias to X16, X17, X30 and X29
respectively".

[1] https://sourceware.org/binutils/docs/as/AArch64-Directives.html

Signed-off-by: Naohiro Tamura <redacted>
---
  arch/arm64/include/asm/assembler.h | 5 -----
  1 file changed, 5 deletions(-)
diff --git a/arch/arm64/include/asm/assembler.h b/arch/arm64/include/asm/assembler.h
index 89faca0e740d..c66efc1b5406 100644
--- a/arch/arm64/include/asm/assembler.h
+++ b/arch/arm64/include/asm/assembler.h
@@ -155,11 +155,6 @@ alternative_endif
  9999:	x;					\
  	_asm_extable	9999b, l
  
-/*
- * Register aliases.
- */
-lr	.req	x30		// link register
-
  /*
   * Vector entry
   */
I seem to vaguely remember that this isn't always defined, see [1] for
a recent example. Dropping it altogether may end-up being pretty
disruptive.
Right, the built-in alias was only introduced a few years ago in 
binutils 2.29 (where it initially caused problems itself by being a bit 
overzealous[2]), but our current minimum version is 2.23, so we still 
need this for older but still-supported toolchains (e.g. I expect the 
Linaro GCC 7-based releases with binutils 2.28 are still being used).

Robin.

[2] https://www.spinics.net/lists/arm-kernel/msg599929.html
Thanks,

	M.

[1] https://lore.kernel.org/linux-arm-kernel/20210526213128.GB20442@willie-the-truck
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

RE: [PATCH] arm64: Remove AArch64 X30 redundant register alias

From: naohirot@fujitsu.com <hidden>
Date: 2021-07-15 01:31:25

Hi Robin, Marc,

Thank you for your quick feedbacks!
From: Robin Murphy <robin.murphy@arm.com>
Sent: Wednesday, July 14, 2021 8:39 PM
On 2021-07-14 10:54, Marc Zyngier wrote:
quoted
On Tue, 13 Jul 2021 14:29:45 +0100,
Naohiro Tamura [off-list ref] wrote:
quoted
quoted
-/*
- * Register aliases.
- */
-lr	.req	x30		// link register
-
  /*
   * Vector entry
   */
I seem to vaguely remember that this isn't always defined, see [1] for
a recent example. Dropping it altogether may end-up being pretty
disruptive.
Right, the built-in alias was only introduced a few years ago in
binutils 2.29 (where it initially caused problems itself by being a bit
overzealous[2]), but our current minimum version is 2.23, so we still
need this for older but still-supported toolchains (e.g. I expect the
Linaro GCC 7-based releases with binutils 2.28 are still being used).
I confirmed that binutils 2.23 doesn't have the alias [3].
So I withdraw this patch.

[3] https://sourceware.org/binutils/docs-2.23/as/AArch64-Directives.html#AArch64-Directives

p.s. I have learned how to submit a patch 😊
Thanks.
Naohiro

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help