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)
committerVictor Kamensky <victor.kamensky@linaro.org>
Fri, 14 Mar 2014 01:27:42 +0000 (18:27 -0700)
commita443bff684c1abd8d95c7d3c634066db0ee29271
tree0a0a92d2a9de95899a1d511f48ac496956f176bd
parent9daa58e68226eaec5d4d0b259e05394c71bb9b3f
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>
(cherry picked from commit 55b89540b0d8d031f90e3d711ec0df3f797ecc61)

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
arch/arm64/include/asm/assembler.h
arch/arm64/kernel/sys32.S