PING
At 2012-02-03 10:02:28,"Xinyu Qi" <x...@marvell.com> wrote: > PING > > http://gcc.gnu.org/ml/gcc-patches/2011-12/msg01787.html > > At 2011-12-29 14:20:20,"Xinyu Qi" <x...@marvell.com> wrote: > > > At 2011-12-15 00:47:48,"Richard Earnshaw" <rearn...@arm.com> wrote: > > > > On 14/07/11 08:35, Xinyu Qi wrote: > > > > >>> Hi, > > > > >>> > > > > >>> It is the first part of iWMMXt maintenance. > > > > >>> > > > > >>> *config/arm/arm.c (arm_option_override): > > > > >>> Enable iWMMXt with VFP. iWMMXt and NEON are incompatible. > > > > >> iWMMXt unsupported under Thumb-2 mode. > > > > >>> (arm_expand_binop_builtin): Accept immediate op (with mode > > > > >>> VOID) > > > > >>> *config/arm/arm.md: > > > > >>> Resettle include location of iwmmxt.md so that *arm_movdi > > > > >> and *arm_movsi_insn could be used when iWMMXt is enabled. > > > > >> > > > > >> With the current work in trunk to handle enabled attributes and > > > > >> per-alternative predicable attributes (Thanks Bernd) we should be > > > > >> able to get rid of *cond_iwmmxt_movsi_insn" in iwmmxt.md file. > > > > >> It's not a matter for this patch but for a follow-up patch. > > > > >> > > > > >> Actually we should probably do the same for the various insns > > > > >> that are dotted around all over the place with final conditions > > > > >> that prevent matching - atleast makes the backend description > > > > >> slightly smaller :). > > > > >> > > > > >>> Add pipeline description file include. > > > > >> > > > > >> It is enough to say > > > > >> > > > > >> (<filename>): Include. > > > > >> > > > > >> in the changelog entry. > > > > >> > > > > >> The include for the pipeline description file should be with the > > > > >> patch that you add this in i.e. patch #5. Please add this to > > > > >> MD_INCLUDES in t-arm as well. > > > > >> > > > > >> Also as a general note, please provide a correct Changelog entry. > > > > >> > > > > >> This is not the format that we expect Changelog entries to be in. > > > > >> Please look at the coding standards on the website for this or at > > > > >> other patches submitted with respect to Changelog entries. Please > > > > >> fix this for each patch in the patch stack. > > > > >> > > > > >> > > > > >> cheers > > > > >> Ramana > > > > > > > > > > Thanks for reviewing. I have updated the patches and the Changelog. > > > > > > > > > > *config/arm/arm.c (arm_option_override): Enable iWMMXt with VFP. > > > > > (arm_expand_binop_builtin): Accept VOIDmode op. > > > > > *config/arm/arm.md (*arm_movdi, *arm_movsi_insn): Remove > > > > condition !TARGET_IWMMXT. > > > > > (iwmmxt.md): Include location. > > > > > > > > > > Thanks, > > > > > Xinyu= > > > > > > > > > > > > > + VFP and iWMMXt however can coexist. */ if > (TARGET_IWMMXT > > > && > > > > + TARGET_HARD_FLOAT && !TARGET_VFP) > > > > + sorry ("iWMMXt and non-VFP floating point unit"); > > > > + > > > > + /* iWMMXt and NEON are incompatible. */ if (TARGET_IWMMXT > > && > > > > + TARGET_NEON) > > > > + sorry ("iWMMXt and NEON"); > > > > > > > > - /* ??? iWMMXt insn patterns need auditing for Thumb-2. */ > > > > + /* iWMMXt unsupported under Thumb-2 mode. */ > > > > if (TARGET_THUMB2 && TARGET_IWMMXT) > > > > sorry ("Thumb-2 iWMMXt"); > > > > > > > > Don't use sorry() when a feature is not supported by the hardware; > > > > sorry() is used when GCC is currently unable to support something > > > > that it should. Use error() in these cases. > > > > > > > > Secondly, iWMMXt is incompatible with the entire Thumb ISA, not just > > > > the > > > > Thumb-2 extensions to the Thumb ISA. > > > > > > Done. > > > > > > > > > > > > > > > +;; Load the Intel Wireless Multimedia Extension patterns (include > > > > +"iwmmxt.md") > > > > + > > > > > > > > > > > > No, the extension patterns need to come at the end of the main > > > > machine description. The list at the top of the MD file is purely > > > > for pipeline descriptions. Why do you think this is needed? > > > > > > This modification is needless right now since *iwmmxt_movsi_insn and > > > *iwmmxt_arm_movdi have been corrected in the fourth part of the patch. > > > Revert it. > > > The new modified patch is attached. > > > > > > * config/arm/arm.c (arm_option_override): Enable use of iWMMXt with > > > VFP. > > > Disable use of iWMMXt with NEON. Disable use of iWMMXt under Thumb > > > mode. > > > (arm_expand_binop_builtin): Accept VOIDmode op. > > > > > > Thanks, > > > Xinyu > > > > > > > > > > > Other bits are ok. > > > > > > > > R. > > > > New changlog > > > > * config/arm/arm.c (FL_IWMMXT2): New define. > > (arm_arch_iwmmxt2): New variable. > > (arm_option_override): Enable use of iWMMXt with VFP. > > Disable use of iWMMXt with NEON. Disable use of iWMMXt under Thumb > > mode. > > Set arm_arch_iwmmxt2. > > (arm_expand_binop_builtin): Accept VOIDmode op. > > * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define > > __IWMMXT2__. > > (TARGET_IWMMXT2): New define. > > (TARGET_REALLY_IWMMXT2): Likewise. > > (arm_arch_iwmmxt2): Declare. > > * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2. > > * config/arm/arm-arches.def (iwmmxt2): Likewise. > > * config/arm/arm.md (arch): Add "iwmmxt2". > > (arch_enabled): Handle "iwmmxt2". > > > > Thanks, > > Xinyu