audk/ArmPkg/Library/CompilerIntrinsicsLib/Arm
Ard Biesheuvel a0cf6b8d93 ArmPkg/CompilerIntrinsicsLib: replace memcpy and memset with C code
This replaces the various implementations of memset and memcpy,
including the ARM RTABI ones (__aeabi_mem[set|clr]_[|4|8]) with
a single C implementation for each. The ones we have are either not
very sophisticated (ARM), or they are too sophisticated (memcpy() on
AARCH64, which may perform unaligned accesses) or already coded in C
(memset on AArch64).

The Tianocore codebase mandates the explicit use of its SetMem() and
CopyMem() equivalents, of which various implementations exist for use
in different contexts (PEI, DXE). Few compiler generated references to
these functions should remain, and so our implementations in this BASE
library should be small and usable with the MMU off.

So replace them with a simple C implementation that builds correctly
on GCC/AARCH64, CLANG/AARCH64, GCC/ARM, CLANG/ARM and RVCT/ARM.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-09-01 14:51:18 +01:00
..
Llvm_int_lib.h ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
ashldi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
ashldi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
ashrdi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
ashrdi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
clzsi2.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
clzsi2.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
ctzsi2.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
ctzsi2.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
div.S ARM Packages: Fixed line endings 2013-01-25 11:28:06 +00:00
div.asm ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
divdi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
divdi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
divsi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
divsi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
lasr.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
ldivmod.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
ldivmod.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
llsl.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
llsl.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
llsr.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
llsr.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
lshrdi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
lshrdi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
memmove.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
memmove.asm ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
moddi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
moddi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
modsi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
modsi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
muldi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
muldi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
mullu.S ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
mullu.asm ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
sourcery.S ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
switch.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
switch8.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
switch16.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
switch32.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
switchu8.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
ucmpdi2.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
ucmpdi2.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
udivdi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
udivdi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
udivmoddi4.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
udivmoddi4.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
udivsi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
udivsi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
uldiv.S ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
uldiv.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
uldivmod.c ArmPkg: Rectify file modes 2016-01-30 12:25:59 +00:00
umoddi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
umoddi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
umodsi3.S ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro 2016-08-11 12:40:51 +02:00
umodsi3.c ARM Packages: Removed trailing spaces 2014-08-19 13:29:52 +00:00
uread.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00
uwrite.asm ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro 2015-12-03 20:28:02 +00:00