Lines Matching refs:insn

28 #include "insn-config.h"
65 saved in its widest mode with a simple SET insn as long as the memory
75 /* Set of hard regs currently residing in save area (during insn scan). */
84 insn. */
105 simple insn to save and restore the register. This latter check avoids
147 the validity of an insn operand is dependent on the address offset.
182 /* Next we try to form an insn to save and restore the register. We
183 see if such an insn is recognized and meets its constraints.
382 rtx insn = chain->insn;
383 enum rtx_code code = GET_CODE (insn);
389 if (INSN_P (insn))
392 any of them. We must restore them before the insn if so. */
404 mark_referenced_regs (PATTERN (insn));
413 if (code == CALL_INSN && ! find_reg_note (insn, REG_NORETURN, NULL))
450 /* Record all registers set in this call insn. These don't need
451 to be saved. N.B. the call insn might set a subreg of a
455 note_stores (PATTERN (insn), mark_set_regs, &this_insn_sets);
458 if (SIBLING_CALL_P (insn) && current_function_return_rtx)
484 remain saved. If the last insn in the block is a JUMP_INSN, put
485 the restore before the insn, otherwise, put it after the insn. */
490 regno += insert_restore (chain, JUMP_P (insn),
497 an insn stores a value in a register.
527 /* Here from note_stores when an insn stores a value in a register.
628 CHAIN if BEFORE_P is nonzero, behind the insn otherwise. MAXRESTORE is
634 since the address might not be valid so the insn might not be recognized.
653 expect to save. That will cause us to write an insn with a (nil)
726 expect to save. That will cause us to write an insn with a (nil)
782 /* Emit a new caller-save insn and set the code. */
786 rtx insn = chain->insn;
790 /* If INSN references CC0, put our insns in front of the insn that sets
792 insn that references CC0 is for a restore, and doing a restore earlier
796 if ((NONJUMP_INSN_P (insn) || JUMP_P (insn))
798 && reg_referenced_p (cc0_rtx, PATTERN (insn)))
799 chain = chain->prev, insn = chain->insn;
815 new->insn = emit_insn_before (pat, insn);
819 /* Registers that die in CHAIN->INSN still live in the new insn. */
820 for (link = REG_NOTES (chain->insn); link; link = XEXP (link, 1))
839 if (chain->insn == BB_HEAD (BASIC_BLOCK (chain->block)))
840 BB_HEAD (BASIC_BLOCK (chain->block)) = new->insn;
849 new->insn = emit_insn_after (pat, insn);
853 /* Registers that are set in CHAIN->INSN live in the new insn.
856 note_stores (PATTERN (chain->insn), add_stored_regs,
859 if (chain->insn == BB_END (BASIC_BLOCK (chain->block)))
860 BB_END (BASIC_BLOCK (chain->block)) = new->insn;
865 INSN_CODE (new->insn) = code;