public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH, ARM, iWMMXt][1/5]: ARM code generic change
@ 2011-07-06 10:24 Xinyu Qi
  2011-07-12 22:45 ` Ramana Radhakrishnan
  0 siblings, 1 reply; 14+ messages in thread
From: Xinyu Qi @ 2011-07-06 10:24 UTC (permalink / raw)
  To: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 460 bytes --]

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.
 Add pipeline description file include.

Thanks,
Xinyu

[-- Attachment #2: 1_generic.diff --]
[-- Type: application/octet-stream, Size: 3066 bytes --]

Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c	(revision 175285)
+++ gcc/config/arm/arm.c	(working copy)
@@ -1605,12 +1605,15 @@ arm_option_override (void)
     }
 
   /* FPA and iWMMXt are incompatible because the insn encodings overlap.
-     VFP and iWMMXt can theoretically coexist, but it's unlikely such silicon
-     will ever exist.  GCC makes no attempt to support this combination.  */
-  if (TARGET_IWMMXT && !TARGET_SOFT_FLOAT)
-    sorry ("iWMMXt and hardware floating point");
+     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");
 
@@ -19313,7 +19316,8 @@ arm_expand_binop_builtin (enum insn_code
       || ! (*insn_data[icode].operand[0].predicate) (target, tmode))
     target = gen_reg_rtx (tmode);
 
-  gcc_assert (GET_MODE (op0) == mode0 && GET_MODE (op1) == mode1);
+  gcc_assert ((GET_MODE (op0) == mode0 || GET_MODE (op0) == VOIDmode)
+	      && (GET_MODE (op1) == mode1 || GET_MODE (op1) == VOIDmode));
 
   if (! (*insn_data[icode].operand[1].predicate) (op0, mode0))
     op0 = copy_to_mode_reg (mode0, op0);
Index: gcc/config/arm/arm.md
===================================================================
--- gcc/config/arm/arm.md	(revision 175285)
+++ gcc/config/arm/arm.md	(working copy)
@@ -535,6 +535,10 @@ (define_attr "generic_vfp" "yes,no"
 (include "cortex-m4.md")
 (include "cortex-m4-fpu.md")
 (include "vfp11.md")
+(include "marvell-f-iwmmxt.md")
+
+;; Load the Intel Wireless Multimedia Extension patterns
+(include "iwmmxt.md")
 
 \f
 ;;---------------------------------------------------------------------------
@@ -4969,7 +4973,6 @@ (define_insn "*arm_movdi"
 	(match_operand:DI 1 "di_operand"              "rDa,Db,Dc,mi,r"))]
   "TARGET_32BIT
    && !(TARGET_HARD_FLOAT && (TARGET_MAVERICK || TARGET_VFP))
-   && !TARGET_IWMMXT
    && (   register_operand (operands[0], DImode)
        || register_operand (operands[1], DImode))"
   "*
@@ -5237,7 +5240,7 @@ (define_insn "*arm_movt"
 (define_insn "*arm_movsi_insn"
   [(set (match_operand:SI 0 "nonimmediate_operand" "=rk,r,r,r,rk,m")
 	(match_operand:SI 1 "general_operand"      "rk, I,K,j,mi,rk"))]
-  "TARGET_ARM && ! TARGET_IWMMXT
+  "TARGET_ARM
    && !(TARGET_HARD_FLOAT && TARGET_VFP)
    && (   register_operand (operands[0], SImode)
        || register_operand (operands[1], SImode))"
@@ -10842,8 +10845,6 @@ (define_expand "bswapsi2"
 (include "cirrus.md")
 ;; Vector bits common to IWMMXT and Neon
 (include "vec-common.md")
-;; Load the Intel Wireless Multimedia Extension patterns
-(include "iwmmxt.md")
 ;; Load the VFP co-processor patterns
 (include "vfp.md")
 ;; Thumb-2 patterns

^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: PING: [PATCH, ARM, iWMMXt][1/5]: ARM code generic change
@ 2011-07-29  3:43 Xinyu Qi
  0 siblings, 0 replies; 14+ messages in thread
From: Xinyu Qi @ 2011-07-29  3:43 UTC (permalink / raw)
  To: Ramana Radhakrishnan, gcc-patches

Ping.

http://gcc.gnu.org/ml/gcc-patches/2011-07/msg01100.html

At 2011-07-14 15:35:52,"Xinyu Qi" <xyqi@marvell.com> 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

^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: PING: [PATCH, ARM, iWMMXt][1/5]: ARM code generic change
@ 2011-09-26  4:31 Xinyu Qi
  0 siblings, 0 replies; 14+ messages in thread
From: Xinyu Qi @ 2011-09-26  4:31 UTC (permalink / raw)
  To: Ramana Radhakrishnan; +Cc: gcc-patches

Ping

http://gcc.gnu.org/ml/gcc-patches/2011-07/msg01100.html

	* config/arm/arm.c (arm_option_override): Enable use of iWMMXt with VFP.
	Disable use of iwMMXt and Neon.
	(arm_expand_binop_builtin): Accept VOIDmode op.
	* config/arm/arm.md (*arm_movdi): Remove check for TARGET_IWMMXT.
	(*arm_movsi_insn): Likewise.
	(iwmmxt.md): Include earlier.

At 2011-07-29 10:57:39,"Xinyu Qi" <xyqi@marvell.com> wrote: > 
> Ping.
> 
> http://gcc.gnu.org/ml/gcc-patches/2011-07/msg01100.html
> 

^ permalink raw reply	[flat|nested] 14+ messages in thread
* RE: PING: [PATCH, ARM, iWMMXt][1/5]: ARM code generic change
@ 2011-10-20  7:53 Xinyu Qi
  2011-10-20 13:57 ` Ramana Radhakrishnan
  0 siblings, 1 reply; 14+ messages in thread
From: Xinyu Qi @ 2011-10-20  7:53 UTC (permalink / raw)
  To: Ramana Radhakrishnan, gcc-patches

Ping

http://gcc.gnu.org/ml/gcc-patches/2011-07/msg01100.html

	* config/arm/arm.c (arm_option_override): Enable use of iWMMXt with VFP.
	Disable use of iwMMXt and Neon.
	(arm_expand_binop_builtin): Accept VOIDmode op.
	* config/arm/arm.md (*arm_movdi): Remove check for TARGET_IWMMXT.
	(*arm_movsi_insn): Likewise.
	(iwmmxt.md): Include earlier.

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2012-03-13  8:54 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-06 10:24 [PATCH, ARM, iWMMXt][1/5]: ARM code generic change Xinyu Qi
2011-07-12 22:45 ` Ramana Radhakrishnan
2011-07-14  7:38   ` Xinyu Qi
2011-08-18  2:21     ` Ramana Radhakrishnan
2011-08-18  8:24       ` Xinyu Qi
2011-12-14 17:03     ` Richard Earnshaw
2011-12-22  6:39       ` Xinyu Qi
2011-12-29  6:25       ` Xinyu Qi
2012-02-03  2:03       ` Xinyu Qi
2012-03-13  8:54       ` PING: " Xinyu Qi
2011-07-29  3:43 Xinyu Qi
2011-09-26  4:31 Xinyu Qi
2011-10-20  7:53 Xinyu Qi
2011-10-20 13:57 ` Ramana Radhakrishnan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).