Messages in this thread | | | From | Andreas Schwab <> | Subject | Re: [PATCH] [POWERPC] Improve (in|out)_beXX() asm code | Date | Wed, 21 May 2008 10:03:54 +0200 |
| |
Trent Piepho <tpiepho@freescale.com> writes:
> On Wed, 21 May 2008, Andreas Schwab wrote: >> Trent Piepho <tpiepho@freescale.com> writes: >> >>> It's the _le versions that have a problem, since we can't get gcc to just use >>> the register indexed mode. It seems like an obvious thing to have a >>> constraint for, but I guess there weren't enough instructions that only come >>> in 'x' versions to bother with it. There is a 'Z' constraint, "Memory operand >>> that is an indexed or indirect from a register", but I tried it and it can use >>> both "rb,ri" and "disp(rb)" forms. Actually, I'm not sure how 'Z' is any >>> different than "m"? >> >> 'Z' will never emit a non-zero constant displacement. > > It's too bad gas doesn't appear to be smart enough to turn: > stwbrx 0, 0(3) -or- stwbr 0, 0(3)
Use the %y modifier when substituting the operand.
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/
| |