linux/arch/arm64
Robin Murphy 8df728e1ae arm64: Remove redundant mov from LL/SC cmpxchg
The cmpxchg implementation introduced by commit c342f78217 ("arm64:
cmpxchg: patch in lse instructions when supported by the CPU") performs
an apparently redundant register move of [old] to [oldval] in the
success case - it always uses the same register width as [oldval] was
originally loaded with, and is only executed when [old] and [oldval] are
known to be equal anyway.

The only effect it seemingly does have is to take up a surprising amount
of space in the kernel text, as removing it reveals:

   text	   data	    bss	    dec	    hex	filename
12426658	1348614	4499749	18275021	116dacd	vmlinux.o.new
12429238	1348614	4499749	18277601	116e4e1	vmlinux.o.old

Reviewed-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2017-05-15 18:30:10 +01:00
..
boot TEE driver infrastructure and OP-TEE drivers 2017-05-10 11:20:09 -07:00
configs ARM: SoC 64-bit changes 2017-05-09 10:04:17 -07:00
crypto Revert "crypto: arm64/sha - Add constant operand modifier to ASM_EXPORT" 2017-04-24 16:09:50 +08:00
include arm64: Remove redundant mov from LL/SC cmpxchg 2017-05-15 18:30:10 +01:00
kernel arm64 2nd set of updates for 4.12: 2017-05-11 11:27:54 -07:00
kvm Second round of KVM/ARM Changes for v4.12. 2017-05-09 12:51:49 +02:00
lib arm64: switch to RAW_COPY_USER 2017-03-28 18:23:24 -04:00
mm IOMMU Updates for Linux v4.12 2017-05-09 15:15:47 -07:00
net arm64: use set_memory.h header 2017-05-08 17:15:13 -07:00
xen xen/privcmd: Add IOCTL_PRIVCMD_DM_OP 2017-02-14 15:13:43 -05:00
Kconfig arm64 updates for 4.12: 2017-05-05 12:11:37 -07:00
Kconfig.debug arm64: relocation testing module 2017-04-04 17:03:32 +01:00
Kconfig.platforms arm64: sunxi: always enable reset controller 2017-04-27 21:58:21 +02:00
Makefile Kbuild misc updates for 4.12 2017-05-10 20:41:43 -07:00