libpayload: Support unaligned pointers for memset
commit54db255529ce8afc689ae425c24b7fb1d45654e8
authorJeremy Compostella <jeremy.compostella@intel.com>
Tue, 11 Jul 2017 00:21:51 +0000 (10 17:21 -0700)
committerNico Huber <nico.h@gmx.de>
Wed, 12 Jul 2017 10:58:55 +0000 (12 10:58 +0000)
tree496d241e0cf6f70791343ad5e775464b1cce17e4
parent3d384486190c37e8162543fed53da0a7040712d9
libpayload: Support unaligned pointers for memset

The optimization of the memset() function introduced by commit
dbadb1dd634c8c9419215ade0666a7fb69a4447b (libpayload: Reorder default
memcpy, speed up memset and memcmp) is provoking an issue on x86
platform when compiling without the CONFIG_GPL option.

GCC is making use of the movdqa instruction to copy words.  This
instruction can raise a "General Protection Fault Exception" when it
is called on a non-aligned address argument.

Change-Id: I73382a76a4399d8e78244867f2ebb1dca176a6bf
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Reviewed-on: https://review.coreboot.org/20524
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
payloads/libpayload/libc/memory.c