From 2fd7ba4ac9de8a0febcaec28920f24363f6403d9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 15 Nov 2010 10:39:18 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 7 ++++++- gcc/config/stormy16/stormy16.c | 3 ++- 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 + + * config/stormy16/stormy16.c (direct_return): Do not generate a + direct return for interrupt handlers. + 2010-11-15 Joern Rennecke * 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