linux/arch/arm64/include/asm
Marc Zyngier aeed41a937 arm64: fix alignment padding in assembly code
An interesting effect of using the generic version of linkage.h
is that the padding is defined in terms of x86 NOPs, which can have
even more interesting effects when the assembly code looks like this:

ENTRY(func1)
	mov	x0, xzr
ENDPROC(func1)
	// fall through
ENTRY(func2)
	mov	x0, #1
	ret
ENDPROC(func2)

Admittedly, the code is not very nice. But having code from another
architecture doesn't look completely sane either.

The fix is to add arm64's version of linkage.h, which causes the insertion
of proper AArch64 NOPs.

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2012-10-20 11:12:01 +01:00
..
arm_generic.h arm64: Generic timers support 2012-09-17 13:42:20 +01:00
asm-offsets.h arm64: Assembly macros and definitions 2012-09-17 10:24:44 +01:00
assembler.h arm64: Assembly macros and definitions 2012-09-17 10:24:44 +01:00
atomic.h arm64: Atomic operations 2012-09-17 13:42:02 +01:00
barrier.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
bitops.h arm64: Miscellaneous library functions 2012-09-17 13:42:18 +01:00
cache.h arm64: Cache maintenance routines 2012-09-17 13:42:00 +01:00
cacheflush.h arm64: Cache maintenance routines 2012-09-17 13:42:00 +01:00
cachetype.h arm64: Cache maintenance routines 2012-09-17 13:42:00 +01:00
cmpxchg.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
compat.h compat: move compat_siginfo_t definition to asm/compat.h 2012-10-06 03:05:16 +09:00
compiler.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
cputable.h arm64: CPU support 2012-09-17 13:41:59 +01:00
cputype.h arm64: CPU support 2012-09-17 13:41:59 +01:00
debug-monitors.h arm64: Debugging support 2012-09-17 13:42:14 +01:00
device.h arm64: Device specific operations 2012-09-17 13:42:04 +01:00
dma-mapping.h arm64: DMA mapping API 2012-09-17 13:42:05 +01:00
elf.h arm64: ELF definitions 2012-09-17 13:42:07 +01:00
exception.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
exec.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
fb.h arm64: Device specific operations 2012-09-17 13:42:04 +01:00
fpsimd.h arm64: Floating point and SIMD 2012-09-17 13:42:13 +01:00
futex.h arm64: Atomic operations 2012-09-17 13:42:02 +01:00
hardirq.h arm64: SMP support 2012-09-17 13:42:06 +01:00
hw_breakpoint.h arm64: Debugging support 2012-09-17 13:42:14 +01:00
hwcap.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
io.h arm64: Device specific operations 2012-09-17 13:42:04 +01:00
irq.h arm64: IRQ handling 2012-09-17 13:42:02 +01:00
irqflags.h arm64: IRQ handling 2012-09-17 13:42:02 +01:00
Kbuild arm64: fix alignment padding in assembly code 2012-10-20 11:12:01 +01:00
linkage.h arm64: fix alignment padding in assembly code 2012-10-20 11:12:01 +01:00
memblock.h arm64: MMU initialisation 2012-09-17 13:41:56 +01:00
memory.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
mmu_context.h arm64: Process management 2012-09-17 13:41:58 +01:00
mmu.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
module.h arm64: Loadable modules 2012-09-17 13:42:19 +01:00
page.h arm64: MMU fault handling and page table management 2012-09-17 13:41:57 +01:00
perf_event.h arm64: Performance counters support 2012-09-17 13:42:17 +01:00
pgalloc.h arm64: MMU fault handling and page table management 2012-09-17 13:41:57 +01:00
pgtable-2level-hwdef.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-2level-types.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-3level-hwdef.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-3level-types.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable-hwdef.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pgtable.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
pmu.h arm64: Performance counters support 2012-09-17 13:42:17 +01:00
proc-fns.h arm64: CPU support 2012-09-17 13:41:59 +01:00
processor.h arm64: No need to set the x0-x2 registers in start_thread() 2012-10-18 20:14:01 +01:00
prom.h arm64: Build infrastructure 2012-09-17 13:42:21 +01:00
ptrace.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
shmparam.h arm64: ELF definitions 2012-09-17 13:42:07 +01:00
sigcontext.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
signal32.h arm64: 32-bit (compat) applications support 2012-09-17 13:42:12 +01:00
smp.h arm64: SMP support 2012-09-17 13:42:06 +01:00
sparsemem.h arm64: MMU definitions 2012-09-17 13:41:56 +01:00
spinlock_types.h arm64: SMP support 2012-09-17 13:42:06 +01:00
spinlock.h arm64: SMP support 2012-09-17 13:42:06 +01:00
stacktrace.h arm64: Exception handling 2012-09-17 10:24:46 +01:00
stat.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
syscall.h arm64: Miscellaneous library functions 2012-09-17 13:42:18 +01:00
syscalls.h arm64: System calls handling 2012-09-17 13:42:08 +01:00
system_misc.h arm64: Miscellaneous header files 2012-09-17 13:42:21 +01:00
thread_info.h arm64: Process management 2012-09-17 13:41:58 +01:00
timex.h arm64: Generic timers support 2012-09-17 13:42:20 +01:00
tlb.h arm64: TLB maintenance functionality 2012-09-17 13:42:01 +01:00
tlbflush.h arm64: TLB maintenance functionality 2012-09-17 13:42:01 +01:00
traps.h arm64: Exception handling 2012-09-17 10:24:46 +01:00
uaccess.h arm64: User access library functions 2012-09-17 13:42:11 +01:00
ucontext.h arm64: Signal handling support 2012-09-17 13:42:10 +01:00
unistd32.h arm64: Do not include asm/unistd32.h in asm/unistd.h 2012-10-11 10:39:08 +01:00
unistd.h UAPI: (Scripted) Disintegrate arch/arm64/include/asm 2012-10-11 11:05:13 +01:00
vdso_datapage.h arm64: VDSO support 2012-09-17 13:42:09 +01:00
vdso.h arm64: VDSO support 2012-09-17 13:42:09 +01:00