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.