[PATCH] powerpc: POWER7 optimised memcpy using VMX and enhanced prefetch
Jimi Xenidis
jimix at pobox.com
Thu Jan 10 09:19:53 EST 2013
On Dec 18, 2012, at 10:31 AM, Peter Bergner <bergner at vnet.ibm.com> wrote:
> On Tue, 2012-12-18 at 07:28 -0600, Jimi Xenidis wrote:
>> On Dec 17, 2012, at 6:26 PM, Peter Bergner <bergner at vnet.ibm.com> wrote:
>>> Jimi, are you using an "old" binutils from before my patch that
>>> changed the operand order for these types of instructions?
>>>
>>> http://sourceware.org/ml/binutils/2009-02/msg00044.html
>>
>> Actually, this confused me as well, that embedded has the same instruction
>> encoding but different mnemonic.
>
> The mnemonic is the same (ie, dcbtst), and yes, the encoding is the same.
> All that is different is the accepted operand ordering...and yes, it is
> very unfortunate the operand ordering is different between embedded and
> server. :(
>
>
>> I was under the impression that the assembler made no instruction decisions
>> based on CPU. So your only hint would be that '0b' prefix.
>> Does AS even see that?
>
> GAS definitely makes decisions based on CPU (ie, -m<cpu> option). Below is
> the GAS code used in recognizing the dcbtst instruction. This shows that
> the "server" operand ordering is enabled for POWER4 and later cpus while
> the "embedded" operand ordering is enabled for pre POWER4 cpus (yes, not
> exactly a server versus embedded trigger, but that's we agreed on to
> mitigate breaking any old asm code out there).
>
> {"dcbtst", X(31,246), X_MASK, POWER4, PPCNONE, {RA0, RB, CT}},
> {"dcbtst", X(31,246), X_MASK, PPC|PPCVLE, POWER4, {CT, RA0, RB}},
>
> GAS doesn't look at how the operands are written to try and guess what
> operand ordering you are attempting to use. Rather, it knows what ordering
> it expects and the values had better match that ordering.
>
I agree, but that means it is impossible for the same .S file can be compiled but -mcpu=e500mc and -mcpu=powerpc?
So either these files have to be Book3S versus Book3E --or-- we use a CPP macro to get them right.
FWIW, I prefer the latter which allows more code reuse.
-jx
>
> Peter
>
>
>
More information about the Linuxppc-dev
mailing list