aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86/memmove.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/memmove.c')
-rw-r--r--src/arch/x86/memmove.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/x86/memmove.c b/src/arch/x86/memmove.c
index cdd1e8dc70..3ec50b26ae 100644
--- a/src/arch/x86/memmove.c
+++ b/src/arch/x86/memmove.c
@@ -4,12 +4,20 @@
*/
#include <string.h>
+#include <stdbool.h>
+#include <asan.h>
void *memmove(void *dest, const void *src, size_t n)
{
int d0, d1, d2, d3, d4, d5;
char *ret = dest;
+#if (ENV_ROMSTAGE && CONFIG(ASAN_IN_ROMSTAGE)) || \
+ (ENV_RAMSTAGE && CONFIG(ASAN_IN_RAMSTAGE))
+ check_memory_region((unsigned long)src, n, false, _RET_IP_);
+ check_memory_region((unsigned long)dest, n, true, _RET_IP_);
+#endif
+
__asm__ __volatile__(
/* Handle more 16bytes in loop */
"cmp $0x10, %0\n\t"