public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch, microblaze]: Add support for swap instructions and reorder option
@ 2013-02-11  6:39 David Holsgrove
  2013-02-26 17:50 ` Michael Eager
  0 siblings, 1 reply; 8+ messages in thread
From: David Holsgrove @ 2013-02-11  6:39 UTC (permalink / raw)
  To: gcc-patches
  Cc: Michael Eager (eager@eagercon.com),
	John Williams, Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

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

Add support for swap instructions and reorder option

swapb and swaph instructions are introduced in microblaze cpu (mcpu) v8.30a,
but have an undocumented dependence on -mxl-pattern-compare being set.

The conditions for their use are;

mcpu < 8.30a; no swap insns, use of -mxl-reorder produces warning
and ignored

mcpu == 8.30a and -mxl-pattern-compare specified;
and if -mno-xl-reorder not specified, then swap insns allowed

mcpu > 8.30a;
if -mno-xl-reorder not specified, then swap insns allowed

Changelog

2013-02-11  David Holsgrove <david.holsgrove@xilinx.com>

  * config/microblaze/microblaze.c: microblaze_has_swap = 0
     Add version check for v8.30.a to enable microblaze_has_swap
  * config/microblaze/microblaze.h: Add TARGET_HAS_SWAP
  * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
     instructions
  * config/microblaze/microblaze.opt: New options -mxl-reorder
     and -mno-xl-reorder


[-- Attachment #2: 0007-Gcc-Added-swapb-and-swaph-instructions-and-mxl-reord.patch --]
[-- Type: application/octet-stream, Size: 6150 bytes --]

From ba9181676faaa1ad3d9e8bcb4cebe239fdbf05a2 Mon Sep 17 00:00:00 2001
From: David Holsgrove <david.holsgrove@xilix.com>
Date: Tue, 28 Feb 2012 15:32:29 +0530
Subject: [PATCH] microblaze: add support for swap instructions and reorder option

swapb and swaph instructions are introduced in microblaze cpu (mcpu) v8.30a,
but have an undocumented dependence on -mxl-pattern-compare being set.

The conditions for their use are;

mcpu < 8.30a; no swap insns, use of -mxl-reorder produces warning
and ignored

mcpu == 8.30a and -mxl-pattern-compare specified;
and if -mno-xl-reorder not specified, then swap insns allowed

mcpu > 8.30a;
if -mno-xl-reorder not specified, then swap insns allowed

Changelog

2013-02-11  David Holsgrove <david.holsgrove@xilinx.com>

  *  gcc/config/microblaze/microblaze.c: microblaze_has_swap = 0
     Add version check for v8.30.a to enable microblaze_has_swap
  *  gcc/config/microblaze/microblaze.h: Add TARGET_HAS_SWAP
  *  gcc/config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
     instructions
  *  gcc/config/microblaze/microblaze.opt: New options -mxl-reorder
     and -mno-xl-reorder

Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
---
 gcc/config/microblaze/microblaze.c   |   38 ++++++++++++++++++++++++++++++++++
 gcc/config/microblaze/microblaze.h   |    5 ++++
 gcc/config/microblaze/microblaze.md  |   14 ++++++++++++
 gcc/config/microblaze/microblaze.opt |    8 +++++++
 4 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index fc0296e..8819655 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -146,6 +146,9 @@ int microblaze_no_unsafe_delay;
 /* Set to one if the targeted core has the CLZ insn.  */
 int microblaze_has_clz = 0;
 
+/* Set to one if the targeted core has the swapb and swaph insn.  */
+int microblaze_has_swap = 0;
+
 /* Which CPU pipeline do we use. We haven't really standardized on a CPU 
    version having only a particular type of pipeline. There can still be 
    options on the CPU to scale pipeline features up or down. :( 
@@ -1380,6 +1383,41 @@ microblaze_option_override (void)
         microblaze_has_clz = 0;
     }
 
+  /* TARGET_REORDER defaults to 0 in microblaze.opt,
+     -mxl-reorder sets TARGET_REORDER to 1,
+     -mno-xl-reorder sets TARGET_NO_REORDER to 1.
+     Swap instructions are not to be emitted if TARGET_NO_REORDER == 1
+     but should be enabled by default if mcpu >= 8.30a */
+  ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
+  if (ver < 0)
+    {
+        /* MicroBlaze prior to 8.30a didn't have swapb or swaph insns. */
+        if (TARGET_REORDER)
+          warning (0,
+                 "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
+    }
+  else if (ver == 0)
+    {
+        if (!TARGET_NO_REORDER)
+          {
+            target_flags |= MASK_REORDER;
+            /* MicroBlaze v8.30a has an undocumented dependency on
+               pattern compare for swapb / swaph insns. */
+            if (TARGET_PATTERN_COMPARE)
+              microblaze_has_swap = 1;
+          }
+    }
+  else
+    {
+        if (!TARGET_NO_REORDER)
+          {
+            target_flags |= MASK_REORDER;
+            /* Microblaze versions greater than v8.30a will be able to use
+               swapb / swaph without pattern compare */
+            microblaze_has_swap = 1;
+          }
+    }
+
   if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL)
     error ("-mxl-multiply-high requires -mno-xl-soft-mul");
 
diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
index a188a2e..76ee811 100644
--- a/gcc/config/microblaze/microblaze.h
+++ b/gcc/config/microblaze/microblaze.h
@@ -43,6 +43,7 @@ extern int microblaze_dbx_regno[];
 
 extern int microblaze_no_unsafe_delay;
 extern int microblaze_has_clz;
+extern int microblaze_has_swap;
 extern enum pipeline_type microblaze_pipe;
 
 #define OBJECT_FORMAT_ELF
@@ -62,6 +63,9 @@ extern enum pipeline_type microblaze_pipe;
 /* Do we have CLZ?  */
 #define TARGET_HAS_CLZ      (TARGET_PATTERN_COMPARE && microblaze_has_clz)
 
+/* Do we have SWAPB and SWAPH?  */
+#define TARGET_HAS_SWAP     (microblaze_has_swap)
+
 /* The default is to support PIC.  */
 #define TARGET_SUPPORTS_PIC 1
 
@@ -78,6 +82,7 @@ extern enum pipeline_type microblaze_pipe;
 	"%{mno-xl-barrel-shift:%<mxl-barrel-shift}", 	\
 	"%{mno-xl-pattern-compare:%<mxl-pattern-compare}", \
 	"%{mxl-soft-div:%<mno-xl-soft-div}", 		\
+	"%{mxl-reorder:%<mno-xl-reorder}", 		\
 	"%{msoft-float:%<mhard-float}"
 
 /* Tell collect what flags to pass to nm.  */
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
index 1b42003..2e636c0 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -353,6 +353,20 @@
 (automata_option "time")
 (automata_option "progress")
 
+(define_insn "bswapsi2"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+        (bswap:SI (match_operand:SI 1 "register_operand" "r")))]
+  "TARGET_HAS_SWAP"
+  "swapb %0, %1"
+)
+
+(define_insn "bswaphi2"
+  [(set (match_operand:HI 0 "register_operand" "=r")
+        (bswap:HI (match_operand:HI 1 "register_operand" "r")))]
+  "TARGET_HAS_SWAP"
+  "swaph %0, %1"
+)
+
 ;;----------------------------------------------------------------
 ;; Microblaze delay slot description
 ;;----------------------------------------------------------------
diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt
index fc7d0cd..b461296 100644
--- a/gcc/config/microblaze/microblaze.opt
+++ b/gcc/config/microblaze/microblaze.opt
@@ -67,6 +67,14 @@ mxl-soft-mul
 Target Mask(SOFT_MUL)
 Use the soft multiply emulation (default)
 
+mxl-reorder
+Target RejectNegative Mask(REORDER)
+Use reorder instructions (default)
+
+mno-xl-reorder
+Target RejectNegative Var(TARGET_NO_REORDER)
+Do not use reorder instructions
+
 mxl-soft-div
 Target Mask(SOFT_DIV)
 Use the software emulation for divides (default)
-- 
1.7.3.2


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

* Re: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-02-11  6:39 [Patch, microblaze]: Add support for swap instructions and reorder option David Holsgrove
@ 2013-02-26 17:50 ` Michael Eager
  2013-02-27 14:42   ` David Holsgrove
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Eager @ 2013-02-26 17:50 UTC (permalink / raw)
  To: David Holsgrove
  Cc: gcc-patches, Michael Eager (eager@eagercon.com),
	John Williams, Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

On 02/10/2013 10:39 PM, David Holsgrove wrote:
> Add support for swap instructions and reorder option
>
> swapb and swaph instructions are introduced in microblaze cpu (mcpu) v8.30a,
> but have an undocumented dependence on -mxl-pattern-compare being set.
>
> The conditions for their use are;
>
> mcpu < 8.30a; no swap insns, use of -mxl-reorder produces warning
> and ignored
>
> mcpu == 8.30a and -mxl-pattern-compare specified;
> and if -mno-xl-reorder not specified, then swap insns allowed
>
> mcpu > 8.30a;
> if -mno-xl-reorder not specified, then swap insns allowed
>
> Changelog
>
> 2013-02-11  David Holsgrove <david.holsgrove@xilinx.com>

Is this correct?

>
>    * config/microblaze/microblaze.c: microblaze_has_swap = 0
>       Add version check for v8.30.a to enable microblaze_has_swap
>    * config/microblaze/microblaze.h: Add TARGET_HAS_SWAP
>    * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
>       instructions
>    * config/microblaze/microblaze.opt: New options -mxl-reorder
>       and -mno-xl-reorder

Don't specify both -mxl-reorder and -mno-xl-reorder as options.
Don't specify a "no" version with the RejectNegative option.
GCC option handling already process the "no" prefix automatically.

There is no need to have both TARGET_REORDER and TARGET_NOREORDER
since they have exactly the same information.  Define only TARGET_REORDER.

How does the name of the option (-mxl-reorder) relate to using swap
instructions?  Nothing is being reordered.  What are "reorder" instructions?
How about -mxl-swap, similar to -mxl-pattern-compare or -mxl-float-sqrt?


+  else if (ver == 0)
+    {
+        if (!TARGET_NO_REORDER)
+          {
+            target_flags |= MASK_REORDER;
+            /* MicroBlaze v8.30a has an undocumented dependency on
+               pattern compare for swapb / swaph insns. */
+            if (TARGET_PATTERN_COMPARE)
+              microblaze_has_swap = 1;
+          }
+    }
+  else
+    {
+        if (!TARGET_NO_REORDER)
+          {
+            target_flags |= MASK_REORDER;
+            /* Microblaze versions greater than v8.30a will be able to use
+               swapb / swaph without pattern compare */
+            microblaze_has_swap = 1;
+          }
+    }
+

Refactor to eliminate duplicated code.

Why set the MASK_REORDER flag in target_flags if this is never used?
Options processing will set this automatically since you have
   mxl-reorder
   Target RejectNegative Mask(REORDER)

-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

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

* RE: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-02-26 17:50 ` Michael Eager
@ 2013-02-27 14:42   ` David Holsgrove
  2013-02-27 17:06     ` Michael Eager
  0 siblings, 1 reply; 8+ messages in thread
From: David Holsgrove @ 2013-02-27 14:42 UTC (permalink / raw)
  To: Michael Eager
  Cc: gcc-patches, Michael Eager (eager@eagercon.com),
	John Williams, Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

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

Hi Michael,

Thanks for the review, please find comments inline below.

> -----Original Message-----
> From: Michael Eager [mailto:eager@eagerm.com]
> Sent: Wednesday, 27 February 2013 3:50 am
> To: David Holsgrove
> Cc: gcc-patches@gcc.gnu.org; Michael Eager (eager@eagercon.com); John
> Williams; Edgar E. Iglesias (edgar.iglesias@gmail.com); Vinod Kathail; Vidhumouli
> Hunsigida; Nagaraju Mekala; Tom Shui
> Subject: Re: [Patch, microblaze]: Add support for swap instructions and reorder
> option
> 
> On 02/10/2013 10:39 PM, David Holsgrove wrote:
> > Add support for swap instructions and reorder option
> >
> > swapb and swaph instructions are introduced in microblaze cpu (mcpu) v8.30a,
> > but have an undocumented dependence on -mxl-pattern-compare being set.
> >
> > The conditions for their use are;
> >
> > mcpu < 8.30a; no swap insns, use of -mxl-reorder produces warning
> > and ignored
> >
> > mcpu == 8.30a and -mxl-pattern-compare specified;
> > and if -mno-xl-reorder not specified, then swap insns allowed
> >
> > mcpu > 8.30a;
> > if -mno-xl-reorder not specified, then swap insns allowed
> >
> > Changelog
> >
> > 2013-02-11  David Holsgrove <david.holsgrove@xilinx.com>
> 
> Is this correct?
> 
Changelog amended in light of adjustments to patch.
> >
> >    * config/microblaze/microblaze.c: microblaze_has_swap = 0
> >       Add version check for v8.30.a to enable microblaze_has_swap
> >    * config/microblaze/microblaze.h: Add TARGET_HAS_SWAP
> >    * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
> >       instructions
> >    * config/microblaze/microblaze.opt: New options -mxl-reorder
> >       and -mno-xl-reorder
> 
> Don't specify both -mxl-reorder and -mno-xl-reorder as options.
> Don't specify a "no" version with the RejectNegative option.
> GCC option handling already process the "no" prefix automatically.
> 
> There is no need to have both TARGET_REORDER and TARGET_NOREORDER
> since they have exactly the same information.  Define only TARGET_REORDER.
> 

The use of separate -mxl-reorder / -mno-xl-reorder options was to be able to discriminate
between the three states;

 1) user passes nothing
 2) user passes -mxl-reorder
 3) user passes -mno-xl-reorder

I've reworked the patch to instead define the -mxl-reorder option only, but with an
initial value of 2 (which is similar to arm's option -mfix-cortex-m3-ldrd)

GCC option handling will then create the -mno-xl-reorder option for us and set 
TARGET_REORDER to 0 if -mno-xl-reorder used, or 1 if -mxl-reorder passed.
This allows detection and handling of the three separate cases above.

> How does the name of the option (-mxl-reorder) relate to using swap
> instructions?  Nothing is being reordered.  What are "reorder" instructions?
> How about -mxl-swap, similar to -mxl-pattern-compare or -mxl-float-sqrt?
> 

The choice of the name for the option (-mxl-reorder) is driven by its use in Xilinx's EDK
I believe, and joins the reverse load / reverse store instructions in a 'reorder'
instructions group;
(http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_4/mb_ref_guide.pdf#page=135)

> 
> +  else if (ver == 0)
> +    {
> +        if (!TARGET_NO_REORDER)
> +          {
> +            target_flags |= MASK_REORDER;
> +            /* MicroBlaze v8.30a has an undocumented dependency on
> +               pattern compare for swapb / swaph insns. */
> +            if (TARGET_PATTERN_COMPARE)
> +              microblaze_has_swap = 1;
> +          }
> +    }
> +  else
> +    {
> +        if (!TARGET_NO_REORDER)
> +          {
> +            target_flags |= MASK_REORDER;
> +            /* Microblaze versions greater than v8.30a will be able to use
> +               swapb / swaph without pattern compare */
> +            microblaze_has_swap = 1;
> +          }
> +    }
> +
> 
> Refactor to eliminate duplicated code.
> 
> Why set the MASK_REORDER flag in target_flags if this is never used?

Removed unused MASK_REORDER, and refactored this block of logic.
Default is to emit swap instructions (TARGET_REORDER != 0), unless user passes
-mno-xl-reorder, or microblaze_option_override forces TARGET_REORDER to 0.

> Options processing will set this automatically since you have
>    mxl-reorder
>    Target RejectNegative Mask(REORDER)
> 

I've attached an updated version of this patch. Please let me know if you
have any concerns about it.

The new Changelog entry would be as follows;

Changelog

2013-02-27  David Holsgrove <david.holsgrove@xilinx.com>

  *  gcc/config/microblaze/microblaze.c:
     Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if
     not met.
  *  gcc/config/microblaze/microblaze.h: Add -mxl-reorder to
     DRIVER_SELF_SPECS
  *  gcc/config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
     instructions emitted if TARGET_REORDER
  *  gcc/config/microblaze/microblaze.opt: New option -mxl-reorder
     set to 1 or 0 for -m/-mno case, but initialises as 2 to detect
     default use case separately

thanks,
David


> --
> Michael Eager	 eager@eagercon.com
> 1960 Park Blvd., Palo Alto, CA 94306  650-325-8077




[-- Attachment #2: 0001-microblaze-add-support-for-swap-instructions-and-reo.patch --]
[-- Type: application/octet-stream, Size: 4233 bytes --]

From f4ade6571bec1ccaf1c20d0da007b99fb9dccc83 Mon Sep 17 00:00:00 2001
From: David Holsgrove <david.holsgrove@xilinx.com>
Date: Tue, 28 Feb 2012 15:32:29 +0530
Subject: [PATCH] microblaze: add support for swap instructions and reorder option

Changelog

2013-02-27  David Holsgrove <david.holsgrove@xilinx.com>

  *  gcc/config/microblaze/microblaze.c:
     Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if
     not met.
  *  gcc/config/microblaze/microblaze.h: Add -mxl-reorder to
     DRIVER_SELF_SPECS
  *  gcc/config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
     instructions emitted if TARGET_REORDER
  *  gcc/config/microblaze/microblaze.opt: New option -mxl-reorder
     set to 1 or 0 for -m/-mno case, but initialises as 2 to detect
     default use case separately

Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
---
 gcc/config/microblaze/microblaze.c   |   21 +++++++++++++++++++++
 gcc/config/microblaze/microblaze.h   |    1 +
 gcc/config/microblaze/microblaze.md  |   14 ++++++++++++++
 gcc/config/microblaze/microblaze.opt |    4 ++++
 4 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index fc0296e..bf24c65 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -1380,6 +1380,27 @@ microblaze_option_override (void)
         microblaze_has_clz = 0;
     }
 
+  /* TARGET_REORDER initialised as 2 in microblaze.opt,
+     passing -mxl-reorder sets TARGET_REORDER to 1,
+     and passing -mno-xl-reorder sets TARGET_REORDER to 0.  */
+  ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
+  if (ver < 0)
+    {
+        /* MicroBlaze prior to 8.30a didn't have swapb or swaph insns,
+           so if -mxl-reorder passed, warn and clear TARGET_REORDER.  */
+        if (TARGET_REORDER == 1)
+          warning (0,
+          "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
+        TARGET_REORDER = 0;
+    }
+  else if (ver == 0)
+    {
+        /* MicroBlaze v8.30a requires pattern compare for
+           swapb / swaph insns.  */
+        if (!TARGET_PATTERN_COMPARE)
+          TARGET_REORDER = 0;
+    }
+
   if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL)
     error ("-mxl-multiply-high requires -mno-xl-soft-mul");
 
diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
index a188a2e..23ed16e 100644
--- a/gcc/config/microblaze/microblaze.h
+++ b/gcc/config/microblaze/microblaze.h
@@ -78,6 +78,7 @@ extern enum pipeline_type microblaze_pipe;
 	"%{mno-xl-barrel-shift:%<mxl-barrel-shift}", 	\
 	"%{mno-xl-pattern-compare:%<mxl-pattern-compare}", \
 	"%{mxl-soft-div:%<mno-xl-soft-div}", 		\
+	"%{mxl-reorder:%<mno-xl-reorder}", 		\
 	"%{msoft-float:%<mhard-float}"
 
 /* Tell collect what flags to pass to nm.  */
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
index 1b42003..1eac941 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -353,6 +353,20 @@
 (automata_option "time")
 (automata_option "progress")
 
+(define_insn "bswapsi2"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+        (bswap:SI (match_operand:SI 1 "register_operand" "r")))]
+  "TARGET_REORDER"
+  "swapb %0, %1"
+)
+
+(define_insn "bswaphi2"
+  [(set (match_operand:HI 0 "register_operand" "=r")
+        (bswap:HI (match_operand:HI 1 "register_operand" "r")))]
+  "TARGET_REORDER"
+  "swaph %0, %1"
+)
+
 ;;----------------------------------------------------------------
 ;; Microblaze delay slot description
 ;;----------------------------------------------------------------
diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt
index fc7d0cd..13be973 100644
--- a/gcc/config/microblaze/microblaze.opt
+++ b/gcc/config/microblaze/microblaze.opt
@@ -67,6 +67,10 @@ mxl-soft-mul
 Target Mask(SOFT_MUL)
 Use the soft multiply emulation (default)
 
+mxl-reorder
+Target Var(TARGET_REORDER) Init(2)
+Use reorder instructions (default)
+
 mxl-soft-div
 Target Mask(SOFT_DIV)
 Use the software emulation for divides (default)
-- 
1.7.0.4


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

* Re: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-02-27 14:42   ` David Holsgrove
@ 2013-02-27 17:06     ` Michael Eager
  2013-02-28  0:37       ` David Holsgrove
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Eager @ 2013-02-27 17:06 UTC (permalink / raw)
  To: David Holsgrove
  Cc: Michael Eager, gcc-patches, John Williams,
	Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

On 02/27/2013 06:42 AM, David Holsgrove wrote:
> Hi Michael,
>
> Thanks for the review, please find comments inline below.
>
>> -----Original Message-----
>> From: Michael Eager [mailto:eager@eagerm.com]
>> Sent: Wednesday, 27 February 2013 3:50 am
>> To: David Holsgrove
>> Cc: gcc-patches@gcc.gnu.org; Michael Eager (eager@eagercon.com); John
>> Williams; Edgar E. Iglesias (edgar.iglesias@gmail.com); Vinod Kathail; Vidhumouli
>> Hunsigida; Nagaraju Mekala; Tom Shui
>> Subject: Re: [Patch, microblaze]: Add support for swap instructions and reorder
>> option
>>
>> On 02/10/2013 10:39 PM, David Holsgrove wrote:
>>> Add support for swap instructions and reorder option
>>>
>>> swapb and swaph instructions are introduced in microblaze cpu (mcpu) v8.30a,
>>> but have an undocumented dependence on -mxl-pattern-compare being set.
>>>
>>> The conditions for their use are;
>>>
>>> mcpu < 8.30a; no swap insns, use of -mxl-reorder produces warning
>>> and ignored
>>>
>>> mcpu == 8.30a and -mxl-pattern-compare specified;
>>> and if -mno-xl-reorder not specified, then swap insns allowed
>>>
>>> mcpu > 8.30a;
>>> if -mno-xl-reorder not specified, then swap insns allowed
>>>

>
> The use of separate -mxl-reorder / -mno-xl-reorder options was to be able to discriminate
> between the three states;
>
>   1) user passes nothing
>   2) user passes -mxl-reorder
>   3) user passes -mno-xl-reorder
>
> I've reworked the patch to instead define the -mxl-reorder option only, but with an
> initial value of 2 (which is similar to arm's option -mfix-cortex-m3-ldrd)
>
> GCC option handling will then create the -mno-xl-reorder option for us and set
> TARGET_REORDER to 0 if -mno-xl-reorder used, or 1 if -mxl-reorder passed.
> This allows detection and handling of the three separate cases above.

The purpose is to avoid issuing a warning for processors before 8.30.a
unless the user explicitly specifies -mxl-reorder.

I think that the code can be reordered to make it clearer.

Replace this

+  /* TARGET_REORDER initialised as 2 in microblaze.opt,
+     passing -mxl-reorder sets TARGET_REORDER to 1,
+     and passing -mno-xl-reorder sets TARGET_REORDER to 0.  */
+  ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
+  if (ver < 0)
+    {
+        /* MicroBlaze prior to 8.30a didn't have swapb or swaph insns,
+           so if -mxl-reorder passed, warn and clear TARGET_REORDER.  */
+        if (TARGET_REORDER == 1)
+          warning (0,
+          "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
+        TARGET_REORDER = 0;
+    }
+  else if (ver == 0)
+    {
+        /* MicroBlaze v8.30a requires pattern compare for
+           swapb / swaph insns.  */
+        if (!TARGET_PATTERN_COMPARE)
+          TARGET_REORDER = 0;
+    }

With this:

/* TARGET_REORDER defaults to 2 if -mxl-reorder not specified.  */
if (TARGET_REORDER == 1)
{
   ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
   if (ver < 0)
   {
     warning (0, "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
     TARGET_REORDER = 0;
   }
   else if ((ver == 0) && !TARGET_PATTERN_COMPARE)
   {
     warning (0, "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a");
     TARGET_REORDER = 0;
   }
}

>> How does the name of the option (-mxl-reorder) relate to using swap
>> instructions?  Nothing is being reordered.  What are "reorder" instructions?
>> How about -mxl-swap, similar to -mxl-pattern-compare or -mxl-float-sqrt?
>>
>
> The choice of the name for the option (-mxl-reorder) is driven by its use in Xilinx's EDK
> I believe, and joins the reverse load / reverse store instructions in a 'reorder'
> instructions group;
> (http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_4/mb_ref_guide.pdf#page=135)

While I think I understand the viewpoint, that data transfer from/to memory is reordered
to change endianness on load or store, I think that this terminology is confusing.  Swap
doesn't transfer data from memory.

Where is the reverse load/store support?

>> Refactor to eliminate duplicated code.
>>
>> Why set the MASK_REORDER flag in target_flags if this is never used?
>
> Removed unused MASK_REORDER, and refactored this block of logic.
> Default is to emit swap instructions (TARGET_REORDER != 0), unless user passes
> -mno-xl-reorder, or microblaze_option_override forces TARGET_REORDER to 0.

Thanks.

>> Options processing will set this automatically since you have
>>     mxl-reorder
>>     Target RejectNegative Mask(REORDER)
>>
>
> I've attached an updated version of this patch. Please let me know if you
> have any concerns about it.

+mxl-reorder
+Target Var(TARGET_REORDER) Init(2)
+Use reorder instructions (default)

Change to
+Use reorder instructions (swap and byte reversed load/store) (default)


I'll check in the patch with these changes unless you have objections.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

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

* RE: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-02-27 17:06     ` Michael Eager
@ 2013-02-28  0:37       ` David Holsgrove
  2013-03-03 17:36         ` Michael Eager
  0 siblings, 1 reply; 8+ messages in thread
From: David Holsgrove @ 2013-02-28  0:37 UTC (permalink / raw)
  To: Michael Eager
  Cc: Michael Eager, gcc-patches, John Williams,
	Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

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



> -----Original Message-----
> From: Michael Eager [mailto:eager@eagercon.com]
> Sent: Thursday, 28 February 2013 3:06 am
> To: David Holsgrove
> Cc: Michael Eager; gcc-patches@gcc.gnu.org; John Williams; Edgar E. Iglesias
> (edgar.iglesias@gmail.com); Vinod Kathail; Vidhumouli Hunsigida; Nagaraju
> Mekala; Tom Shui
> Subject: Re: [Patch, microblaze]: Add support for swap instructions and reorder
> option
> 
> The purpose is to avoid issuing a warning for processors before 8.30.a
> unless the user explicitly specifies -mxl-reorder.
> 

Warning the user who explicitly specifies -mxl-reorder with cpu before v8.30.a
is the first goal, but we also need to prevent the usage of swap instructions by
default if they are not possible to use.

> I think that the code can be reordered to make it clearer.
> 
> Replace this
> 
> +  /* TARGET_REORDER initialised as 2 in microblaze.opt,
> +     passing -mxl-reorder sets TARGET_REORDER to 1,
> +     and passing -mno-xl-reorder sets TARGET_REORDER to 0.  */
> +  ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
> +  if (ver < 0)
> +    {
> +        /* MicroBlaze prior to 8.30a didn't have swapb or swaph insns,
> +           so if -mxl-reorder passed, warn and clear TARGET_REORDER.  */
> +        if (TARGET_REORDER == 1)
> +          warning (0,
> +          "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
> +        TARGET_REORDER = 0;
> +    }
> +  else if (ver == 0)
> +    {
> +        /* MicroBlaze v8.30a requires pattern compare for
> +           swapb / swaph insns.  */
> +        if (!TARGET_PATTERN_COMPARE)
> +          TARGET_REORDER = 0;
> +    }
> 
> With this:
> 
> /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified.  */
> if (TARGET_REORDER == 1)
> {
>    ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
>    if (ver < 0)
>    {
>      warning (0, "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
>      TARGET_REORDER = 0;
>    }
>    else if ((ver == 0) && !TARGET_PATTERN_COMPARE)
>    {
>      warning (0, "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a");
>      TARGET_REORDER = 0;
>    }
> }

So if we switch to your alternative, the default case (TARGET_REORDER=2) will not
be checked for cpu version, or use of TARGET_PATTERN_COMPARE, meaning we
emit swap instructions which aren’t valid for these situations.

Adjusting your if statement to be;

if (TARGET_REORDER)

would catch the default case along with explicit use of -mxl-reorder, but then we
would also be issuing the warnings for every compilation where cpu is less than
v8.30.a, or the user hasn’t passed -mxl-pattern-compare.

My attached patch will warn the user if they've explicitly used -mxl-reorder and
don’t meet the requirements, and will adjust the default case silently if required.

> +mxl-reorder
> +Target Var(TARGET_REORDER) Init(2)
> +Use reorder instructions (default)
> 
> Change to
> +Use reorder instructions (swap and byte reversed load/store) (default)
> 

Yes thanks, this is a clearer definition of the intent behind the option.

> 
> I'll check in the patch with these changes unless you have objections.
> 

thanks again for the review, please let me know if this patch is acceptable.
David

> 
> --
> Michael Eager	 eager@eagercon.com
> 1960 Park Blvd., Palo Alto, CA 94306  650-325-8077




[-- Attachment #2: 0001-microblaze-add-support-for-swap-instructions-and-reo.patch --]
[-- Type: application/octet-stream, Size: 4016 bytes --]

From 3613566384dc3de4e0853281aee85e6cba44153c Mon Sep 17 00:00:00 2001
From: David Holsgrove <david.holsgrove@xilix.com>
Date: Tue, 28 Feb 2012 15:32:29 +0530
Subject: [PATCH] microblaze: add support for swap instructions and reorder option

Changelog

2013-02-27  David Holsgrove <david.holsgrove@xilinx.com>

  *  gcc/config/microblaze/microblaze.c:
     Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if
     not met.
  *  gcc/config/microblaze/microblaze.h: Add -mxl-reorder to
     DRIVER_SELF_SPECS
  *  gcc/config/microblaze/microblaze.md: New bswapsi2 and bswaphi2
     instructions emitted if TARGET_REORDER
  *  gcc/config/microblaze/microblaze.opt: New option -mxl-reorder
     set to 1 or 0 for -m/-mno case, but initialises as 2 to detect
     default use case separately

Signed-off-by: Nagaraju Mekala <nmekala@xilinx.com>
Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
---
 gcc/config/microblaze/microblaze.c   |   15 +++++++++++++++
 gcc/config/microblaze/microblaze.h   |    1 +
 gcc/config/microblaze/microblaze.md  |   14 ++++++++++++++
 gcc/config/microblaze/microblaze.opt |    4 ++++
 4 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index f45d30c..8458253 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -1380,6 +1380,21 @@ microblaze_option_override (void)
         microblaze_has_clz = 0;
     }
 
+  /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified.  */
+  ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
+  if (ver < 0)
+    {
+        if (TARGET_REORDER == 1)
+          warning (0, "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
+        TARGET_REORDER = 0;
+    }
+  else if ((ver == 0) && !TARGET_PATTERN_COMPARE)
+    {
+        if (TARGET_REORDER == 1)
+          warning (0, "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a");
+        TARGET_REORDER = 0;
+    }
+
   if (TARGET_MULTIPLY_HIGH && TARGET_SOFT_MUL)
     error ("-mxl-multiply-high requires -mno-xl-soft-mul");
 
diff --git a/gcc/config/microblaze/microblaze.h b/gcc/config/microblaze/microblaze.h
index a188a2e..23ed16e 100644
--- a/gcc/config/microblaze/microblaze.h
+++ b/gcc/config/microblaze/microblaze.h
@@ -78,6 +78,7 @@ extern enum pipeline_type microblaze_pipe;
 	"%{mno-xl-barrel-shift:%<mxl-barrel-shift}", 	\
 	"%{mno-xl-pattern-compare:%<mxl-pattern-compare}", \
 	"%{mxl-soft-div:%<mno-xl-soft-div}", 		\
+	"%{mxl-reorder:%<mno-xl-reorder}", 		\
 	"%{msoft-float:%<mhard-float}"
 
 /* Tell collect what flags to pass to nm.  */
diff --git a/gcc/config/microblaze/microblaze.md b/gcc/config/microblaze/microblaze.md
index 3391864..9f17733 100644
--- a/gcc/config/microblaze/microblaze.md
+++ b/gcc/config/microblaze/microblaze.md
@@ -353,6 +353,20 @@
 (automata_option "time")
 (automata_option "progress")
 
+(define_insn "bswapsi2"
+  [(set (match_operand:SI 0 "register_operand" "=r")
+        (bswap:SI (match_operand:SI 1 "register_operand" "r")))]
+  "TARGET_REORDER"
+  "swapb %0, %1"
+)
+
+(define_insn "bswaphi2"
+  [(set (match_operand:HI 0 "register_operand" "=r")
+        (bswap:HI (match_operand:HI 1 "register_operand" "r")))]
+  "TARGET_REORDER"
+  "swaph %0, %1"
+)
+
 ;;----------------------------------------------------------------
 ;; Microblaze delay slot description
 ;;----------------------------------------------------------------
diff --git a/gcc/config/microblaze/microblaze.opt b/gcc/config/microblaze/microblaze.opt
index fc7d0cd..a659166 100644
--- a/gcc/config/microblaze/microblaze.opt
+++ b/gcc/config/microblaze/microblaze.opt
@@ -67,6 +67,10 @@ mxl-soft-mul
 Target Mask(SOFT_MUL)
 Use the soft multiply emulation (default)
 
+mxl-reorder
+Target Var(TARGET_REORDER) Init(2)
+Use reorder instructions (swap and byte reversed load/store) (default)
+
 mxl-soft-div
 Target Mask(SOFT_DIV)
 Use the software emulation for divides (default)
-- 
1.7.0.4


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

* Re: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-02-28  0:37       ` David Holsgrove
@ 2013-03-03 17:36         ` Michael Eager
  2013-03-05 14:54           ` David Holsgrove
  0 siblings, 1 reply; 8+ messages in thread
From: Michael Eager @ 2013-03-03 17:36 UTC (permalink / raw)
  To: David Holsgrove
  Cc: Michael Eager, gcc-patches, John Williams,
	Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

On 02/27/2013 04:36 PM, David Holsgrove wrote:
>
>
>> -----Original Message-----
>> From: Michael Eager [mailto:eager@eagercon.com]
>> Sent: Thursday, 28 February 2013 3:06 am
>> To: David Holsgrove
>> Cc: Michael Eager; gcc-patches@gcc.gnu.org; John Williams; Edgar E. Iglesias
>> (edgar.iglesias@gmail.com); Vinod Kathail; Vidhumouli Hunsigida; Nagaraju
>> Mekala; Tom Shui
>> Subject: Re: [Patch, microblaze]: Add support for swap instructions and reorder
>> option
>>
>> The purpose is to avoid issuing a warning for processors before 8.30.a
>> unless the user explicitly specifies -mxl-reorder.
>>
>
> Warning the user who explicitly specifies -mxl-reorder with cpu before v8.30.a
> is the first goal, but we also need to prevent the usage of swap instructions by
> default if they are not possible to use.
>
>> I think that the code can be reordered to make it clearer.
>>
>> Replace this
>>
>> +  /* TARGET_REORDER initialised as 2 in microblaze.opt,
>> +     passing -mxl-reorder sets TARGET_REORDER to 1,
>> +     and passing -mno-xl-reorder sets TARGET_REORDER to 0.  */
>> +  ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
>> +  if (ver < 0)
>> +    {
>> +        /* MicroBlaze prior to 8.30a didn't have swapb or swaph insns,
>> +           so if -mxl-reorder passed, warn and clear TARGET_REORDER.  */
>> +        if (TARGET_REORDER == 1)
>> +          warning (0,
>> +          "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
>> +        TARGET_REORDER = 0;
>> +    }
>> +  else if (ver == 0)
>> +    {
>> +        /* MicroBlaze v8.30a requires pattern compare for
>> +           swapb / swaph insns.  */
>> +        if (!TARGET_PATTERN_COMPARE)
>> +          TARGET_REORDER = 0;
>> +    }
>>
>> With this:
>>
>> /* TARGET_REORDER defaults to 2 if -mxl-reorder not specified.  */
>> if (TARGET_REORDER == 1)
>> {
>>     ver = MICROBLAZE_VERSION_COMPARE (microblaze_select_cpu, "v8.30.a");
>>     if (ver < 0)
>>     {
>>       warning (0, "-mxl-reorder can be used only with -mcpu=v8.30.a or greater");
>>       TARGET_REORDER = 0;
>>     }
>>     else if ((ver == 0) && !TARGET_PATTERN_COMPARE)
>>     {
>>       warning (0, "-mxl-reorder requires -mxl-pattern-compare for -mcpu=v8.30.a");
>>       TARGET_REORDER = 0;
>>     }
>> }
>
> So if we switch to your alternative, the default case (TARGET_REORDER=2) will not
> be checked for cpu version, or use of TARGET_PATTERN_COMPARE, meaning we
> emit swap instructions which aren’t valid for these situations.
>
> Adjusting your if statement to be;
>
> if (TARGET_REORDER)
>
> would catch the default case along with explicit use of -mxl-reorder, but then we
> would also be issuing the warnings for every compilation where cpu is less than
> v8.30.a, or the user hasn’t passed -mxl-pattern-compare.
>
> My attached patch will warn the user if they've explicitly used -mxl-reorder and
> don’t meet the requirements, and will adjust the default case silently if required.
>
>> +mxl-reorder
>> +Target Var(TARGET_REORDER) Init(2)
>> +Use reorder instructions (default)
>>
>> Change to
>> +Use reorder instructions (swap and byte reversed load/store) (default)
>>
>
> Yes thanks, this is a clearer definition of the intent behind the option.
>
>>
>> I'll check in the patch with these changes unless you have objections.
>>
>
> thanks again for the review, please let me know if this patch is acceptable.
> David

Committed revision 196415.

Please submit a patch to update gcc/doc/invoke.texi with -mxl-reorder description.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

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

* RE: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-03-03 17:36         ` Michael Eager
@ 2013-03-05 14:54           ` David Holsgrove
  2013-03-05 16:02             ` Michael Eager
  0 siblings, 1 reply; 8+ messages in thread
From: David Holsgrove @ 2013-03-05 14:54 UTC (permalink / raw)
  To: Michael Eager
  Cc: Michael Eager, gcc-patches, John Williams,
	Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui

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

Hi Michal,

> -----Original Message-----
> From: Michael Eager [mailto:eager@eagerm.com]
> Sent: Monday, 4 March 2013 3:37 am
> To: David Holsgrove
> Cc: Michael Eager; gcc-patches@gcc.gnu.org; John Williams; Edgar E. Iglesias
> (edgar.iglesias@gmail.com); Vinod Kathail; Vidhumouli Hunsigida; Nagaraju
> Mekala; Tom Shui
> Subject: Re: [Patch, microblaze]: Add support for swap instructions and reorder
> option
> 
> Committed revision 196415.

Thanks for committing.

> 
> Please submit a patch to update gcc/doc/invoke.texi with -mxl-reorder
> description.
> 

Please find patch attached to this mail which updates the MicroBlaze section of
documentation to include -mxl-reorder. I also added -mbig-endian and
-mlittle-endian as they were missed in previous patch.

thanks again,
David

> 
> --
> Michael Eager	 eager@eagercon.com
> 1960 Park Blvd., Palo Alto, CA 94306  650-325-8077
> 




[-- Attachment #2: 0001-Patch-microblaze-Update-gcc-doc-invoke.texi-for-Micr.patch --]
[-- Type: application/octet-stream, Size: 1736 bytes --]

From 4fb108213dd0523709fc1b674d164b4532929e63 Mon Sep 17 00:00:00 2001
From: David Holsgrove <david.holsgrove@xilinx.com>
Date: Mon, 4 Mar 2013 13:15:47 +1000
Subject: [PATCH] [Patch, microblaze]: Update gcc/doc/invoke.texi for MicroBlaze options

gcc/Changelog

2013-03-04  David Holsgrove <david.holsgrove@xilinx.com>

 * gcc/doc/invoke.texi (MicroBlaze): Add new option -mxl-reorder
   and missed options -mbig-endian -mlittle-endian

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
---
 gcc/doc/invoke.texi |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 75dd9bd..a2a4066 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -733,7 +733,7 @@ Objective-C and Objective-C++ Dialects}.
 -mmemcpy -mxl-soft-mul -mxl-soft-div -mxl-barrel-shift @gol
 -mxl-pattern-compare -mxl-stack-check -mxl-gp-opt -mno-clearbss @gol
 -mxl-multiply-high -mxl-float-convert -mxl-float-sqrt @gol
--mxl-mode-@var{app-model}}
+-mbig-endian -mlittle-endian -mxl-reorder -mxl-mode-@var{app-model}}
 
 @emph{MIPS Options}
 @gccoptlist{-EL  -EB  -march=@var{arch}  -mtune=@var{arch} @gol
@@ -15820,6 +15820,18 @@ Use hardware floating-point conversion instructions.
 @opindex mxl-float-sqrt
 Use hardware floating-point square root instruction.
 
+@item -mbig-endian
+@opindex mbig-endian
+Generate code for a big-endian target.
+
+@item -mlittle-endian
+@opindex mlittle-endian
+Generate code for a little-endian target.
+
+@item -mxl-reorder
+@opindex mxl-reorder
+Use reorder instructions (swap and byte reversed load/store).
+
 @item -mxl-mode-@var{app-model}
 Select application model @var{app-model}.  Valid models are
 @table @samp
-- 
1.7.0.4


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

* Re: [Patch, microblaze]: Add support for swap instructions and reorder option
  2013-03-05 14:54           ` David Holsgrove
@ 2013-03-05 16:02             ` Michael Eager
  0 siblings, 0 replies; 8+ messages in thread
From: Michael Eager @ 2013-03-05 16:02 UTC (permalink / raw)
  To: David Holsgrove
  Cc: Michael Eager, gcc-patches, John Williams,
	Edgar E. Iglesias (edgar.iglesias@gmail.com),
	Vinod Kathail, Vidhumouli Hunsigida, Nagaraju Mekala, Tom Shui,
	Joseph S. Myers

On 03/05/2013 06:54 AM, David Holsgrove wrote:
> Hi Michal,
>
>> -----Original Message-----
>> From: Michael Eager [mailto:eager@eagerm.com]
>> Sent: Monday, 4 March 2013 3:37 am
>> To: David Holsgrove
>> Cc: Michael Eager; gcc-patches@gcc.gnu.org; John Williams; Edgar E. Iglesias
>> (edgar.iglesias@gmail.com); Vinod Kathail; Vidhumouli Hunsigida; Nagaraju
>> Mekala; Tom Shui
>> Subject: Re: [Patch, microblaze]: Add support for swap instructions and reorder
>> option
>>
>> Committed revision 196415.
>
> Thanks for committing.
>
>>
>> Please submit a patch to update gcc/doc/invoke.texi with -mxl-reorder
>> description.
>>
>
> Please find patch attached to this mail which updates the MicroBlaze section of
> documentation to include -mxl-reorder. I also added -mbig-endian and
> -mlittle-endian as they were missed in previous patch.

Thanks.

Committed revision 196470.

gcc/ChangeLog:

2013-03-05  David Holsgrove <david.holsgrove@xilinx.com>

	* doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
	-mxl-reorder.


Please remember to submit a ChangeLog with patches.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077

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

end of thread, other threads:[~2013-03-05 16:02 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-11  6:39 [Patch, microblaze]: Add support for swap instructions and reorder option David Holsgrove
2013-02-26 17:50 ` Michael Eager
2013-02-27 14:42   ` David Holsgrove
2013-02-27 17:06     ` Michael Eager
2013-02-28  0:37       ` David Holsgrove
2013-03-03 17:36         ` Michael Eager
2013-03-05 14:54           ` David Holsgrove
2013-03-05 16:02             ` Michael Eager

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).