aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Clifton <nickc@gcc.gnu.org>2010-11-15 10:39:18 +0000
committerNick Clifton <nickc@gcc.gnu.org>2010-11-15 10:39:18 +0000
commit2fd7ba4ac9de8a0febcaec28920f24363f6403d9 (patch)
treeee2bf3af04d830d7fb9c1a6b0f0fa0314fbfe1b4
parent5792856d2a06a8b61d74e2fb652ec995a589d4e0 (diff)
downloadgcc-2fd7ba4ac9de8a0febcaec28920f24363f6403d9.zip
gcc-2fd7ba4ac9de8a0febcaec28920f24363f6403d9.tar.gz
gcc-2fd7ba4ac9de8a0febcaec28920f24363f6403d9.tar.bz2
stormy16.c (direct_return): Do not generate a direct return for interrupt handlers.
* config/stormy16/stormy16.c (direct_return): Do not generate a direct return for interrupt handlers. From-SVN: r166748
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/stormy16/stormy16.c3
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3c35514..872ab8b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2010-11-15 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16.c (direct_return): Do not generate a
+ direct return for interrupt handlers.
+
2010-11-15 Joern Rennecke <amylaar@spamcop.net>
* Makefile.in (tm.texi): Replace with rule for:
@@ -55,7 +60,7 @@
* output.h (decode_reg_name_and_count): Declare.
* varasm.c (decode_reg_name_and_count): New function.
(decode_reg_name): Reimplement using decode_reg_name_and_count.
- * reginfo.c (fix_register): Use decode_reg_name_and_count and
+ * reginfo.c (fix_register): Use decode_reg_name_and_count and
iterate over all regs used.
* stmt.c (expand_asm_operands): Likewise.
* arm/aout.h (OVERLAPPING_REGISTER_NAMES): Define.
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 86a5caa..ce83f68 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -1175,7 +1175,8 @@ int
direct_return (void)
{
return (reload_completed
- && xstormy16_compute_stack_layout ().frame_size == 0);
+ && xstormy16_compute_stack_layout ().frame_size == 0
+ && ! xstormy16_interrupt_function_p ());
}
/* Called after register allocation to add any instructions needed for