llvm-project/compiler-rt/lib/builtins/arm
Kristina Brooks 59500f7a0b [Arm builtins] Remove non-necessary IS check
This patch removes the instruction set check to make the msr APSR_nzcvq,
ip instruction only execute if Thumb2 is used.
The APSR is a subset of the bits of the CPSR
(B.1.3.3 of the Arm v7 A and R ARM [1]) and is only available for A and
R profiles.
However in section B.9.3.11 of the same document we see that:

"In the A and R profiles, APSR_nzcvq is the same as CPSR_f"
"ARM recommends the APSR forms when only the N, Z, C, V, Q, and GE[3:0]
bits are being written."

This patch also make those files assemble for Armv8-M Mainline
architecture profile.

The builtins were cross-compiled for Arm, Aarch64 and Armv6-M, Armv7-M
and Armv7E-M targets.
Cross-compiled tests were executed for Arm target.

[1]: https://developer.arm.com/docs/ddi0406/latest/arm-architecture-reference-manual-armv7-a-and-armv7-r-edition

Patch by hug-dev (Hugues de Valon).

Differential Revision: https://reviews.llvm.org/D51854

llvm-svn: 343601
2018-10-02 16:32:32 +00:00
..
adddf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
addsf3.S ARM: wrap call to __clzsi2 so that the name is correct on MachO. 2018-09-06 12:13:46 +00:00
addsf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
aeabi_cdcmp.S [Arm builtins] Remove non-necessary IS check 2018-10-02 16:32:32 +00:00
aeabi_cdcmpeq_check_nan.c builtins: add missing includes 2017-05-16 17:06:48 +00:00
aeabi_cfcmp.S [Arm builtins] Remove non-necessary IS check 2018-10-02 16:32:32 +00:00
aeabi_cfcmpeq_check_nan.c builtins: add missing includes 2017-05-16 17:06:48 +00:00
aeabi_dcmp.S [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets 2017-08-23 14:26:31 +00:00
aeabi_div0.c builtins: one more case of a missing header 2017-05-16 18:19:44 +00:00
aeabi_drsub.c builtins: expand out the AEABI function stubs 2017-05-16 16:41:37 +00:00
aeabi_fcmp.S [ARM][Compiler-rt] Fix AEABI builtins to correctly pass arguments to non-AEABI functions on HF targets 2017-08-23 14:26:31 +00:00
aeabi_frsub.c builtins: expand out the AEABI function stubs 2017-05-16 16:41:37 +00:00
aeabi_idivmod.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
aeabi_ldivmod.S [Bultin][ARM] Make aeabi_uldivmod and aeabi_ldivmod be Thumb1 compatible 2017-01-30 18:48:05 +00:00
aeabi_memcmp.S [Builtins] Do not use tailcall for Thumb1 2017-11-09 17:32:57 +00:00
aeabi_memcpy.S [Builtins] Do not use tailcall for Thumb1 2017-11-09 17:32:57 +00:00
aeabi_memmove.S [Builtins] Do not use tailcall for Thumb1 2017-11-09 17:32:57 +00:00
aeabi_memset.S [Builtins] Do not use tailcall for Thumb1 2017-11-09 17:32:57 +00:00
aeabi_uidivmod.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
aeabi_uldivmod.S [Bultin][ARM] Make aeabi_uldivmod and aeabi_ldivmod be Thumb1 compatible 2017-01-30 18:48:05 +00:00
bswapdi2.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
bswapsi2.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
chkstk.S [builtins] Implement the __chkstk function for ARM for MinGW 2018-07-17 19:14:47 +00:00
clzdi2.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
clzsi2.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
comparesf2.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
divdf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
divmodsi4.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
divsf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
divsi3.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
eqdf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
eqsf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
extendsfdf2vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
fixdfsivfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
fixsfsivfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
fixunsdfsivfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
fixunssfsivfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
floatsidfvfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
floatsisfvfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
floatunssidfvfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
floatunssisfvfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
gedf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
gesf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
gtdf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
gtsf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
ledf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
lesf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
ltdf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
ltsf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
modsi3.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
muldf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
mulsf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
nedf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
negdf2vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
negsf2vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
nesf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
restore_vfp_d8_d15_regs.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
save_vfp_d8_d15_regs.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
softfloat-alias.list
subdf3vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
subsf3vfp.S [Builtin][ARM] Fix subsf3vfp for non-HF target 2017-02-12 05:10:25 +00:00
switch8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
switch16.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
switch32.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
switchu8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync-ops.h
sync_fetch_and_add_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_add_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_and_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_and_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_max_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_max_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_min_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_min_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_nand_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_nand_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_or_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_or_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_sub_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_sub_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_umax_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_umax_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_umin_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_umin_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_xor_4.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_fetch_and_xor_8.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
sync_synchronize.S builtins: tag with noexecstack 2016-06-22 22:09:42 +00:00
truncdfsf2vfp.S builtins: support building ARM builtins for a HF target 2017-01-11 16:19:25 +00:00
udivmodsi4.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
udivsi3.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
umodsi3.S [builtins][ARM] Select correct code fragments when compiling for Thumb1/Thum2/ARM ISA 2017-08-14 20:48:47 +00:00
unorddf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00
unordsf2vfp.S Allow armv{7,7s,7k,7m,7em} builds 2017-05-24 15:53:24 +00:00