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

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Created attachment 47581
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=47581&action=edit
gcc10-pr93122.patch

Untested fix.  With additional -fno-asynchronous-unwind-tables, it doesn't ICE,
but just emit wrong-code, the stack clash protection code expects r12 to be r1
+ stack offset, but it is not initialized to anything at all.
The bug seems to be that add<mode>3 expander uses reg_or_add_cint_operand
predicate for the last operand and if that isn't satisfied, gen_add3_insn
simply doesn't emit anything.  On top of that, I think we want to use
add_operand as before too, because otherwise gen_add3_insn can emit multiple
instructions and in that case we really need to describe the effect to
dwarf2frame.c properly.

Reply via email to