* ld-insn.c (print_insn_words): For fields, print conditionals.
diff --git a/sim/igen/ChangeLog b/sim/igen/ChangeLog
index 3b95d89..5a6ad48 100644
--- a/sim/igen/ChangeLog
+++ b/sim/igen/ChangeLog
@@ -1,5 +1,7 @@
 2011-07-08  Hans-Peter Nilsson  <hp@axis.com>
 
+	* ld-insn.c (print_insn_words): For fields, print conditionals.
+
 	Correct handling of constant named fields.
 	* gen.c (insn_field_cmp): Tweak comment about neither field
 	being an insn_field_string with a cond_eq-to-value condition.
diff --git a/sim/igen/ld-insn.c b/sim/igen/ld-insn.c
index 86506ea..38c3b55 100644
--- a/sim/igen/ld-insn.c
+++ b/sim/igen/ld-insn.c
@@ -1289,6 +1289,8 @@
 	  insn_field_entry *field = word->first;
 	  while (1)
 	    {
+	      insn_field_cond *cond;
+
 	      if (options.insn_specifying_widths)
 		lf_printf (file, "%d.", field->width);
 	      else
@@ -1310,6 +1312,34 @@
 		  break;
 		case insn_field_string:
 		  lf_printf (file, "%s", field->val_string);
+
+		  if (field->conditions == NULL)
+		    break;
+
+		  if (field->conditions->test == insn_field_cond_eq)
+		    {
+		      if (field->conditions->type == insn_field_cond_value)
+			lf_printf (file, "=%ld",
+				   (long) field->conditions->value);
+		      else
+			lf_printf (file, "=%s", field->conditions->string);
+
+		      /* There can be only one equality condition.  */
+		      ASSERT (field->conditions->next == NULL);
+		      break;
+		    }
+
+		  for (cond = field->conditions;
+		       cond != NULL;
+		       cond = cond->next)
+		    {
+		      ASSERT (cond->test == insn_field_cond_ne);
+
+		      if (cond->type == insn_field_cond_value)
+			lf_printf (file, "!%ld", (long) cond->value);
+		      else
+			lf_printf (file, "!%s", cond->string);
+		    }
 		  break;
 		}
 	      if (field == word->last)