> hm.  Isn't "m" just a memory operand?  I'm not familiar with the %%reg
> thing.

"m" is indeed just a memory operand that the compiler substitutes in the ASM
code. The %%reg is how you nominate a register directly in x86 inline ASM (you
need two percent symbols because a single percent symbol is an escape char,
like it is in printf).

The "m" will almost certainly - but not necessarily - boil down to (%%eax)
anyway on the x86, but it also might not.

> 2.91.66.

That explains it. You can't compile this with that old a compiler:-( If I
remember rightly, that only permits a single "+" constraint, and doesn't work
properly with "+" constraints anyway. You would need to split the "+"
constraint into an "=" constraint and a cross-ref input constraint, but this
has other effects too, I think:-/

Also if I recall correctly, there're problems with register reloading in the
gcc register allocator too that cause extra stack to get eaten if you use "="
constraints.

Sometimes I hate gcc inline asm... :-)

I'm told (by Arjan) that that version of the compiler isn't supported for 2.5
kernels anyway.

David
_______________________________________________
Jfs-discussion mailing list
[EMAIL PROTECTED]
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/jfs-discussion

Reply via email to