arm64: Port SWP/SWPB emulation support from arm
authorPunit Agrawal <punit.agrawal@arm.com>
Tue, 18 Nov 2014 11:41:25 +0000 (11:41 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 20 Nov 2014 16:34:31 +0000 (16:34 +0000)
commitbd35a4adc4131c530ec7d90242555eac7b3dbe3f
tree61db668ee8924e5dae4aa53fadf8b8ffde6bba3b
parent587064b610c703f259317d00dc37bf6d40f4fc74
arm64: Port SWP/SWPB emulation support from arm

The SWP instruction was deprecated in the ARMv6 architecture. The
ARMv7 multiprocessing extensions mandate that SWP/SWPB instructions
are treated as undefined from reset, with the ability to enable them
through the System Control Register SW bit. With ARMv8, the option to
enable these instructions through System Control Register was dropped
as well.

To support legacy applications using these instructions, port the
emulation of the SWP and SWPB instructions from the arm port to arm64.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Documentation/arm64/legacy_instructions.txt
arch/arm64/Kconfig
arch/arm64/include/asm/insn.h
arch/arm64/kernel/armv8_deprecated.c
arch/arm64/kernel/insn.c