This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 09/11/16 10:12, Andre Vieira (lists) wrote: > Hi, > > This patch implements support for the ARM ACLE Coprocessor MCR and MRC > intrinsics. See below a table mapping the intrinsics to their respective > instructions: > > +-------------------------------------------------------------------+---------------------------------------+ > | Intrinsic signature | > Instruction pattern | > +-------------------------------------------------------------------+---------------------------------------+ > |void __arm_mcr(coproc, opc1, uint32_t value, CRn, CRm, opc2) | > MCR coproc, opc1, Rt, CRn, CRm, opc2 | > +-------------------------------------------------------------------+---------------------------------------+ > |void __arm_mcr2(coproc, opc1, uint32_t value, CRn, CRm, opc2) | > MCR2 coproc, opc1, Rt, CRn, CRm, opc2 | > +-------------------------------------------------------------------+---------------------------------------+ > |uint32_t __arm_mrc(coproc, opc1, CRn, CRm, opc2) | > MRC coproc, opc1, Rt, CRn, CRm, opc2 | > +-------------------------------------------------------------------+---------------------------------------+ > |uint32_t __arm_mrc2(coproc, opc1, CRn, CRm, opc2) | > MRC2 coproc, opc1, Rt, CRn, CRm, opc2 | > +-------------------------------------------------------------------+---------------------------------------+ > Note that any untyped variable in the intrinsic signature is required to > be a compiler-time constant and has the type 'unsigned int'. We do some > boundary checks for coproc:[0-15], opc1[0-7] CR*:[0-31],opc2:[0-7]. If > either of these requirements are not met a diagnostic is issued. > > Is this OK for trunk? > > Regards, > Andre > > gcc/ChangeLog: > 2016-11-09 Andre Vieira <andre.simoesdiasvieira@arm.com> > > * config/arm/arm.md (<mcr>): New. > (<mrc>): New. > * config/arm/arm.c (arm_coproc_builtin_available): Add > support for mcr, mrc, mcr2 and mrc2. > * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to... > (arm_mcr_qualifiers): ... this. New. > (MRC_QUALIFIERS): Define to ... > (arm_mrc_qualifiers): ... this. New. > (MCR_QUALIFIERS): Define to ... > (arm_mcr_qualifiers): ... this. New. > * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2, > __arm_mrc2): New. > * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New. > * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New. > * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC, > VUNSPEC_MRC2): New. > > > gcc/ChangeLog: > 2016-11-09 Andre Vieira <andre.simoesdiasvieira@arm.com> > > * gcc.target/arm/acle/mcr.c: New. > * gcc.target/arm/acle/mrc.c: New. > * gcc.target/arm/acle/mcr2.c: New. > * gcc.target/arm/acle/mrc2.c: New. > Hi, I committed this patch to the embedded-6-branch in revision r243263. Cheers, Andre gcc/ChangeLog.arm: 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com> * config/arm/arm.md (<mcr>): New. (<mrc>): New. * config/arm/arm.c (arm_coproc_builtin_available): Add support for mcr, mrc, mcr2 and mrc2. * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to... (arm_mcr_qualifiers): ... this. New. (MRC_QUALIFIERS): Define to ... (arm_mrc_qualifiers): ... this. New. (MCR_QUALIFIERS): Define to ... (arm_mcr_qualifiers): ... this. New. * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2, __arm_mrc2): New. * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New. * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New. * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC, VUNSPEC_MRC2): New. gcc/testsuite/ChangeLog.arm: 2016-12-05 Andre Vieira <andre.simoesdiasvieira@arm.com> * gcc.target/arm/acle/mcr.c: New. * gcc.target/arm/acle/mrc.c: New. * gcc.target/arm/acle/mcr2.c: New. * gcc.target/arm/acle/mrc2.c: New.
Attachment:
diff5
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |