Segher Boessenkool <seg...@kernel.crashing.org> writes: > 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.
Thanks. Anton already sent a fix for the two vdso ones, which were real bugs, and that's now in Linus' tree. > diff --git a/arch/powerpc/include/asm/cpuidle.h > b/arch/powerpc/include/asm/cpuidle.h > index 01b8a13..3919332 100644 > --- a/arch/powerpc/include/asm/cpuidle.h > +++ b/arch/powerpc/include/asm/cpuidle.h > @@ -26,7 +26,7 @@ extern u64 pnv_first_deep_stop_state; #define IDLE_STATE_ENTER_SEQ(IDLE_INST) \ /* Magic NAP/SLEEP/WINKLE mode enter sequence */ \ > std r0,0(r1); \ > ptesync; \ > ld r0,0(r1); \ > -1: cmp cr0,r0,r0; \ > +1: cmpd cr0,r0,r0; \ > bne 1b; \ > IDLE_INST; \ > b . What's this one doing, is it a bug? I can't really tell without knowing what the magic sequence is meant to do. Mahesh, Vaidy? cheers