Hi! On Mon, Jan 06, 2020 at 09:24:10AM +0100, Jakub Jelinek wrote: > 1) always use gen_add3_insn, but if it returns NULL use the extra > emit_move_insn (end_addr, GEN_INT (-rounded_size)); > and retry with end_addr instead of rs > 2) if the first gen_add3_insn returned NULL or if it created more than one > instruction, add the REG_FRAME_RELATED_EXPR note on the last insn
3) Don't use gen_add3_insn, generate the wanted insns directly. Why can't we do that? gen_add3_insn is fine for generic expansion, but that is not what we are doing here at all. And since not everything it can do is okay here at all apparently, it is a bad choice. It looks like your patch will pessimise code in some cases as well, btw? Segher