linux-kernel-test/arch/arm/plat-mxc
Dave Martin 0575b4b83e ARM: mxc: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL
Directives such as .long and .word do not magically cause the
assembler location counter to become aligned in gas.  As a
result, using these directives in code sections can result in
misaligned data words when building a Thumb-2 kernel
(CONFIG_THUMB2_KERNEL).

This is a Bad Thing, since the ABI permits the compiler to
assume that fundamental types of word size or above are word-
aligned when accessing them from C.  If the data is not really
word-aligned, this can cause impaired performance and stray
alignment faults in some circumstances.

In general, the following rules should be applied when using
data word declaration directives inside code sections:

    * .quad and .double:
         .align 3

    * .long, .word, .single, .float:
         .align (or .align 2)

    * .short:
        No explicit alignment required, since Thumb-2
        instructions are always 2 or 4 bytes in size.
        immediately after an instruction.

Signed-off-by: Dave Martin <dave.martin@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
LAKML-Reference: 1289913217-8672-1-git-send-email-dave.martin@linaro.org
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
2011-04-12 09:48:10 +02:00
..
devices ARM: mxc: fix buggy '.end' of IORESOURCE_MEM in device codes 2011-03-23 15:08:14 +01:00
include/mach mx2/iomux: Set direction for CSPI2 pins 2011-03-25 08:21:34 +01:00
3ds_debugboard.c arm: Fold irq_set_chip/irq_set_handler 2011-03-29 14:47:58 +02:00
audmux-v1.c ARM: mxc: remove paragraphs with old address of the FSF 2010-06-30 09:00:28 +02:00
audmux-v2.c ARM: imx: use SOC_IMX25 instead of ARCH_MX25 for multi-SoC 2010-11-19 21:54:34 +01:00
avic.c arm: Fold irq_set_chip/irq_set_handler 2011-03-29 14:47:58 +02:00
clock.c arm: mxc: utilise usecount field in clock operations 2010-07-26 14:17:57 +02:00
cpu.c [ARM] MXC: add cpu_is_ macros 2009-03-13 10:34:26 +01:00
cpufreq.c Fix imx cpufreq driver as module 2010-12-14 09:54:38 +01:00
devices.c ARM: mxc: free dma_mask in error path 2011-03-01 14:19:56 +01:00
epit.c ARM: mxc: update clock source registration 2010-12-22 22:44:39 +00:00
gpio.c arm: Fold irq_set_chip/irq_set_handler 2011-03-29 14:47:58 +02:00
iomux-v1.c ARM i.MX: iomux v1 initialization away from initcall 2011-03-07 19:29:38 +01:00
iomux-v3.c MXC IOMUX-V3 replace struct pad_desc with bitmapped cookie (step 2) 2010-12-15 12:42:49 +01:00
iram_alloc.c ARM: imx: Add iram allocator functions 2010-10-19 18:44:57 +02:00
irq-common.c arm: Cleanup the irq namespace 2011-03-29 14:47:57 +02:00
irq-common.h mx51: support FIQ on TZIC, revised 2010-12-14 09:54:37 +01:00
Kconfig ARM: mxc91231: select MXC_AVIC 2011-03-07 19:29:44 +01:00
Makefile ARM i.MX ehci: do ehci init in board specific functions 2011-02-11 08:40:45 +01:00
pwm.c mx51: add support for pwm 2011-01-13 14:03:58 +01:00
ssi-fiq-ksym.c ASoC: Add a new imx-ssi sound driver 2010-01-17 11:09:46 +00:00
ssi-fiq.S ARM: mxc: Correct data alignment in headsmp.S for CONFIG_THUMB2_KERNEL 2011-04-12 09:48:10 +02:00
system.c watchdog: imx: use clk_get to acquire the watchdog clock 2010-12-14 09:54:19 +01:00
time.c ARM: mxc: Add sched_clock to mxc platform 2011-03-23 15:08:13 +01:00
tzic.c arm: Fold irq_set_chip/irq_set_handler 2011-03-29 14:47:58 +02:00
ulpi.c ARM i.MX: introduce imx_otg_ulpi_create to create ULPI transceivers 2011-03-07 19:29:41 +01:00