diff mbox

[1/3] powerpc/64e: convert cmpi to cmpwi in head_64.S

Message ID 20161123130209.1667-2-npiggin@gmail.com (mailing list archive)
State Accepted
Headers show

Commit Message

Nicholas Piggin Nov. 23, 2016, 1:02 p.m. UTC
From 80f23935cadb ("powerpc: Convert cmp to cmpd in idle enter sequence"):

    PowerPC's "cmp" instruction has four operands. Normally people write
    "cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
    people forget, and write "cmp" with just three operands.

    With older binutils this is silently accepted as if this was "cmpw",
    while often "cmpd" is wanted. With newer binutils GAS will complain
    about this for 64-bit code. For 32-bit code it still silently assumes
    "cmpw" is what is meant.

    In this instance the code comes directly from ISA v2.07, including the
    cmp, but cmpd is correct. Backport to stable so that new toolchains can
    build old kernels.

In this case, cmpwi is called for, so this is just a build fix for
new toolchians.

Stable: v3.0
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
---
 arch/powerpc/kernel/head_64.S | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Michael Ellerman Nov. 29, 2016, 12:58 p.m. UTC | #1
On Wed, 2016-11-23 at 13:02:07 UTC, Nicholas Piggin wrote:
> >From 80f23935cadb ("powerpc: Convert cmp to cmpd in idle enter sequence"):
> 
>     PowerPC's "cmp" instruction has four operands. Normally people write
>     "cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently
>     people forget, and write "cmp" with just three operands.
> 
>     With older binutils this is silently accepted as if this was "cmpw",
>     while often "cmpd" is wanted. With newer binutils GAS will complain
>     about this for 64-bit code. For 32-bit code it still silently assumes
>     "cmpw" is what is meant.
> 
>     In this instance the code comes directly from ISA v2.07, including the
>     cmp, but cmpd is correct. Backport to stable so that new toolchains can
>     build old kernels.
> 
> In this case, cmpwi is called for, so this is just a build fix for
> new toolchians.
> 
> Stable: v3.0
> Cc: Segher Boessenkool <segher@kernel.crashing.org>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/f87f253bac3ce4a4eb2a60a1ae604d

cheers
diff mbox

Patch

diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 04c546e..1f7f908 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -214,9 +214,9 @@  booting_thread_hwid:
  */
 _GLOBAL(book3e_start_thread)
 	LOAD_REG_IMMEDIATE(r5, MSR_KERNEL)
-	cmpi	0, r3, 0
+	cmpwi	r3, 0
 	beq	10f
-	cmpi	0, r3, 1
+	cmpwi	r3, 1
 	beq	11f
 	/* If the thread id is invalid, just exit. */
 	b	13f
@@ -241,9 +241,9 @@  _GLOBAL(book3e_start_thread)
  * r3 = the thread physical id
  */
 _GLOBAL(book3e_stop_thread)
-	cmpi	0, r3, 0
+	cmpwi	r3, 0
 	beq	10f
-	cmpi	0, r3, 1
+	cmpwi	r3, 1
 	beq	10f
 	/* If the thread id is invalid, just exit. */
 	b	13f