*参照元 [#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]