https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68843

--- Comment #8 from Bernd Edlinger <bernd.edlinger at hotmail dot de> ---
(In reply to David from comment #7)
> Would a doc patch be appropriate too?


well, more difficult how to explain it right than to code it right,
meanwhile I added a sentence in english this to the patch:


--- reg-stack.c (Revision 231696)
+++ reg-stack.c (Arbeitskopie)
@@ -97,6 +97,9 @@
        All implicitly popped input regs must be closer to the top of
        the reg-stack than any input that is not implicitly popped.

+       All explicitly referenced input operands may not "skip" a reg.
+       Otherwise we can have holes in the stack.
+
    3. It is possible that if an input dies in an insn, reload might
       use the input reg for an output reload.  Consider this example:


I got to this patch only, because I did not read the docs very well.

first I tried, asm("":"=t"(x)") OK.
then asm("":"=t"(x):"t"(x)) REJECTED "output operand 0 must use ‘&’ constraint"
then asm("":"=&t"(x):"t"(x)) REJECTED "asm operand has impossible constraints"
figured early clobber of "=&t" and using "t" at the same time is usually wrong,
therefore: asm("":"=&t"(x):"u"(x)) => ICE

the diagnostics miss-guided me how to do it.
that's why good diagnostics are important to beginners.

Reply via email to