Hi!

I have to insert NOP-instructions into the insn-stream in my back- end. I do this with something ala emit_insn_after(gen_nop, xyz). This works so far.

GCC leaves control-flow operations as they are, if it there are no instructions which can be used to fill the branch delay slots. My first idea was to convert these control-flow cf to SEQUENCE(cf) and hope the GCC will invoke DBR_OUTPUT_SEQEND(), but it does not? My second idea was to add these NOP-instructions: SEQUENCE(cf, NOP,...,NOP). I "reused" the code in function emit_delay_sequence() in reorg.c and added NOPs with:
        XVECEXP (seq, 0, i) = emit_insn_after(tem, XVECEXP (seq, 0, i - 1));
or
        XVECEXP (seq, 0, i) = tem;
But GCC will fail in both cases in final_scan_insn() or asm_noperands (). In both cases the CONST_INT (pattern for nop) is passed as a rtx pointer.

so, how do I add NOP-instructions properly?

Thanks,
Boris

Reply via email to