| From f87f253bac3ce4a4eb2a60a1ae604d74e65f9042 Mon Sep 17 00:00:00 2001 |
| From: Nicholas Piggin <npiggin@gmail.com> |
| Date: Thu, 24 Nov 2016 00:02:07 +1100 |
| Subject: powerpc/64e: Convert cmpi to cmpwi in head_64.S |
| |
| From: Nicholas Piggin <npiggin@gmail.com> |
| |
| commit f87f253bac3ce4a4eb2a60a1ae604d74e65f9042 upstream. |
| |
| 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 case, cmpwi is called for, so this is just a build fix for |
| new toolchains. |
| |
| Signed-off-by: Nicholas Piggin <npiggin@gmail.com> |
| Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/kernel/head_64.S | 8 ++++---- |
| 1 file changed, 4 insertions(+), 4 deletions(-) |
| |
| --- a/arch/powerpc/kernel/head_64.S |
| +++ b/arch/powerpc/kernel/head_64.S |
| @@ -201,9 +201,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 |
| @@ -228,9 +228,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 |