summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 3c35514a754..872ab8bca1b 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 86a5caae147..ce83f683d39 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