]> code.ossystems Code Review - openembedded-core.git/blob
033a5ce262075bde3c475416eee319ac41481a2d
[openembedded-core.git] /
1 Upstream-Status: Inappropriate [Backport]
2 From a03834fec84b808ccef5c0abb5c35d069d7ad868 Mon Sep 17 00:00:00 2001
3 From: nickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
4 Date: Tue, 12 Apr 2011 11:33:07 +0000
5 Subject: [PATCH 108/200]        * config/v850/v850.c (expand_prologue): Do not use the CALLT
6         instruction for interrupt handlers if the target is the basic V850
7         architecture.
8         (expand_epilogue): Likewise.
9
10 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@172312 138bc75d-0d04-0410-961f-82ee72b054a4
11
12 index 6d6ed78..d75f88c 100644
13 --- a/gcc/config/v850/v850.c
14 +++ b/gcc/config/v850/v850.c
15 @@ -1686,7 +1686,7 @@ expand_prologue (void)
16    /* Save/setup global registers for interrupt functions right now.  */
17    if (interrupt_handler)
18      {
19 -      if (! TARGET_DISABLE_CALLT)
20 +      if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
21         emit_insn (gen_callt_save_interrupt ());
22        else
23         emit_insn (gen_save_interrupt ());
24 @@ -1768,7 +1768,7 @@ expand_prologue (void)
25        /* Special case interrupt functions that save all registers for a call.  */
26        if (interrupt_handler && ((1L << LINK_POINTER_REGNUM) & reg_saved) != 0)
27         {
28 -         if (! TARGET_DISABLE_CALLT)
29 +         if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
30             emit_insn (gen_callt_save_all_interrupt ());
31           else
32             emit_insn (gen_save_all_interrupt ());
33 @@ -2019,7 +2019,7 @@ expand_epilogue (void)
34        /* And return or use reti for interrupt handlers.  */
35        if (interrupt_handler)
36          {
37 -          if (! TARGET_DISABLE_CALLT)
38 +          if (! TARGET_DISABLE_CALLT && (TARGET_V850E || TARGET_V850E2_ALL))
39              emit_insn (gen_callt_return_interrupt ());
40            else
41              emit_jump_insn (gen_return_interrupt ());
42 -- 
43 1.7.0.4
44