*参照元 [#u29a747a]
#backlinks

*説明 [#u566787c]
-パス: [[gcc-8.3/gcc/print-rtl.c]]

-FIXME: これは何?
--説明


**引数 [#m68afc36]
-const_rtx in_rtx ATTRIBUTE_UNUSED
--
--[[gcc-8.3/gcc/const_rtx]]
--[[gcc-8.3/gcc/ATTRIBUTE_UNUSED]]
-int idx ATTRIBUTE_UNUSED
--


**返り値 [#f62bc4e2]
-なし


**参考 [#s11060ed]


*実装 [#k1653f35]
 /* Subroutine of print_rtx_operand for handling code '0'.
    0 indicates a field for internal use that should not be printed.
    However there are various special cases, such as the third field
    of a NOTE, where it indicates that the field has several different
    valid contents.  */
 
 void
 rtx_writer::print_rtx_operand_code_0 (const_rtx in_rtx ATTRIBUTE_UNUSED,
 				      int idx ATTRIBUTE_UNUSED)
 {
 #ifndef GENERATOR_FILE
   if (idx == 1 && GET_CODE (in_rtx) == SYMBOL_REF)
     {
       int flags = SYMBOL_REF_FLAGS (in_rtx);
       if (flags)
 	fprintf (m_outfile, " [flags %#x]", flags);
       tree decl = SYMBOL_REF_DECL (in_rtx);
       if (decl)
 	print_node_brief (m_outfile, "", decl, dump_flags);
     }
-
--[[gcc-8.3/gcc/GET_CODE()]]
--[[gcc-8.3/gcc/SYMBOL_REF_FLAGS()]]
--[[gcc-8.3/gcc/SYMBOL_REF_DECL()]]
--[[gcc-8.3/gcc/print_node_brief()]]

   else if (idx == 3 && NOTE_P (in_rtx))
     {
       switch (NOTE_KIND (in_rtx))
 	{
 	case NOTE_INSN_EH_REGION_BEG:
 	case NOTE_INSN_EH_REGION_END:
 	  if (flag_dump_unnumbered)
 	    fprintf (m_outfile, " #");
 	  else
 	    fprintf (m_outfile, " %d", NOTE_EH_HANDLER (in_rtx));
 	  m_sawclose = 1;
 	  break;
 
-
--[[gcc-8.3/gcc/NOTE_EH_HANDLER()]]

 	case NOTE_INSN_BLOCK_BEG:
 	case NOTE_INSN_BLOCK_END:
 	  dump_addr (m_outfile, " ", NOTE_BLOCK (in_rtx));
 	  m_sawclose = 1;
 	  break;
 
 	case NOTE_INSN_BASIC_BLOCK:
 	  {
 	    basic_block bb = NOTE_BASIC_BLOCK (in_rtx);
 	    if (bb != 0)
 	      fprintf (m_outfile, " [bb %d]", bb->index);
 	    break;
 	  }
 
-
--[[gcc-8.3/gcc/dump_addr()]]
--[[gcc-8.3/gcc/NOTE_BLOCK()]]
--[[gcc-8.3/gcc/basic_block]]
--[[gcc-8.3/gcc/NOTE_BASIC_BLOCK()]]

 	case NOTE_INSN_DELETED_LABEL:
 	case NOTE_INSN_DELETED_DEBUG_LABEL:
 	  {
 	    const char *label = NOTE_DELETED_LABEL_NAME (in_rtx);
 	    if (label)
 	      fprintf (m_outfile, " (\"%s\")", label);
 	    else
 	      fprintf (m_outfile, " \"\"");
 	  }
 	  break;
 
-
--[[gcc-8.3/gcc/NOTE_DELETED_LABEL_NAME()]]

 	case NOTE_INSN_SWITCH_TEXT_SECTIONS:
 	  {
 	    basic_block bb = NOTE_BASIC_BLOCK (in_rtx);
 	    if (bb != 0)
 	      fprintf (m_outfile, " [bb %d]", bb->index);
 	    break;
 	  }
 
 	case NOTE_INSN_VAR_LOCATION:
 	  fputc (' ', m_outfile);
 	  print_rtx (NOTE_VAR_LOCATION (in_rtx));
 	  break;
 
-
--[[gcc-8.3/gcc/rtx_writer/print_rtx()]]
--[[gcc-8.3/gcc/NOTE_VAR_LOCATION()]]

 	case NOTE_INSN_CFI:
 	  fputc ('\n', m_outfile);
 	  output_cfi_directive (m_outfile, NOTE_CFI (in_rtx));
 	  fputc ('\t', m_outfile);
 	  break;
 
-
--[[gcc-8.3/gcc/NOTE_CFI()]]
--[[gcc-8.3/gcc/output_cfi_directive()]]

 	case NOTE_INSN_BEGIN_STMT:
 	case NOTE_INSN_INLINE_ENTRY:
 #ifndef GENERATOR_FILE
 	  {
 	    expanded_location xloc
 	      = expand_location (NOTE_MARKER_LOCATION (in_rtx));
 	    fprintf (m_outfile, " %s:%i", xloc.file, xloc.line);
 	  }
 #endif
 	  break;
 
 	default:
 	  break;
 	}
-
--[[gcc-8.3/gcc/expanded_location]]
--[[gcc-8.3/gcc/expand_location()]]
--[[gcc-8.3/gcc/NOTE_MARKER_LOCATION()]]

     }
   else if (idx == 7 && JUMP_P (in_rtx) && JUMP_LABEL (in_rtx) != NULL
 	   && !m_compact)
     {
       /* Output the JUMP_LABEL reference.  */
       fprintf (m_outfile, "\n%s%*s -> ", print_rtx_head, m_indent * 2, "");
       if (GET_CODE (JUMP_LABEL (in_rtx)) == RETURN)
 	fprintf (m_outfile, "return");
       else if (GET_CODE (JUMP_LABEL (in_rtx)) == SIMPLE_RETURN)
 	fprintf (m_outfile, "simple_return");
       else
 	fprintf (m_outfile, "%d", INSN_UID (JUMP_LABEL (in_rtx)));
     }
-
--[[gcc-8.3/gcc/JUMP_P()]]
--[[gcc-8.3/gcc/JUMP_LABEL()]]
--[[gcc-8.3/gcc/GET_CODE()]]
--[[gcc-8.3/gcc/INSN_UID()]]

   else if (idx == 0 && GET_CODE (in_rtx) == VALUE)
     {
       cselib_val *val = CSELIB_VAL_PTR (in_rtx);
 
       fprintf (m_outfile, " %u:%u", val->uid, val->hash);
       dump_addr (m_outfile, " @", in_rtx);
       dump_addr (m_outfile, "/", (void*)val);
     }
-
--[[gcc-8.3/gcc/cselib_val]]
--[[gcc-8.3/gcc/CSELIB_VAL_PTR()]]

   else if (idx == 0 && GET_CODE (in_rtx) == DEBUG_EXPR)
     {
       fprintf (m_outfile, " D#%i",
 	       DEBUG_TEMP_UID (DEBUG_EXPR_TREE_DECL (in_rtx)));
     }
-
--[[gcc-8.3/gcc/DEBUG_TEMP_UID()]]
--[[gcc-8.3/gcc/DEBUG_EXPR_TREE_DECL()]]

   else if (idx == 0 && GET_CODE (in_rtx) == ENTRY_VALUE)
     {
       m_indent += 2;
       if (!m_sawclose)
 	fprintf (m_outfile, " ");
       print_rtx (ENTRY_VALUE_EXP (in_rtx));
       m_indent -= 2;
     }
 #endif
 }
-
--[[gcc-8.3/gcc/GET_CODE()]]
--[[gcc-8.3/gcc/ENTRY_VALUE_EXP()]]


*コメント [#nec0f1b6]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS