*参照元 [#j1bea7f6]
#backlinks

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

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


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


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


**参考 [#l8ac9919]


*実装 [#rbff4e67]
 /* Subroutine of print_rtx_operand for handling code 'i'.  */
 
 void
 rtx_writer::print_rtx_operand_code_i (const_rtx in_rtx, int idx)
 {
   if (idx == 4 && INSN_P (in_rtx))
     {
 #ifndef GENERATOR_FILE
       const rtx_insn *in_insn = as_a <const rtx_insn *> (in_rtx);
 
       /*  Pretty-print insn locations.  Ignore scoping as it is mostly
 	  redundant with line number information and do not print anything
 	  when there is no location information available.  */
       if (INSN_HAS_LOCATION (in_insn))
 	{
 	  expanded_location xloc = insn_location (in_insn);
 	  fprintf (m_outfile, " \"%s\":%i", xloc.file, xloc.line);
 	}
 #endif
     }
-
--[[gcc-8.3/gcc/INSN_P()]]
--[[gcc-8.3/gcc/rtx_insn]]
--[[gcc-8.3/gcc/INSN_HAS_LOCATION()]]
--[[gcc-8.3/gcc/expanded_location]]
--[[gcc-8.3/gcc/insn_location()]]

   else if (idx == 6 && GET_CODE (in_rtx) == ASM_OPERANDS)
     {
 #ifndef GENERATOR_FILE
       if (ASM_OPERANDS_SOURCE_LOCATION (in_rtx) != UNKNOWN_LOCATION)
 	fprintf (m_outfile, " %s:%i",
 		 LOCATION_FILE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)),
 		 LOCATION_LINE (ASM_OPERANDS_SOURCE_LOCATION (in_rtx)));
 #endif
     }
-
--[[gcc-8.3/gcc/GET_CODE()]]
--[[gcc-8.3/gcc/ASM_OPERANDS_SOURCE_LOCATION()]]
--[[gcc-8.3/gcc/LOCATION_FILE()]]
--[[gcc-8.3/gcc/LOCATION_LINE()]]

   else if (idx == 1 && GET_CODE (in_rtx) == ASM_INPUT)
     {
 #ifndef GENERATOR_FILE
       if (ASM_INPUT_SOURCE_LOCATION (in_rtx) != UNKNOWN_LOCATION)
 	fprintf (m_outfile, " %s:%i",
 		 LOCATION_FILE (ASM_INPUT_SOURCE_LOCATION (in_rtx)),
 		 LOCATION_LINE (ASM_INPUT_SOURCE_LOCATION (in_rtx)));
 #endif
     }
-
--[[gcc-8.3/gcc/ASM_INPUT_SOURCE_LOCATION()]]

   else if (idx == 5 && NOTE_P (in_rtx))
     {
       /* This field is only used for NOTE_INSN_DELETED_LABEL, and
 	 other times often contains garbage from INSN->NOTE death.  */
       if (NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_LABEL
 	  || NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_DEBUG_LABEL)
 	fprintf (m_outfile, " %d",  XINT (in_rtx, idx));
     }
-
--[[gcc-8.3/gcc/NOTE_KIND()]]
--[[gcc-8.3/gcc/XINT()]]

 #if !defined(GENERATOR_FILE) && NUM_UNSPECV_VALUES > 0
   else if (idx == 1
 	   && GET_CODE (in_rtx) == UNSPEC_VOLATILE
 	   && XINT (in_rtx, 1) >= 0
 	   && XINT (in_rtx, 1) < NUM_UNSPECV_VALUES)
     fprintf (m_outfile, " %s", unspecv_strings[XINT (in_rtx, 1)]);
 #endif
 #if !defined(GENERATOR_FILE) && NUM_UNSPEC_VALUES > 0
   else if (idx == 1
 	   && (GET_CODE (in_rtx) == UNSPEC
 	       || GET_CODE (in_rtx) == UNSPEC_VOLATILE)
 	   && XINT (in_rtx, 1) >= 0
 	   && XINT (in_rtx, 1) < NUM_UNSPEC_VALUES)
     fprintf (m_outfile, " %s", unspec_strings[XINT (in_rtx, 1)]);
 #endif
   else
     {
       int value = XINT (in_rtx, idx);
       const char *name;
       int is_insn = INSN_P (in_rtx);
 
       /* Don't print INSN_CODEs in compact mode.  */
       if (m_compact && is_insn && &INSN_CODE (in_rtx) == &XINT (in_rtx, idx))
 	{
 	  m_sawclose = 0;
 	  return;
 	}
 
       if (flag_dump_unnumbered
 	  && (is_insn || NOTE_P (in_rtx)))
 	fputc ('#', m_outfile);
       else
 	fprintf (m_outfile, " %d", value);
 
       if (is_insn && &INSN_CODE (in_rtx) == &XINT (in_rtx, idx)
 	  && XINT (in_rtx, idx) >= 0
 	  && (name = get_insn_name (XINT (in_rtx, idx))) != NULL)
 	fprintf (m_outfile, " {%s}", name);
       m_sawclose = 0;
     }
-
--[[gcc-8.3/gcc/XINT()]]
--[[gcc-8.3/gcc/INSN_P()]]
--[[gcc-8.3/gcc/NOTE_P()]]
--[[gcc-8.3/gcc/get_insn_name()]]

 }


*コメント [#wbbcdad0]


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