ARM THUMB: fundamental bug in handling of far jumps?

Richard Henderson rth@redhat.com
Mon Jan 28 11:40:00 GMT 2002


On Mon, Jan 28, 2002 at 04:44:08PM +0100, Adrian von Bidder wrote:
> btw: the far jumps I'm seeing are often in code like this
> 
> 	cmp [something]
> 	b[cond] .LABEL
> 	bl	.SILLY
> .LABEL:	...
> 	...
> 	...		(a few hundred instructions)
> 	...
> .SILLY:	add r2, r3 	(just some random conditional op)
> 	bl	.LABEL
[...]
> Why does gcc emit code like this?

Because it wants to generate

	b[cond] .SILLY
.LABEL
	...
.SILLY
	add r2 r3
	b .LABEL

You can turn off some of this with -fno-reorder-blocks.


r~



More information about the Gcc mailing list