lkml.org 
[lkml]   [2008]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code
    Date
    Trent Piepho <tpiepho@freescale.com> writes:

    > For the LE versions, eventually they boil down to an asm that will look
    > something like this:
    > asm("sync; stwbrx %1,0,%2" : "=m" (*addr) : "r" (val), "r" (addr));
    >
    > While not perfect, this appears to be the best one can do. The issue is
    > that the "stwbrx" instruction only comes in an indexed, or 'x', version, in
    > which the address is represented by the sum of two registers (the "0,%2").
    > Unfortunately, gcc doesn't have a constraint for an indexed memory
    > reference.

    There is the "Z" constraint, which matches either an indirect or an
    indexed memory address. That should fit here.

    Andreas.

    --
    Andreas Schwab, SuSE Labs, schwab@suse.de
    SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
    PGP key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
    "And now for something completely different."
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2008-05-21 00:03    [W:3.753 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site