gcc-4.3.0/ppc32 inline assembly produces bad code
Till Straumann
strauman at slac.stanford.edu
Mon Mar 31 15:46:03 UTC 2008
Andreas Schwab wrote:
> Daniel Jacobowitz <drow at false.org> writes:
>
>
>> On Mon, Mar 31, 2008 at 03:06:24PM +0200, Andreas Schwab wrote:
>>
>>> The side effect is carried out by using %U0, which expands to u for a
>>> PRE_{INC,DEC,MODIFY} operand. There is no way to encode that in the
>>> insn operand itself, unlike m68k, for example. The ia64 target has a
>>> similar issue.
>>>
>> OK, so it's possible to get that right. Still - how many people
>> writing inline assembly do we think will do so?
>>
>> This is back to something the S/390 maintainers were working on a few
>> months ago; in short the useful definition of "m" to GCC is not the
>> useful one for users, I don't think. Especially when it changes.
>>
>
> There are many pitfalls when you use inline asm. Another example is the
> difference between "r" and "b" on powerpc, where you can silently get
> bad code if you use "r" when "b" would be needed (in some insns 0 means
> constant 0 instead of register 0).
>
Sure - but that is at least (minimally) documented. One sentence
more in the gcc manual wouldn't hurt though...
T.
> Andreas.
>
>
More information about the users
mailing list