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.