diff options
author | Nick Clifton <nickc@gcc.gnu.org> | 2010-11-15 10:39:18 +0000 |
---|---|---|
committer | Nick Clifton <nickc@gcc.gnu.org> | 2010-11-15 10:39:18 +0000 |
commit | 2fd7ba4ac9de8a0febcaec28920f24363f6403d9 (patch) | |
tree | ee2bf3af04d830d7fb9c1a6b0f0fa0314fbfe1b4 | |
parent | 5792856d2a06a8b61d74e2fb652ec995a589d4e0 (diff) | |
download | gcc-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/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 |