}
return;
case 'N': /* Condition, (N)egated */
- case 'Y':
switch (GET_CODE (x))
{
case EQ:
abort ();
}
return;
+ /* For floating point comparisons. Need special conditions to deal
+ with NaNs properly. */
+ case 'Y':
+ switch (GET_CODE (x))
+ {
+ case EQ:
+ fprintf (file, "!="); break;
+ case NE:
+ fprintf (file, "="); break;
+ case GT:
+ fprintf (file, "!>"); break;
+ case GE:
+ fprintf (file, "!>="); break;
+ case LT:
+ fprintf (file, "!<"); break;
+ case LE:
+ fprintf (file, "!<="); break;
+ default:
+ printf ("Can't grok '%c' operator:\n", code);
+ debug_rtx (x);
+ abort ();
+ }
+ return;
case 'S': /* Condition, operands are (S)wapped. */
switch (GET_CODE (x))
{