From 82ededd899a80bf419dd2c4d942a4776a1e13dd5 Mon Sep 17 00:00:00 2001 From: ebotcazou Date: Sun, 5 Jun 2011 23:20:21 +0000 Subject: [PATCH] * config/sparc/sparc.c (output_return): Fix thinko in the output of an EH return when delayed branches are disabled. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@174671 138bc75d-0d04-0410-961f-82ee72b054a4 index c6a2047..753028f 100644 --- a/gcc/config/sparc/sparc.c +++ b/gcc/config/sparc/sparc.c @@ -4763,18 +4763,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) { -- 1.7.0.4