summaryrefslogtreecommitdiff
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0108-config-v850-v850.c-expand_prologue-Do-not-use-the-CA.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0108-config-v850-v850.c-expand_prologue-Do-not-use-the-CA.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0108-config-v850-v850.c-expand_prologue-Do-not-use-the-CA.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0108-config-v850-v850.c-expand_prologue-Do-not-use-the-CA.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0108-config-v850-v850.c-expand_prologue-Do-not-use-the-CA.patch
new file mode 100644
index 000000000..2c7a7679c
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0108-config-v850-v850.c-expand_prologue-Do-not-use-the-CA.patch
@@ -0,0 +1,43 @@
+From a03834fec84b808ccef5c0abb5c35d069d7ad868 Mon Sep 17 00:00:00 2001
+From: nickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Tue, 12 Apr 2011 11:33:07 +0000
+Subject: [PATCH 108/200] * config/v850/v850.c (expand_prologue): Do not use the CALLT
+ instruction for interrupt handlers if the target is the basic V850
+ architecture.
+ (expand_epilogue): Likewise.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172312 138bc75d-0d04-0410-961f-82ee72b054a4
+
+index 6d6ed78..d75f88c 100644
+--- a/gcc/config/v850/v850.c
++++ b/gcc/config/v850/v850.c
+@@ -1686,7 +1686,7 @@ expand_prologue (void)
+ /* Save/setup global registers for interrupt functions right now. */
+ if (interrupt_handler)
+ {
+- if (! TARGET_DISABLE_CALLT)
++ if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
+ emit_insn (gen_callt_save_interrupt ());
+ else
+ emit_insn (gen_save_interrupt ());
+@@ -1768,7 +1768,7 @@ expand_prologue (void)
+ /* Special case interrupt functions that save all registers for a call. */
+ if (interrupt_handler && ((1L << LINK_POINTER_REGNUM) & reg_saved) != 0)
+ {
+- if (! TARGET_DISABLE_CALLT)
++ if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
+ emit_insn (gen_callt_save_all_interrupt ());
+ else
+ emit_insn (gen_save_all_interrupt ());
+@@ -2019,7 +2019,7 @@ expand_epilogue (void)
+ /* And return or use reti for interrupt handlers. */
+ if (interrupt_handler)
+ {
+- if (! TARGET_DISABLE_CALLT)
++ if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
+ emit_insn (gen_callt_return_interrupt ());
+ else
+ emit_jump_insn (gen_return_interrupt ());
+--
+1.7.0.4
+