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