arm64: compat: correct register concatenation for syscall wrappers
authorMatthew Leach <matthew.leach@arm.com>
Fri, 11 Oct 2013 13:52:13 +0000 (14:52 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 25 Oct 2013 14:59:36 +0000 (15:59 +0100)
commit55b89540b0d8d031f90e3d711ec0df3f797ecc61
tree15ca21914bc853fcafa3b549a2e66d316e205434
parenta795a38eb91cf72c4a05e72a9c84e317ee179a48
arm64: compat: correct register concatenation for syscall wrappers

The arm64 port contains wrappers for arm32 syscalls that pass 64-bit
values. These wrappers concatenate the two registers to hold a 64-bit
value in a single X register. On BE, however, the lower and higher
words are swapped.

Create a new assembler macro, regs_to_64, that when on BE systems
swaps the registers in the orr instruction.

Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Matthew Leach <matthew.leach@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/assembler.h
arch/arm64/kernel/sys32.S