Messages in this thread | | | From | Andreas Schwab <> | Subject | Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code | Date | Wed, 21 May 2008 00:00:51 +0200 |
| |
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/
| |