Mercurial > hg > CbC > CbC_gcc
diff gcc/print-rtl.c @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
line wrap: on
line diff
--- a/gcc/print-rtl.c Tue May 25 18:58:51 2010 +0900 +++ b/gcc/print-rtl.c Tue Mar 22 17:18:12 2011 +0900 @@ -58,6 +58,10 @@ the assembly output file. */ const char *print_rtx_head = ""; +#ifdef GENERATOR_FILE +/* These are defined from the .opt file when not used in generator + programs. */ + /* Nonzero means suppress output of instruction numbers in debugging dumps. This must be defined here so that programs like gencodes can be linked. */ @@ -67,6 +71,7 @@ and next insns in debugging dumps. This must be defined here so that programs like gencodes can be linked. */ int flag_dump_unnumbered_links = 0; +#endif /* Nonzero means use simplified format without flags, modes, etc. */ int flag_simple = 0; @@ -333,6 +338,10 @@ case 'e': do_e: indent += 2; + if (i == 7 && INSN_P (in_rtx)) + /* Put REG_NOTES on their own line. */ + fprintf (outfile, "\n%s%*s", + print_rtx_head, indent * 2, ""); if (!sawclose) fprintf (outfile, " "); print_rtx (XEXP (in_rtx, i)); @@ -378,7 +387,7 @@ break; case 'i': - if (i == 4 && INSN_P (in_rtx)) + if (i == 5 && INSN_P (in_rtx)) { #ifndef GENERATOR_FILE /* Pretty-print insn locators. Ignore scoping as it is mostly @@ -411,6 +420,21 @@ if (NOTE_KIND (in_rtx) == NOTE_INSN_DELETED_LABEL) fprintf (outfile, " %d", XINT (in_rtx, i)); } +#if !defined(GENERATOR_FILE) && NUM_UNSPECV_VALUES > 0 + else if (i == 1 + && GET_CODE (in_rtx) == UNSPEC_VOLATILE + && XINT (in_rtx, 1) >= 0 + && XINT (in_rtx, 1) < NUM_UNSPECV_VALUES) + fprintf (outfile, " %s", unspecv_strings[XINT (in_rtx, 1)]); +#endif +#if !defined(GENERATOR_FILE) && NUM_UNSPEC_VALUES > 0 + else if (i == 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 (outfile, " %s", unspec_strings[XINT (in_rtx, 1)]); +#endif else { int value = XINT (in_rtx, i); @@ -433,6 +457,9 @@ fprintf (outfile, " %d virtual-outgoing-args", value); else if (value == VIRTUAL_CFA_REGNUM) fprintf (outfile, " %d virtual-cfa", value); + else if (value == VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM) + fprintf (outfile, " %d virtual-preferred-stack-boundary", + value); else fprintf (outfile, " %d virtual-reg-%d", value, value-FIRST_VIRTUAL_REGISTER); @@ -514,7 +541,10 @@ case 't': #ifndef GENERATOR_FILE - dump_addr (outfile, " ", XTREE (in_rtx, i)); + if (i == 0 && GET_CODE (in_rtx) == DEBUG_IMPLICIT_PTR) + print_mem_expr (outfile, DEBUG_IMPLICIT_PTR_DECL (in_rtx)); + else + dump_addr (outfile, " ", XTREE (in_rtx, i)); #endif break; @@ -626,7 +656,7 @@ /* Call this function from the debugger to see what X looks like. */ -void +DEBUG_FUNCTION void debug_rtx (const_rtx x) { outfile = stderr; @@ -638,7 +668,7 @@ /* Count of rtx's to print with debug_rtx_list. This global exists because gdb user defined commands have no arguments. */ -int debug_rtx_count = 0; /* 0 is treated as equivalent to 1 */ +DEBUG_VARIABLE int debug_rtx_count = 0; /* 0 is treated as equivalent to 1 */ /* Call this function to print list from X on. @@ -646,7 +676,7 @@ rtx on. Negative values print a window around the rtx. EG: -5 prints 2 rtx's on either side (in addition to the specified rtx). */ -void +DEBUG_FUNCTION void debug_rtx_list (const_rtx x, int n) { int i,count; @@ -673,7 +703,7 @@ /* Call this function to print an rtx list from START to END inclusive. */ -void +DEBUG_FUNCTION void debug_rtx_range (const_rtx start, const_rtx end) { while (1) @@ -690,7 +720,7 @@ and then call debug_rtx_list to print it, using DEBUG_RTX_COUNT. The found insn is returned to enable further debugging analysis. */ -const_rtx +DEBUG_FUNCTION const_rtx debug_rtx_find (const_rtx x, int uid) { while (x != 0 && INSN_UID (x) != uid)