summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorArthur Heymans <arthur@aheymans.xyz>2022-11-17 12:10:07 +0100
committerMartin L Roth <gaumless@gmail.com>2022-11-30 16:37:05 +0000
commitfa2feae3d6e537cdc9d18d5128ae8fae7d17e487 (patch)
tree0ccb3a947b10d7fbbeb62b5334ceccdb1dae1669 /src
parentc83a17841cd4b1e88148e57e3da265ee83586ed1 (diff)
downloadcoreboot-fa2feae3d6e537cdc9d18d5128ae8fae7d17e487.tar.gz
coreboot-fa2feae3d6e537cdc9d18d5128ae8fae7d17e487.tar.bz2
coreboot-fa2feae3d6e537cdc9d18d5128ae8fae7d17e487.zip
arch/arm/eabi_compat.c: Add eabi_clrX and eabi_memcyX
Clang generated code uses this for zero initialized variables. Change-Id: I460a0096918141c1cf8826bdf1853a3aa3aecff8 Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/c/coreboot/+/69743 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/arch/arm/eabi_compat.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/arch/arm/eabi_compat.c b/src/arch/arm/eabi_compat.c
index 2a110d5ccf6c..849fc6507ffa 100644
--- a/src/arch/arm/eabi_compat.c
+++ b/src/arch/arm/eabi_compat.c
@@ -23,6 +23,14 @@ void __aeabi_unwind_cpp_pr1(void)
{
}
+/* Support the alias for the __aeabi_memcpy which may
+ assume memory alignment. */
+void __aeabi_memcpy4(void *dest, const void *src, size_t n)
+ __attribute((alias("__aeabi_memcpy")));
+
+void __aeabi_memcpy8(void *dest, const void *src, size_t n)
+ __attribute((alias("__aeabi_memcpy")));
+
void __aeabi_memcpy(void *dest, const void *src, size_t n);
void __aeabi_memcpy(void *dest, const void *src, size_t n)
{
@@ -34,3 +42,18 @@ void __aeabi_memset(void *dest, size_t n, int c)
{
(void)memset(dest, c, n);
}
+
+/* Support the alias for the __aeabi_memclr which may
+ assume memory alignment. */
+void __aeabi_memclr4(void *dest, size_t n)
+ __attribute((alias("__aeabi_memclr")));
+
+void __aeabi_memclr8(void *dest, size_t n)
+ __attribute((alias("__aeabi_memclr")));
+
+/* Support the routine __aeabi_memclr. */
+void __aeabi_memclr(void *dest, size_t n);
+void __aeabi_memclr(void *dest, size_t n)
+{
+ __aeabi_memset(dest, n, 0);
+}