diff mbox series

PowerPC: Reformat move insns to make them clearing, patch #2 of 5

Message ID 20180503181205.GA14471@ibm-toto.the-meissners.org
State New
Headers show
Series PowerPC: Reformat move insns to make them clearing, patch #2 of 5 | expand

Commit Message

Michael Meissner May 3, 2018, 6:12 p.m. UTC
These patches were previously posted in March as RFC's.  These patches just
reformat the floating point move insns to make it easier to figure out which
constraints and attributes are used for particular alternatives.

I have built the compiler on a little endian power8 system with all 5 patches
applied and it bootstraps without error.  There were no regressions in make
check output. Can I check these patches in?

This is patch #2 of 5.

2018-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
	Reformat alternatives and attributes so it is easier to identify
	which constraints/attributes go with which instruction.

Comments

Segher Boessenkool May 10, 2018, 10:02 p.m. UTC | #1
On Thu, May 03, 2018 at 02:12:05PM -0400, Michael Meissner wrote:
> 2018-05-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
> 
> 	* config/rs6000/rs6000.md (mov<mode>_softfloat32, FMOVE64):
> 	Reformat alternatives and attributes so it is easier to identify
> 	which constraints/attributes go with which instruction.

Okay, thanks!


Segher
diff mbox series

Patch

Index: gcc/config/rs6000/rs6000.md
===================================================================
--- gcc/config/rs6000/rs6000.md	(revision 259882)
+++ gcc/config/rs6000/rs6000.md	(working copy)
@@ -7431,16 +7431,25 @@  (define_insn "*mov<mode>_hardfloat32"
              4,           4,          4,          4,          8,
              8,           8,          8")])
 
+;;           STW      LWZ     MR      G-const H-const F-const
+
 (define_insn "*mov<mode>_softfloat32"
-  [(set (match_operand:FMOVE64 0 "nonimmediate_operand" "=Y,r,r,r,r,r")
-	(match_operand:FMOVE64 1 "input_operand" "r,Y,r,G,H,F"))]
+  [(set (match_operand:FMOVE64 0 "nonimmediate_operand"
+           "=Y,       r,      r,      r,      r,      r")
+
+	(match_operand:FMOVE64 1 "input_operand"
+            "r,       Y,      r,      G,      H,      F"))]
+
   "! TARGET_POWERPC64 
    && (TARGET_SINGLE_FLOAT || TARGET_SOFT_FLOAT)
    && (gpc_reg_operand (operands[0], <MODE>mode)
        || gpc_reg_operand (operands[1], <MODE>mode))"
   "#"
-  [(set_attr "type" "store,load,two,*,*,*")
-   (set_attr "length" "8,8,8,8,12,16")])
+  [(set_attr "type"
+            "store,   load,   two,    *,      *,      *")
+
+   (set_attr "length"
+             "8,      8,      8,      8,      12,     16")])
 
 ; ld/std require word-aligned displacements -> 'Y' constraint.
 ; List Y->r and r->Y before r->r for reload.