ARM: Fix sibcall patterns

Philip Blundell philb@gnu.org
Mon Jan 1 02:38:00 GMT 2001


On 29 Nov 2000, Richard Earnshaw wrote:

>This patch fixes the sibling call patterns on the ARM, so that they can 
>never match a normal call insn pattern. 

Unfortunately, it also has the side effect of preventing the lr save from 
being eliminated, since arm_expand_prologue thinks that lr is live.  A trivial 
testcase like "int bar(int a) { return foo(a); }" now gives:

bar:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, current_function_anonymous_args = 0
	str	lr, [sp, #-4]!
	@ Sibcall epilogue
	ldr	lr, [sp], #4
	b	foo

p.






More information about the Gcc-patches mailing list