参照元

説明

引数

返り値

参考

実装

/* Subroutine of print_rtx_operand for handling code 'u'.  */

void
rtx_writer::print_rtx_operand_code_u (const_rtx in_rtx, int idx)
{
  /* Don't print insn UIDs for PREV/NEXT_INSN in compact mode.  */
  if (m_compact && INSN_CHAIN_CODE_P (GET_CODE (in_rtx)) && idx < 2)
    return;
  if (XEXP (in_rtx, idx) != NULL)
    {
      rtx sub = XEXP (in_rtx, idx);
      enum rtx_code subc = GET_CODE (sub);
      if (GET_CODE (in_rtx) == LABEL_REF)
	{
	  if (subc == NOTE
	      && NOTE_KIND (sub) == NOTE_INSN_DELETED_LABEL)
	    {
	      if (flag_dump_unnumbered)
		fprintf (m_outfile, " [# deleted]");
	      else
		fprintf (m_outfile, " [%d deleted]", INSN_UID (sub));
	      m_sawclose = 0;
	      return;
	    }

	  if (subc != CODE_LABEL)
	    {
	      print_rtx_operand_code_e (in_rtx, idx);
	      return;
	    }
	}
      if (flag_dump_unnumbered
	  || (flag_dump_unnumbered_links && idx <= 1
	      && (INSN_P (in_rtx) || NOTE_P (in_rtx)
		  || LABEL_P (in_rtx) || BARRIER_P (in_rtx))))
	fputs (" #", m_outfile);
      else
	fprintf (m_outfile, " %d", INSN_UID (sub));
    }
  else
    fputs (" 0", m_outfile);
  m_sawclose = 0;
}

コメント


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS