OSDN Git Service

/cp
[pf3gnuchains/gcc-fork.git] / gcc / print-rtl.c
index 96e1485..a0f9dfb 100644 (file)
@@ -1,6 +1,6 @@
 /* Print RTL for GCC.
    Copyright (C) 1987, 1988, 1992, 1997, 1998, 1999, 2000, 2002, 2003,
-   2004, 2005, 2007, 2008, 2009, 2010
+   2004, 2005, 2007, 2008, 2009, 2010, 2011
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -58,6 +58,10 @@ static void print_rtx (const_rtx);
    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 @@ int flag_dump_unnumbered = 0;
    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;
@@ -297,6 +302,7 @@ print_rtx (const_rtx in_rtx)
                }
 
              case NOTE_INSN_VAR_LOCATION:
+             case NOTE_INSN_CALL_ARG_LOCATION:
 #ifndef GENERATOR_FILE
                fputc (' ', outfile);
                print_rtx (NOTE_VAR_LOCATION (in_rtx));
@@ -328,11 +334,23 @@ print_rtx (const_rtx in_rtx)
                     DEBUG_TEMP_UID (DEBUG_EXPR_TREE_DECL (in_rtx)));
 #endif
          }
+       else if (i == 0 && GET_CODE (in_rtx) == ENTRY_VALUE)
+         {
+           indent += 2;
+           if (!sawclose)
+             fprintf (outfile, " ");
+           print_rtx (ENTRY_VALUE_EXP (in_rtx));
+           indent -= 2;
+         }
        break;
 
       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 +396,7 @@ print_rtx (const_rtx in_rtx)
        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
@@ -448,6 +466,9 @@ print_rtx (const_rtx in_rtx)
                  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);
@@ -529,7 +550,10 @@ print_rtx (const_rtx in_rtx)
 
       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;