diff options
author | Nick Clifton <nickc@redhat.com> | 2011-04-12 11:34:26 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2011-04-12 11:34:26 +0000 |
commit | e5db8f2fdee28a867df2ada8f2631d62715a1ac9 (patch) | |
tree | 4be7e308ed9b30ccecfca8963fe89f4ee2af6ddc | |
parent | 74f091d686a259e096d7fb316d3a2e60623cdd3d (diff) | |
download | gcc-e5db8f2fdee28a867df2ada8f2631d62715a1ac9.zip gcc-e5db8f2fdee28a867df2ada8f2631d62715a1ac9.tar.gz gcc-e5db8f2fdee28a867df2ada8f2631d62715a1ac9.tar.bz2 |
v850.c (expand_prologue): Do not use the CALLT instruction for interrupt handlers if...
* 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.
From-SVN: r172313
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/v850/v850.c | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6aea7a4..d7a72db 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-04-12 Nick Clifton <nickc@redhat.com> + + * 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. + 2011-04-12 Jakub Jelinek <jakub@redhat.com> PR rtl-optimization/48549 diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c index f227596..b0b9388 100644 --- a/gcc/config/v850/v850.c +++ b/gcc/config/v850/v850.c @@ -1690,7 +1690,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 ()); @@ -1772,7 +1772,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 ()); @@ -2023,7 +2023,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 ()); |