2002-04-16 Dale Johannesen <dalej@apple.com>
authordje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Apr 2002 21:56:09 +0000 (21:56 +0000)
committerdje <dje@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 16 Apr 2002 21:56:09 +0000 (21:56 +0000)
        * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
        instruction addresses.
        (rs6000_output_function_epilogue): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52378 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index da55bbc..3a185ec 100644 (file)
@@ -1,3 +1,9 @@
+2002-04-16  Dale Johannesen <dalej@apple.com>
+
+       * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute
+       instruction addresses.
+       (rs6000_output_function_epilogue): Likewise.
+
 2002-04-16  Paolo Carlini  <pcarlini@unitus.it>
 
        * c-parse.in (poplevel, compstmt_start,
index efd3a0b..bb16748 100644 (file)
@@ -7250,11 +7250,11 @@ rs6000_emit_cmove (dest, op, true_cond, false_cond)
   rtx temp;
 
   /* These modes should always match. */
-  if ( GET_MODE (op1) != compare_mode )
+  if (GET_MODE (op1) != compare_mode)
     return 0;
-  if ( GET_MODE (true_cond) != result_mode )
+  if (GET_MODE (true_cond) != result_mode)
     return 0;
-  if ( GET_MODE (false_cond) != result_mode )
+  if (GET_MODE (false_cond) != result_mode)
     return 0;
 
   /* First, work out if the hardware can do this at all, or
@@ -9039,6 +9039,17 @@ rs6000_output_function_prologue (file, size)
       emit_note (0, NOTE_INSN_DELETED);
       rs6000_emit_prologue ();
       emit_note (0, NOTE_INSN_DELETED);
+
+      /* Expand INSN_ADDRESSES so final() doesn't crash. */
+      {
+       rtx insn;
+       unsigned addr = 0;
+       for (insn = get_insns (); insn != 0; insn = NEXT_INSN (insn))
+         {
+           INSN_ADDRESSES_NEW (insn, addr);
+           addr += 4;
+         }
+      }
       
       if (TARGET_DEBUG_STACK)
        debug_rtx_list (get_insns (), 100);
@@ -9427,6 +9438,17 @@ rs6000_output_function_epilogue (file, size)
          rs6000_emit_epilogue (FALSE);
          emit_note (0, NOTE_INSN_DELETED);
 
+         /* Expand INSN_ADDRESSES so final() doesn't crash. */
+         {
+           rtx insn;
+           unsigned addr = 0;
+           for (insn = get_insns (); insn != 0; insn = NEXT_INSN (insn))
+             {
+               INSN_ADDRESSES_NEW (insn, addr);
+               addr += 4;
+             }
+         }
+
          if (TARGET_DEBUG_STACK)
            debug_rtx_list (get_insns (), 100);
          final (get_insns (), file, FALSE, FALSE);