ARM: 7670/1: fix the memset fix
authorNicolas Pitre <nicolas.pitre@linaro.org>
Tue, 12 Mar 2013 12:00:42 +0000 (13:00 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 12 Mar 2013 12:18:47 +0000 (12:18 +0000)
commit418df63adac56841ef6b0f1fcf435bc64d4ed177
tree08fec3f519737b2341ac5f7dbeb394d10cbb0bbc
parent455bd4c430b0c0a361f38e8658a0d6cb469942b5
ARM: 7670/1: fix the memset fix

Commit 455bd4c430b0 ("ARM: 7668/1: fix memset-related crashes caused by
recent GCC (4.7.2) optimizations") attempted to fix a compliance issue
with the memset return value.  However the memset itself became broken
by that patch for misaligned pointers.

This fixes the above by branching over the entry code from the
misaligned fixup code to avoid reloading the original pointer.

Also, because the function entry alignment is wrong in the Thumb mode
compilation, that fixup code is moved to the end.

While at it, the entry instructions are slightly reworked to help dual
issue pipelines.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Tested-by: Alexander Holler <holler@ahsoftware.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/lib/memset.S