Dave Martin a75e5248c5 ARM: 6504/1: Thumb-2: Fix long-distance conditional branches in head.S for Thumb-2.
The 32-bit conditional branches in Thumb-2 have a shorter range
(+/-512K) than their ARM counterparts (+/-32MB).  The linker does
not currently generate trampolines to extend the range of these
Thumb-2 conditional branches, resulting in link errors when vmlinux
is sufficiently large, e.g.:

head.o:(.text+0x464): relocation truncated to fit: R_ARM_THM_JUMP19

This patch forces the longer-range, unconditional branch encoding
by use of an explicit IT instruction.  The resulting branches are
triggered on the same conditions as before.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2010-11-30 13:44:26 +00:00
..
2008-08-12 19:54:09 +01:00
2008-05-30 10:33:49 +02:00
2008-09-06 12:10:45 +01:00
2010-10-16 22:57:38 +02:00
2010-10-29 13:14:40 -05:00
2010-10-27 18:03:10 -07:00
2010-03-12 15:52:38 -08:00
2010-10-18 22:34:47 +01:00