original_kernel/arch/arm/kernel
Paul Gortmaker ae51e60984 [ARM] 5507/1: support R_ARM_MOVW_ABS_NC and MOVT_ABS relocation types
From: Bruce Ashfield <bruce.ashfield@windriver.com>

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 <david.borman@windriver.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-05-07 17:21:01 +01:00
..
.gitignore
Makefile
armksyms.c
arthur.c
asm-offsets.c
atags.c
atags.h
bios32.c
calls.S
compat.c
compat.h
crunch-bits.S
crunch.c
debug.S
dma-isa.c
dma.c
ecard.c
ecard.h
elf.c
entry-armv.S
entry-common.S
entry-header.S
fiq.c
ftrace.c
head-common.S
head-nommu.S
head.S
init_task.c
io.c
irq.c
isa.c
iwmmxt.S
kgdb.c
kprobes-decode.c
kprobes.c
machine_kexec.c
module.c
process.c
ptrace.c
ptrace.h
relocate_kernel.S
setup.c
signal.c
signal.h
smp.c
stacktrace.c
sys_arm.c
sys_oabi-compat.c
thumbee.c
time.c
traps.c
unwind.c
vmlinux.lds.S
xscale-cp0.c