linux/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 [ARM] 5194/1: update .gitignore 2008-08-12 19:54:09 +01:00
armksyms.c Merge branch 'mxc-pu-imxfb' of git://pasiphae.extern.pengutronix.de/git/imx/linux-2.6 into devel 2008-12-17 20:04:45 +00:00
arthur.c [ARM] arm/kernel/arthur.c: add MODULE_LICENSE 2008-05-17 22:55:16 +01:00
asm-offsets.c arm: use kbuild.h instead of macros in asm-offsets.c 2008-04-29 08:06:29 -07:00
atags.c clean up atags exporting code 2008-05-30 10:33:49 +02:00
atags.h [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
bios32.c PCI: arm: use generic INTx swizzle from PCI core 2009-01-07 11:13:13 -08:00
calls.S [ARM] 5456/1: add sys_preadv and sys_pwritev 2009-04-20 14:01:39 +01:00
compat.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
compat.h [ARM] 3365/1: [cleanup] header for compat.c exported functions 2006-03-15 23:17:30 +00:00
crunch-bits.S [ARM] Move include/asm-arm/arch-* to arch/arm/*/include/mach 2008-08-07 09:55:48 +01:00
crunch.c [ARM] Convert asm/io.h to linux/io.h 2008-09-06 12:10:45 +01:00
debug.S [ARM] 5412/1: XSCALE: add ice dcc support 2009-02-27 20:57:46 +00:00
dma-isa.c [ARM] dma: make DMA_MODE_xxx reflect ISA DMA settings 2009-01-02 12:18:53 +00:00
dma.c [ARM] dma: remove dmamode_t typedef 2009-01-02 12:34:55 +00:00
ecard.c arm: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:43 -08:00
ecard.h [ARM] rpc: ecard: remove deprecated ecard_address() and relatives 2008-07-03 14:25:58 +01:00
elf.c [ARM] 5404/1: Fix condition in arm_elf_read_implies_exec() to set READ_IMPLIES_EXEC 2009-02-19 14:45:27 +00:00
entry-armv.S [ARM] 5385/2: unwind: Add unwinding information to exception entry points 2009-02-19 11:27:35 +00:00
entry-common.S Merge branch 'master' of git://git.marvell.com/orion into devel 2009-03-19 23:10:40 +00:00
entry-header.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
fiq.c [ARM] 5421/1: ftrace: fix crash due to tracing of __naked functions 2009-03-12 21:33:03 +00:00
ftrace.c small doc fix: ftrace_dyn_arch_init is called by ftrace_init 2008-12-12 11:15:45 +01:00
head-common.S [ARM] use asm/sections.h 2008-12-01 11:53:07 +00:00
head-nommu.S [ARM] 5227/1: Add the ENDPROC declarations to the .S files 2008-09-01 12:06:34 +01:00
head.S [ARM] 5227/1: Add the ENDPROC declarations to the .S files 2008-09-01 12:06:34 +01:00
init_task.c take init_fs to saner place 2008-12-31 18:07:42 -05:00
io.c [ARM] Convert asm/io.h to linux/io.h 2008-09-06 12:10:45 +01:00
irq.c Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2 2009-03-27 17:28:43 +01:00
isa.c [ARM] arch/arm/kernel/isa.c: missing definition of register_isa_ports 2009-01-08 15:53:08 +00:00
iwmmxt.S [ARM] 3707/1: iwmmxt: use the generic thread notifier infrastructure 2006-07-01 19:56:48 +01:00
kgdb.c kgdb, x86, arm, mips, powerpc: ignore user space single stepping 2008-09-26 10:36:41 -05:00
kprobes-decode.c [ARM] 5221/1: fix ldm/stm emulation for kprobes 2008-09-01 12:06:33 +01:00
kprobes.c kprobes: add kprobe_insn_mutex and cleanup arch_remove_kprobe() 2009-01-06 15:59:20 -08:00
machine_kexec.c [ARM] Storage class should be before const qualifier 2009-02-10 09:59:19 +00:00
Makefile [ARM] pxa: add iWMMXt support for pxa168 2009-03-23 10:11:34 +08:00
module.c [ARM] 5507/1: support R_ARM_MOVW_ABS_NC and MOVT_ABS relocation types 2009-05-07 17:21:01 +01:00
process.c Simplify copy_thread() 2009-04-02 19:04:51 -07:00
ptrace.c [ARM] 5387/1: Add ptrace VFP support on ARM 2009-02-12 10:59:43 +00:00
ptrace.h [ARM] ptrace: clean up single stepping support 2007-04-21 20:34:58 +01:00
relocate_kernel.S [ARM] 4736/1: Export atags to userspace and allow kexec to use customised atags 2008-02-04 13:21:03 +00:00
setup.c Merge branch 'for-rmk' of git://git.pengutronix.de/git/imx/linux-2.6 into devel 2009-03-13 21:44:51 +00:00
signal.c [ARM] Convert asm/uaccess.h to linux/uaccess.h 2008-09-06 11:35:55 +01:00
signal.h [ARM] nommu: fixups for the exception vectors 2006-03-27 15:18:50 +01:00
smp.c [ARM] 5389/1: Make sure the pmd entries are visible by the secondary CPU 2009-02-12 10:59:45 +00:00
stacktrace.c [ARM] 5382/1: unwind: Reorganise the stacktrace support 2009-02-12 13:21:17 +00:00
sys_arm.c [ARM] Convert asm/uaccess.h to linux/uaccess.h 2008-09-06 11:35:55 +01:00
sys_oabi-compat.c Separate out common fstatat code into vfs_fstatat 2009-04-20 23:02:51 -04:00
thumbee.c Fix the teehbr_read function prototype 2008-11-10 14:14:11 +00:00
time.c [ARM] 5382/1: unwind: Reorganise the stacktrace support 2009-02-12 13:21:17 +00:00
traps.c [ARM] 5383/2: unwind: Add core support for ARM stack unwinding 2009-02-19 11:26:24 +00:00
unwind.c [ARM] 5383/2: unwind: Add core support for ARM stack unwinding 2009-02-19 11:26:24 +00:00
vmlinux.lds.S Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-03-28 14:03:14 -07:00
xscale-cp0.c [ARM] Convert asm/io.h to linux/io.h 2008-09-06 12:10:45 +01:00