From: Paul Gortmaker Date: Thu, 7 May 2009 15:18:40 +0000 (+0100) Subject: [ARM] 5507/1: support R_ARM_MOVW_ABS_NC and MOVT_ABS relocation types X-Git-Tag: v2.6.30-rc5~10^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae51e609843f7d0aaeb1c2ad9f89d252a4899885;p=pandora-kernel.git [ARM] 5507/1: support R_ARM_MOVW_ABS_NC and MOVT_ABS relocation types From: Bruce Ashfield To fully support the armv7-a instruction set/optimizations, support for the R_ARM_MOVW_ABS_NC and R_ARM_MOVT_ABS relocation types is required. The MOVW and MOVT are both load-immediate instructions, MOVW loads 16 bits into the bottom half of a register, and MOVT loads 16 bits into the top half of a register. The relocation information for these instructions has a full 32 bit value, plus an addend which is stored in the 16 immediate bits in the instruction itself. The immediate bits in the instruction are not contiguous (the register # splits it into a 4 bit and 12 bit value), so the addend has to be extracted accordingly and added to the value. The value is then split and put into the instruction; a MOVW uses the bottom 16 bits of the value, and a MOVT uses the top 16 bits. Signed-off-by: David Borman Signed-off-by: Bruce Ashfield Signed-off-by: Paul Gortmaker Signed-off-by: Russell King --- Reading git-diff-tree failed