Trent Piepho <[EMAIL PROTECTED]> 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, [EMAIL PROTECTED] 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." _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev