cris: Enable movhi and movqi to set condition codes. Anonymize.
authorHans-Peter Nilsson <hp@axis.com>
Thu, 30 Jan 2020 16:14:12 +0000 (17:14 +0100)
committerHans-Peter Nilsson <hp@axis.com>
Sat, 9 May 2020 02:07:09 +0000 (04:07 +0200)
Like with movsi_internal.  Looks like the "cc" attribute didn't
need tweaking for "movhi", but did for "movqi".  N.B.: disabled
alternatives make cause a later alternative to match.

Also, non-anonymous insns get declarations and gen_* functions.
We don't want that; even if it doesn't affect generated code
it's sloppy.  (This may or may not be preferable to the
name decorations obfuscating standard pattern names.)

Also anonymize left-over non-anonymous branches; they haven't
been needing names since the cbranch pattern was made the
generic method.

gcc:
* config/cris/cris.md ("anz", "anzvc", "acc"): New define_subst_attrs.
("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
"movhi".  Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
"movqi".  Correct contents of, and rename "cc" attribute to
"cc<cccc><ccnz><ccnzvc>".
("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".

gcc/ChangeLog
gcc/config/cris/cris.md

index 3fa24c7dd8b05f3dcc8bc4db735541927ab88fd7..22178ad52ceb17cde2666ed5782a4ca5758661cb 100644 (file)
        ("*movsi_internal<setcc><setnz><setnzvc>"): Rename from
        "*movsi_internal".  Correct contents of, and rename attribute
        "cc" to "cc<cccc><ccnz><ccnzvc>".
+       ("anz", "anzvc", "acc"): New define_subst_attrs.
+       ("<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"): Rename from
+       "movhi".  Rename "cc" attribute to "cc<cccc><ccnz><ccnzvc>".
+       ("<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"): Similar from
+       "movqi".  Correct contents of, and rename "cc" attribute to
+       "cc<cccc><ccnz><ccnzvc>".
+       ("*b<zcond:code><mode>"): Rename from "b<zcond:code><mode>".
+       ("*b<nzvccond:code><mode>"): Rename from "b<nzvccond:code><mode>".
+       ("*b<rnzcond:code><mode>"): Rename from "*b<rnzcond:code><mode>".
 
 2020-05-08  Vladimir Makarov  <vmakarov@redhat.com>
 
index bee9e9735d02d9c6cb1905a23df9266bfcd3674f..5f77bc9e0fd35a7491f6ae50b7366d88d589081e 100644 (file)
 
 (define_subst_attr "setnz" "setnz_subst" "" "_setnz")
 (define_subst_attr "ccnz" "setnz_subst" "" "_enabled")
+(define_subst_attr "anz" "setnz_subst" "" "*")
 
 (define_subst "setnz_subst"
   [(set (match_operand 0)
 
 (define_subst_attr "setnzvc" "setnzvc_subst" "" "_setnzvc")
 (define_subst_attr "ccnzvc" "setnzvc_subst" "" "_enabled")
+(define_subst_attr "anzvc" "setnzvc_subst" "" "*")
 
 (define_subst "setnzvc_subst"
   [(set (match_operand 0)
 
 (define_subst_attr "setcc" "setcc_subst" "" "_setcc")
 (define_subst_attr "cccc" "setcc_subst" "" "_enabled")
+(define_subst_attr "acc" "setcc_subst" "" "*")
 
 (define_subst "setcc_subst"
   [(set (match_operand 0)
 \f
 ;; FIXME: See movsi.
 
-(define_insn "movhi"
+(define_insn "<acc><anz><anzvc>movhi<setcc><setnz><setnzvc>"
   [(set
     (match_operand:HI 0 "nonimmediate_operand" "=r,r, r,Q>,r,Q>,r,r,r,g,g,r,r,x")
     (match_operand:HI 1 "general_operand"      "r,Q>,M,M, I,r, L,O,n,M,r,g,x,r"))
   }
 }
   [(set_attr "slottable" "yes,yes,yes,yes,yes,yes,no,yes,no,no,no,no,yes,yes")
-   (set_attr "cc" "*,*,none,none,*,none,*,clobber,*,none,none,*,none,none")])
+   (set_attr "cc<cccc><ccnz><ccnzvc>" "*,*,none,none,*,none,*,clobber,*,none,none,*,none,none")])
 
 (define_insn "movstricthi"
   [(set
   ""
   "")
 \f
-(define_insn "movqi"
+(define_insn "<acc><anz><anzvc>movqi<setcc><setnz><setnzvc>"
   [(set (match_operand:QI 0 "nonimmediate_operand" "=r,Q>,r, r,Q>,r,g,g,r,r,r,x")
        (match_operand:QI 1 "general_operand"       "r,r, Q>,M,M, I,M,r,O,g,x,r"))
    (clobber (reg:CC CRIS_CC0_REGNUM))]
    move %1,%0
    move %1,%0"
   [(set_attr "slottable" "yes,yes,yes,yes,yes,yes,no,no,yes,no,yes,yes")
-   (set_attr "cc" "*,*,*,*,*,*,*,*,clobber,*,none,none")])
+   (set_attr "cc<cccc><ccnz><ccnzvc>"
+            "*,none,*,none,none,*,none,none,clobber,*,none,none")])
 
 (define_insn "movstrictqi"
   [(set (strict_low_part
 ;; e.g. m68k, so we have to check if overflow bit is set on all "signed"
 ;; conditions.
 
-(define_insn "b<zcond:code><mode>"
+(define_insn "*b<zcond:code><mode>"
   [(set (pc)
        (if_then_else (zcond (reg:NZUSE CRIS_CC0_REGNUM)
                             (const_int 0))
   "b<CC> %l0%#"
   [(set_attr "slottable" "has_slot")])
 
-(define_insn "b<nzvccond:code><mode>"
+(define_insn "*b<nzvccond:code><mode>"
   [(set (pc)
        (if_then_else (nzvccond (reg:NZVCUSE CRIS_CC0_REGNUM)
                             (const_int 0))
   "b<CC> %l0%#"
   [(set_attr "slottable" "has_slot")])
 
-(define_insn "b<rnzcond:code><mode>"
+(define_insn "*b<rnzcond:code><mode>"
   [(set (pc)
        (if_then_else (rnzcond (reg:NZUSE CRIS_CC0_REGNUM)
                             (const_int 0))