diff options
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0389-config-sparc-sparc.c-output_return-Fix-thinko-in-the.patch')
-rw-r--r-- | meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0389-config-sparc-sparc.c-output_return-Fix-thinko-in-the.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0389-config-sparc-sparc.c-output_return-Fix-thinko-in-the.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0389-config-sparc-sparc.c-output_return-Fix-thinko-in-the.patch new file mode 100644 index 000000000..7e52179e0 --- /dev/null +++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0389-config-sparc-sparc.c-output_return-Fix-thinko-in-the.patch @@ -0,0 +1,45 @@ +From 82ededd899a80bf419dd2c4d942a4776a1e13dd5 Mon Sep 17 00:00:00 2001 +From: ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> +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 + |