[ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics
authorAndre Vieira <andre.simoesdiasvieira@arm.com>
Fri, 6 Jan 2017 17:37:39 +0000 (17:37 +0000)
committerAndre Vieira <avieira@gcc.gnu.org>
Fri, 6 Jan 2017 17:37:39 +0000 (17:37 +0000)
commit3811581f8b3cf85892a7ff2519abb9a0c9fc79c1
treee924b85d206a786eb2939fb852748b86739ea2dc
parentd57daa0c9d47b15781359f7a2898c991e560463d
[ARM] Implement support for ACLE Coprocessor LDC and STC intrinsics

gcc/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* config/arm/arm.md (*ldc): New.
(*stc): New.
(<ldc>): New.
(<stc>): New.
* config/arm/arm.c (arm_coproc_builtin_available): Add
support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
(arm_coproc_ldc_stc_legitimate_address): New.
* config/arm/arm-builtins.c (arm_type_qualifiers): Add
'qualifier_const_pointer'.
(LDC_QUALIFIERS): Define to...
(arm_ldc_qualifiers): ... this. New.
(STC_QUALIFIERS): Define to...
(arm_stc_qualifiers): ... this. New.
* config/arm/arm-protos.h
(arm_coproc_ldc_stc_legitimate_address): New.
* config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
__arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
* config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
stc2, stcl, stc2l): New.
* config/arm/constraints.md (Uz): New.
* config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
* config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
VUNSPEC_STC2L): New.

gcc/testsuite/ChangeLog:
2017-01-06  Andre Vieira  <andre.simoesdiasvieira@arm.com>

* gcc.target/arm/acle/ldc: New.
* gcc.target/arm/acle/ldc2: New.
* gcc.target/arm/acle/ldcl: New.
* gcc.target/arm/acle/ldc2l: New.
* gcc.target/arm/acle/stc: New.
* gcc.target/arm/acle/stc2: New.
* gcc.target/arm/acle/stcl: New.
* gcc.target/arm/acle/stc2l: New.

From-SVN: r244173
19 files changed:
gcc/ChangeLog
gcc/config/arm/arm-builtins.c
gcc/config/arm/arm-protos.h
gcc/config/arm/arm.c
gcc/config/arm/arm.md
gcc/config/arm/arm_acle.h
gcc/config/arm/arm_acle_builtins.def
gcc/config/arm/constraints.md
gcc/config/arm/iterators.md
gcc/config/arm/unspecs.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/acle/ldc.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/ldc2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/ldc2l.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/ldcl.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/stc.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/stc2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/stc2l.c [new file with mode: 0644]
gcc/testsuite/gcc.target/arm/acle/stcl.c [new file with mode: 0644]