diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/stormy16/stormy16.c | 3 |
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 |