Ping? http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00493.html
Thanks, Kyrill > -----Original Message----- > From: gcc-patches-ow...@gcc.gnu.org [mailto:gcc-patches- > ow...@gcc.gnu.org] On Behalf Of Kyrylo Tkachov > Sent: 10 June 2013 11:52 > To: gcc-patches@gcc.gnu.org > Cc: Richard Earnshaw; Ramana Radhakrishnan > Subject: [PATCH][ARM][6/n] Partial IT block deprecation in ARMv8 > AArch32 - VFP patterns > > Hi all, > > This patch makes the changes to the various floating point patterns > in > vfp.md. Since pretty much all floating point instruction are always > encoded in 32 bits, they cannot be used inside an IT block by the > -mrestrict-it rules. Therefore this patch just goes and disables > the > predicable variants of the offending VFP patterns. > > The conditional floating point move patterns are disabled > altogether for > arm_restrict_it because they explicitly use IT blocks in their > output > template and the corresponding expanders in arm.md are updated to > make > sure we use the new vsel instruction that is available in ARMv8 > when > appropriate. > > Tested arm-none-eabi on qemu and model as part of the whole series > and > also independently bootstrapped with -mrestrict-it enabled on a > Cortex-A15. > > Ok for trunk? > > Thanks, > Kyrill > > 2013-06-10 Kyrylo Tkachov <kyrylo.tkac...@arm.com> > > * config/arm/predicates.md (arm_cond_move_operator): New > predicate. > * config/arm/arm.md (movsfcc): Use arm_cond_move_operator > predicate. > (movdfcc): Likewise. > * config/arm/vfp.md (*thumb2_movsf_vfp): > Disable predication for arm_restrict_it. > (*thumb2_movsfcc_vfp): Disable for arm_restrict_it. > (*thumb2_movdfcc_vfp): Likewise. > (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp, > *addsf3_vfp, > *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp, > *divdf3_vfp, > *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp, > *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp, > *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, > *fmuldf3negdfadddf_vfp, > *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, > *fma<SDF:mode>4, > *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4, > *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2, > *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, > fixuns_truncdfsi2, > *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, > floatunssidf2, > *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, > *cmpdf_vfp, > *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2): > Disable predication for arm_restrict_it.