OSDN Git Service

2005-09-27 Uros Bizjak <uros@kss-loka.si>
[pf3gnuchains/gcc-fork.git] / gcc / print-rtl.c
index 0683159..73e3710 100644 (file)
@@ -1,5 +1,6 @@
 /* Print RTL for GCC.
-   Copyright (C) 1987, 1988, 1992, 1997, 1998, 1999, 2000, 2002, 2003, 2004
+   Copyright (C) 1987, 1988, 1992, 1997, 1998, 1999, 2000, 2002, 2003,
+   2004, 2005
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -16,8 +17,8 @@ for more details.
 
 You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.  */
 
 /* This file is compiled twice: once for the generator programs,
    once for the compiler.  */
@@ -102,6 +103,18 @@ print_mem_expr (FILE *outfile, tree expr)
       print_mem_expr (outfile, TREE_OPERAND (expr, 0));
       fputs (")", outfile);
     }
+  else if (TREE_CODE (expr) == ALIGN_INDIRECT_REF)
+    {
+      fputs (" (A*", outfile);
+      print_mem_expr (outfile, TREE_OPERAND (expr, 0));
+      fputs (")", outfile);
+    }
+  else if (TREE_CODE (expr) == MISALIGNED_INDIRECT_REF)
+    {
+      fputs (" (M*", outfile);
+      print_mem_expr (outfile, TREE_OPERAND (expr, 0));
+      fputs (")", outfile);
+    }
   else if (TREE_CODE (expr) == RESULT_DECL)
     fputs (" <result>", outfile);
   else
@@ -186,16 +199,15 @@ print_rtx (rtx in_rtx)
          if (RTX_FLAG (in_rtx, return_val))
            fputs ("/i", outfile);
 
-         if (GET_MODE (in_rtx) != VOIDmode)
-           {
-             /* Print REG_NOTE names for EXPR_LIST and INSN_LIST.  */
-             if (GET_CODE (in_rtx) == EXPR_LIST
-                 || GET_CODE (in_rtx) == INSN_LIST)
-               fprintf (outfile, ":%s",
-                        GET_REG_NOTE_NAME (GET_MODE (in_rtx)));
-             else
-               fprintf (outfile, ":%s", GET_MODE_NAME (GET_MODE (in_rtx)));
-           }
+         /* Print REG_NOTE names for EXPR_LIST and INSN_LIST.  */
+         if (GET_CODE (in_rtx) == EXPR_LIST
+             || GET_CODE (in_rtx) == INSN_LIST)
+           fprintf (outfile, ":%s",
+                    GET_REG_NOTE_NAME (GET_MODE (in_rtx)));
+
+         /* For other rtl, print the mode if it's not VOID.  */
+         else if (GET_MODE (in_rtx) != VOIDmode)
+           fprintf (outfile, ":%s", GET_MODE_NAME (GET_MODE (in_rtx)));
        }
     }
 
@@ -275,7 +287,7 @@ print_rtx (rtx in_rtx)
                if (flag_dump_unnumbered)
                  fprintf (outfile, "#");
                else
-                 fprintf (outfile, HOST_PTR_PRINTF,
+                 fprintf (outfile, "%p",
                           (char *) NOTE_BLOCK (in_rtx));
                sawclose = 1;
                break;
@@ -308,7 +320,7 @@ print_rtx (rtx in_rtx)
                }
                break;
 
-             case NOTE_INSN_UNLIKELY_EXECUTED_CODE:
+             case NOTE_INSN_SWITCH_TEXT_SECTIONS:
                {
 #ifndef GENERATOR_FILE
                  basic_block bb = NOTE_BASIC_BLOCK (in_rtx);
@@ -527,7 +539,7 @@ print_rtx (rtx in_rtx)
        break;
 
       case 't':
-       fprintf (outfile, " " HOST_PTR_PRINTF, (void *) XTREE (in_rtx, i));
+       fprintf (outfile, " %p", (void *) XTREE (in_rtx, i));
        break;
 
       case '*':
@@ -543,10 +555,7 @@ print_rtx (rtx in_rtx)
        break;
 
       default:
-       fprintf (stderr,
-                "switch format wrong in rtl.print_rtx(). format was: %c.\n",
-                format_ptr[-1]);
-       abort ();
+       gcc_unreachable ();
       }
 
   switch (GET_CODE (in_rtx))
@@ -596,7 +605,7 @@ print_rtx (rtx in_rtx)
          case LABEL_STATIC_ENTRY: fputs (" [entry]", outfile); break;
          case LABEL_GLOBAL_ENTRY: fputs (" [global entry]", outfile); break;
          case LABEL_WEAK_ENTRY: fputs (" [weak entry]", outfile); break;
-         default: abort();
+         default: gcc_unreachable ();
        }
       break;