*参照元 [#xf82442b] #backlinks *説明 [#c53d9915] -パス: [[gcc-8.3/gcc/print-rtl.c]] -FIXME: これは何? --説明 **引数 [#b3939031] -const_rtx in_rtx -- --[[gcc-8.3/gcc/const_rtx]] **返り値 [#la7c9579] -なし **参考 [#c9e620de] *実装 [#tf2073a5] /* Subroutine of print_rtx_operand for handling code 'r'. */ void rtx_writer::print_rtx_operand_code_r (const_rtx in_rtx) { int is_insn = INSN_P (in_rtx); unsigned int regno = REGNO (in_rtx); - --[[gcc-8.3/gcc/INSN_P()]] --[[gcc-8.3/gcc/REGNO()]] #ifndef GENERATOR_FILE /* For hard registers and virtuals, always print the regno, except in compact mode. */ if (regno <= LAST_VIRTUAL_REGISTER && !m_compact) fprintf (m_outfile, " %d", regno); if (regno < FIRST_PSEUDO_REGISTER) fprintf (m_outfile, " %s", reg_names[regno]); - --[[gcc-8.3/gcc/reg_names(global)]] else if (regno <= LAST_VIRTUAL_REGISTER) { if (regno == VIRTUAL_INCOMING_ARGS_REGNUM) fprintf (m_outfile, " virtual-incoming-args"); else if (regno == VIRTUAL_STACK_VARS_REGNUM) fprintf (m_outfile, " virtual-stack-vars"); else if (regno == VIRTUAL_STACK_DYNAMIC_REGNUM) fprintf (m_outfile, " virtual-stack-dynamic"); else if (regno == VIRTUAL_OUTGOING_ARGS_REGNUM) fprintf (m_outfile, " virtual-outgoing-args"); else if (regno == VIRTUAL_CFA_REGNUM) fprintf (m_outfile, " virtual-cfa"); else if (regno == VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM) fprintf (m_outfile, " virtual-preferred-stack-boundary"); else fprintf (m_outfile, " virtual-reg-%d", regno-FIRST_VIRTUAL_REGISTER); } else #endif if (flag_dump_unnumbered && is_insn) fputc ('#', m_outfile); else if (m_compact) { /* In compact mode, print pseudos with '< and '>' wrapping the regno, offseting it by (LAST_VIRTUAL_REGISTER + 1), so that the first non-virtual pseudo is dumped as "<0>". */ gcc_assert (regno > LAST_VIRTUAL_REGISTER); fprintf (m_outfile, " <%d>", regno - (LAST_VIRTUAL_REGISTER + 1)); } else fprintf (m_outfile, " %d", regno); - --[[gcc-8.3/gcc/gcc_assert()]] #ifndef GENERATOR_FILE if (REG_ATTRS (in_rtx)) { fputs (" [", m_outfile); if (regno != ORIGINAL_REGNO (in_rtx)) fprintf (m_outfile, "orig:%i", ORIGINAL_REGNO (in_rtx)); if (REG_EXPR (in_rtx)) print_mem_expr (m_outfile, REG_EXPR (in_rtx)); if (maybe_ne (REG_OFFSET (in_rtx), 0)) { fprintf (m_outfile, "+"); print_poly_int (m_outfile, REG_OFFSET (in_rtx)); } fputs (" ]", m_outfile); } if (regno != ORIGINAL_REGNO (in_rtx)) fprintf (m_outfile, " [%d]", ORIGINAL_REGNO (in_rtx)); #endif - --[[gcc-8.3/gcc/REG_ATTRS()]] --[[gcc-8.3/gcc/ORIGINAL_REGNO()]] --[[gcc-8.3/gcc/REG_EXPR()]] --[[gcc-8.3/gcc/REG_OFFSET()]] } *コメント [#p3cd4812]