rl78: fix %c modifier
diff mbox

Message ID 201310090105.r99159Mb026446@greed.delorie.com
State New
Headers show

Commit Message

DJ Delorie Oct. 9, 2013, 1:05 a.m. UTC
namespaces are so small... committed.

	* config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
	avoid conflict with the MI use of %c.
	* config/rl78/rl78-real.md: change %c to %C throughout.
	* config/rl78/rl78-virt.md: Likewise.

Patch
diff mbox

Index: config/rl78/rl78-real.md
===================================================================
--- config/rl78/rl78-real.md	(revision 203295)
+++ config/rl78/rl78-real.md	(working copy)
@@ -318,69 +318,69 @@ 
 			      [(match_operand:QI 1 "general_operand" "A,A,A")
 			       (match_operand:QI 2 "general_operand" "ISqi,i,v")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))]
   "rl78_real_insns_ok ()"
   "@
-   cmp\t%1, %2 \;xor1 CY,%1.7\;not1 CY\;sk%c0 \;br\t!!%3
-   cmp\t%1, %2 \;xor1 CY,%1.7\;sk%c0 \;br\t!!%3
-   cmp\t%1, %2 \;xor1 CY,%1.7\;xor1 CY,%2.7\;sk%c0 \;br\t!!%3"
+   cmp\t%1, %2 \;xor1 CY,%1.7\;not1 CY\;sk%C0 \;br\t!!%3
+   cmp\t%1, %2 \;xor1 CY,%1.7\;sk%C0 \;br\t!!%3
+   cmp\t%1, %2 \;xor1 CY,%1.7\;xor1 CY,%2.7\;sk%C0 \;br\t!!%3"
   )
 
 (define_insn "*cbranchqi4_real"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator_real"
 			      [(match_operand:QI 1 "general_operand" "Wabvaxbc,a,              v,bcdehl")
 			       (match_operand:QI 2 "general_operand" "M,       irvWabWhlWh1Whb,i,a")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))]
   "rl78_real_insns_ok ()"
   "@
-   cmp0\t%1 \;sk%c0 \;br\t!!%3
-   cmp\t%1, %2 \;sk%c0 \;br\t!!%3
-   cmp\t%1, %2 \;sk%c0 \;br\t!!%3
-   cmp\t%1, %2 \;sk%c0 \;br\t!!%3"
+   cmp0\t%1 \;sk%C0 \;br\t!!%3
+   cmp\t%1, %2 \;sk%C0 \;br\t!!%3
+   cmp\t%1, %2 \;sk%C0 \;br\t!!%3
+   cmp\t%1, %2 \;sk%C0 \;br\t!!%3"
   )
 
 (define_insn "*cbranchhi4_real_signed"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator_signed"
 			      [(match_operand:HI 1 "general_operand" "A,A,A,vR")
 			       (match_operand:HI 2 "general_operand" "IShi,i,v,1")])
               (label_ref (match_operand 3))
 	      (pc)))]
   "rl78_real_insns_ok ()"
   "@
-   cmpw\t%1, %2 \;xor1 CY,%Q1.7\;not1 CY\;sk%c0 \;br\t!!%3
-   cmpw\t%1, %2 \;xor1 CY,%Q1.7\;sk%c0 \;br\t!!%3
-   cmpw\t%1, %2 \;xor1 CY,%Q1.7\;xor1 CY,%Q2.7\;sk%c0 \;br\t!!%3
+   cmpw\t%1, %2 \;xor1 CY,%Q1.7\;not1 CY\;sk%C0 \;br\t!!%3
+   cmpw\t%1, %2 \;xor1 CY,%Q1.7\;sk%C0 \;br\t!!%3
+   cmpw\t%1, %2 \;xor1 CY,%Q1.7\;xor1 CY,%Q2.7\;sk%C0 \;br\t!!%3
    %z0\t!!%3"
   )
 
 (define_insn "cbranchhi4_real"
   [(set (pc) (if_then_else
 	      (match_operator                    0 "rl78_cmp_operator_real"
 			      [(match_operand:HI 1 "general_operand" "A,vR")
 			       (match_operand:HI 2 "general_operand" "iBDTvWabWhlWh1,1")])
               (label_ref (match_operand          3 "" ""))
 	      (pc)))]
   "rl78_real_insns_ok ()"
   "@
-  cmpw\t%1, %2 \;sk%c0 \;br\t!!%3
+  cmpw\t%1, %2 \;sk%C0 \;br\t!!%3
   %z0\t!!%3"
   )
 
 (define_insn "cbranchhi4_real_inverted"  
   [(set (pc) (if_then_else
 	      (match_operator                    0 "rl78_cmp_operator_real"
 			      [(match_operand:HI 1 "general_operand" "A")
 			       (match_operand:HI 2 "general_operand" "iBDTvWabWhlWh1")])
 	      (pc)
               (label_ref (match_operand          3 "" ""))))]
   "rl78_real_insns_ok ()"
-  "cmpw\t%1, %2 \;sk%c0 \;br\t!!%3"
+  "cmpw\t%1, %2 \;sk%C0 \;br\t!!%3"
   )
 
 (define_insn "*cbranchsi4_real_lt"
   [(set (pc) (if_then_else
 	      (lt (match_operand:SI 0 "general_operand" "U,vWabWhlWh1")
 		  (const_int 0))
@@ -416,28 +416,28 @@ 
               (label_ref (match_operand 3 "" ""))
 	      (pc)))
    (clobber (reg:HI AX_REG))
    ]
   "rl78_real_insns_ok ()"
   "@
-   movw ax,%H1 \;cmpw  ax, %H2 \;xor1 CY,a.7\;not1 CY\;      movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%c0 \;br\t!!%3
-   movw ax,%H1 \;cmpw  ax, %H2 \;xor1 CY,a.7\;               movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%c0 \;br\t!!%3
-   movw ax,%H1 \;cmpw  ax, %H2 \;xor1 CY,a.7\;xor1 CY,%E2.7\;movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%c0 \;br\t!!%3"
+   movw ax,%H1 \;cmpw  ax, %H2 \;xor1 CY,a.7\;not1 CY\;      movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%C0 \;br\t!!%3
+   movw ax,%H1 \;cmpw  ax, %H2 \;xor1 CY,a.7\;               movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%C0 \;br\t!!%3
+   movw ax,%H1 \;cmpw  ax, %H2 \;xor1 CY,a.7\;xor1 CY,%E2.7\;movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%C0 \;br\t!!%3"
   )
 
 (define_insn "*cbranchsi4_real"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator_real"
 			      [(match_operand:SI 1 "general_operand" "vUi")
 			       (match_operand:SI 2 "general_operand" "iWhlWh1v")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))
    (clobber (reg:HI AX_REG))
    ]
   "rl78_real_insns_ok ()"
-  "movw ax,%H1 \;cmpw  ax, %H2 \;movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%c0 \;br\t!!%3"
+  "movw ax,%H1 \;cmpw  ax, %H2 \;movw ax,%h1 \;sknz \;cmpw  ax, %h2 \;sk%C0 \;br\t!!%3"
   )
 
 ;; Peephole to match:
 ;;
 ;;     (set (mem (sp)) (ax))
 ;;     (set (ax) (mem (sp)))
Index: config/rl78/rl78-virt.md
===================================================================
--- config/rl78/rl78-virt.md	(revision 203295)
+++ config/rl78/rl78-virt.md	(working copy)
@@ -317,49 +317,49 @@ 
 	      (match_operator 0 "rl78_cmp_operator_signed"
 			      [(match_operand:QI 1 "general_operand" "vim")
 			       (match_operand:QI 2 "nonmemory_operand" "vi")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))]
   "rl78_virt_insns_ok ()"
-  "v.cmp\t%1, %2\\n\tv.b%c0\t%3"
+  "v.cmp\t%1, %2\\n\tv.b%C0\t%3"
   [(set_attr "valloc" "cmp")]
   )
 
 (define_insn "*cbranchqi4_virt"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator_real"
 			      [(match_operand:QI 1 "general_operand" "vim")
 			       (match_operand:QI 2 "general_operand" "vim")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))]
   "rl78_virt_insns_ok ()"
-  "v.cmp\t%1, %2\\n\tv.b%c0\t%3"
+  "v.cmp\t%1, %2\\n\tv.b%C0\t%3"
   [(set_attr "valloc" "cmp")]
   )
 
 (define_insn "*cbranchhi4_virt_signed"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator_signed"
 			      [(match_operand:HI 1 "general_operand" "vim")
 			       (match_operand:HI 2 "nonmemory_operand" "vi")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))]
   "rl78_virt_insns_ok ()"
-  "v.cmpw\t%1, %2\\n\tv.b%c0\t%3"
+  "v.cmpw\t%1, %2\\n\tv.b%C0\t%3"
   [(set_attr "valloc" "cmp")]
   )
 
 (define_insn "*cbranchhi4_virt"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator_real"
 			      [(match_operand:HI 1 "general_operand" "vim")
 			       (match_operand:HI 2 "general_operand" "vim")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))]
   "rl78_virt_insns_ok ()"
-  "v.cmpw\t%1, %2\\n\tv.b%c0\t%3"
+  "v.cmpw\t%1, %2\\n\tv.b%C0\t%3"
   [(set_attr "valloc" "cmp")]
   )
 
 (define_insn "*cbranchsi4_virt"
   [(set (pc) (if_then_else
 	      (match_operator 0 "rl78_cmp_operator"
@@ -367,13 +367,13 @@ 
 			       (match_operand:SI 2 "nonmemory_operand" "vi")])
               (label_ref (match_operand 3 "" ""))
 	      (pc)))
    (clobber (reg:HI AX_REG))
    ]
   "rl78_virt_insns_ok ()"
-  "v.cmpd\t%1, %2\\n\tv.b%c0\t%3"
+  "v.cmpd\t%1, %2\\n\tv.b%C0\t%3"
   [(set_attr "valloc" "macax")]
   )
 
 ;;---------- Peepholes ------------------------
 
 (define_peephole2
Index: config/rl78/rl78.c
===================================================================
--- config/rl78/rl78.c	(revision 203295)
+++ config/rl78/rl78.c	(working copy)
@@ -1298,13 +1298,14 @@  rl78_function_arg_boundary (enum machine
 /* Supported modifier letters:
 
    A - address of a MEM
    S - SADDR form of a real register
    v - real register corresponding to a virtual register
    m - minus - negative of CONST_INT value.
-   c - inverse of a conditional (NE vs EQ for example)
+   C - inverse of a conditional (NE vs EQ for example)
+   C - complement of an integer
    z - collapsed conditional
    s - shift count mod 8
    S - shift count mod 16
    r - reverse shift count (8-(count mod 8))
    B - bit position
 
@@ -1552,71 +1553,71 @@  rl78_print_operand_1 (FILE * file, rtx o
       break;
 
     case LTU:
       if (letter == 'z')
 	fprintf (file, "#comparison eliminated");
       else
-	fprintf (file, letter == 'c' ? "nc" : "c");
+	fprintf (file, letter == 'C' ? "nc" : "c");
       break;
     case LEU:
       if (letter == 'z')
 	fprintf (file, "br");
       else
-	fprintf (file, letter == 'c' ? "h" : "nh");
+	fprintf (file, letter == 'C' ? "h" : "nh");
       break;
     case GEU:
       if (letter == 'z')
 	fprintf (file, "br");
       else
-	fprintf (file, letter == 'c' ? "c" : "nc");
+	fprintf (file, letter == 'C' ? "c" : "nc");
       break;
     case GTU:
       if (letter == 'z')
 	fprintf (file, "#comparison eliminated");
       else
-	fprintf (file, letter == 'c' ? "nh" : "h");
+	fprintf (file, letter == 'C' ? "nh" : "h");
       break;
     case EQ:
       if (letter == 'z')
 	fprintf (file, "br");
       else
-	fprintf (file, letter == 'c' ? "nz" : "z");
+	fprintf (file, letter == 'C' ? "nz" : "z");
       break;
     case NE:
       if (letter == 'z')
 	fprintf (file, "#comparison eliminated");
       else
-	fprintf (file, letter == 'c' ? "z" : "nz");
+	fprintf (file, letter == 'C' ? "z" : "nz");
       break;
 
     /* Note: these assume appropriate adjustments were made so that
        unsigned comparisons, which is all this chip has, will
        work.  */
     case LT:
       if (letter == 'z')
 	fprintf (file, "#comparison eliminated");
       else
-	fprintf (file, letter == 'c' ? "nc" : "c");
+	fprintf (file, letter == 'C' ? "nc" : "c");
       break;
     case LE:
       if (letter == 'z')
 	fprintf (file, "br");
       else
-        fprintf (file, letter == 'c' ? "h" : "nh");
+        fprintf (file, letter == 'C' ? "h" : "nh");
       break;
     case GE:
       if (letter == 'z')
 	fprintf (file, "br");
       else
-	fprintf (file, letter == 'c' ? "c" : "nc");
+	fprintf (file, letter == 'C' ? "c" : "nc");
       break;
     case GT:
       if (letter == 'z')
 	fprintf (file, "#comparison eliminated");
       else
-	fprintf (file, letter == 'c' ? "nh" : "h");
+	fprintf (file, letter == 'C' ? "nh" : "h");
       break;
 
     default:
       fprintf (file, "(%s)", GET_RTX_NAME (GET_CODE (op)));
       break;
     }