Hello! I am trying to add instructions into function prologue/epilogue. These instructions shall save and load "fixed" registers to avoid assembly.
Register saving in the prologue appears to work. The restore code in the epilogue aborts in flow.c/propagate_one_insn with "Attempt to delete prologue/epilogue insn" unless the stackslot was marked with MEM_VOLATILE_P. I don't think thats the proper fix. Then I used TARGET_ASM_FUNCTION_END_PROLOGUE to emit additional assembly code. However this hook is _only_ called if prologue/epilogue instructions are scheduled. Is that the expected behaviour? tm.texi doesn't mention this. I tried to get rid of TARGET_ASM_FUNCTION_END_PROLOGUE by emitting the loads as RTL, but then I also get flow.c aborts if prologue and epilogue are scheduled. It works when not scheduling. This is the load code: ref = gen_rtx_SYMBOL_REF (Pmode, "symbol"); emit_insn (gen_elf_high (reg, ref)); emit_insn (gen_elf_low (reg, reg, ref)); How do I prevent the aborts from flow? Any help appreciated. Gunther Nikl