summaryrefslogtreecommitdiff
path: root/recipes/gcc/gcc-csl-arm-2007q3/gcc-Os-fix.diff
blob: 422091f2e784109611066fce24c93f62b68249ca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
--- /tmp/arm.c	2008-07-12 21:44:16.000000000 +0200
+++ gcc-4.2/gcc/config/arm/arm.c	2008-07-12 21:45:48.393198000 +0200
@@ -11591,7 +11591,8 @@
 		  && count != 0
 		  && !current_function_calls_eh_return
 		  && bit_count(saved_regs_mask) * 4 == count
-		  && !IS_INTERRUPT (func_type))
+		  && !IS_INTERRUPT (func_type)
+		  && !cfun->tail_call_emit) 
 		{
 		  unsigned long mask;
 		  mask = (1 << (arm_size_return_regs() / 4)) - 1;