[PATCH,mmix] convert to constraints.md

Hans-Peter Nilsson hp@bitrange.com
Sat Sep 15 02:23:00 GMT 2012


On Wed, 12 Sep 2012, Hans-Peter Nilsson wrote:
> On Wed, 12 Sep 2012, Nathan Froyd wrote:
> > > - Keeping old layout of "mmix_reg_or_8bit_operand".  That looked like
> > >   a spurious change and I prefer the ior construct to the
> > >   if_then_else.
> >
> > ISTR without this change, there were lots of assembly changes like:

> I'll try with your original patch and see it I can spot
> something.

Nope, I see no differences in the generated code before/after
the patch-patch below (applied to your original patch, except
edited as if using --no-prefix, to fit with my other patches).
Case closed: I don't think gen* mishandled neither construct.

--- patch.nathanorig.adjusted	2012-09-12 12:33:34.000000000 +0200
+++ patch3	2012-09-14 14:42:31.000000000 +0200
@@ -364,7 +364,7 @@ diff --git a/gcc/config/mmix/predicates.
 index b5773b8..7fa3bf1 100644
 --- gcc/config/mmix/predicates.md
 +++ gcc/config/mmix/predicates.md
-@@ -149,7 +149,13 @@
+@@ -149,7 +149,14 @@
  ;; True if this is a register or an int 0..255.

  (define_predicate "mmix_reg_or_8bit_operand"
@@ -372,9 +372,10 @@ index b5773b8..7fa3bf1 100644
 -   (match_operand 0 "register_operand")
 -   (and (match_code "const_int")
 -	(match_test "CONST_OK_FOR_LETTER_P (INTVAL (op), 'I')"))))
-+  (if_then_else (match_code "const_int")
-+    (match_test "satisfies_constraint_I (op)")
-+    (match_operand 0 "register_operand")))
++  (ior
++   (match_operand 0 "register_operand")
++   (and (match_code "const_int")
++	(match_test "satisfies_constraint_I (op)"))))
 +
 +;; True if this is a memory address, possibly strictly.
 +

brgds, H-P



More information about the Gcc-patches mailing list