Skip to content

Commit

Permalink
powerpc: Convert cmp to cmpd in idle enter sequence
Browse files Browse the repository at this point in the history
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.

Fixes: 948cf67 ("powerpc: Add NAP mode support on Power7 in HV mode")
Cc: [email protected] # v3.0
Reviewed-by: Vaidyanathan Srinivasan <[email protected]>
Signed-off-by: Segher Boessenkool <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
  • Loading branch information
segher authored and mpe committed Oct 21, 2016
1 parent 62623d5 commit 80f2393
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/powerpc/include/asm/cpuidle.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ extern u64 pnv_first_deep_stop_state;
std r0,0(r1); \
ptesync; \
ld r0,0(r1); \
1: cmp cr0,r0,r0; \
1: cmpd cr0,r0,r0; \
bne 1b; \
IDLE_INST; \
b .
Expand Down

0 comments on commit 80f2393

Please sign in to comment.