OSDN Git Service

* config/sparc/sparc.c (output_return): Fix thinko in the output of an
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Jun 2011 23:19:58 +0000 (23:19 +0000)
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 5 Jun 2011 23:19:58 +0000 (23:19 +0000)
EH return when delayed branches are disabled.

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

gcc/ChangeLog
gcc/config/sparc/sparc.c

index c1f2a35..98e1c08 100644 (file)
@@ -1,3 +1,8 @@
+2011-06-05  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (output_return): Fix thinko in the output of an
+       EH return when delayed branches are disabled.
+
 2011-06-05  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/i386/i386.md (*movdf_internal_rex64) <case 8,9,10>:
index d5d043d..59738af 100644 (file)
@@ -4752,18 +4752,20 @@ output_return (rtx insn)
             machinery occupies the delay slot.  */
          gcc_assert (! final_sequence);
 
-         if (! flag_delayed_branch)
-           fputs ("\tadd\t%fp, %g1, %fp\n", asm_out_file);
-
-         if (TARGET_V9)
-           fputs ("\treturn\t%i7+8\n", asm_out_file);
-         else
-           fputs ("\trestore\n\tjmp\t%o7+8\n", asm_out_file);
+          if (flag_delayed_branch)
+           {
+             if (TARGET_V9)
+               fputs ("\treturn\t%i7+8\n", asm_out_file);
+             else
+               fputs ("\trestore\n\tjmp\t%o7+8\n", asm_out_file);
 
-         if (flag_delayed_branch)
-           fputs ("\t add\t%sp, %g1, %sp\n", asm_out_file);
+             fputs ("\t add\t%sp, %g1, %sp\n", asm_out_file);
+           }
          else
-           fputs ("\t nop\n", asm_out_file);
+           {
+             fputs ("\trestore\n\tadd\t%sp, %g1, %sp\n", asm_out_file);
+             fputs ("\tjmp\t%o7+8\n\t nop\n", asm_out_file);
+           }
        }
       else if (final_sequence)
        {