For testing parity coming out of asm flags.
From-SVN: r223026
+2015-05-11 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386-modes.def (CCP): New.
+ * config/i386/i386.c (put_condition_code): Handle it.
+ (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
+
2015-05-11 Richard Henderson <rth@redhat.com>
* target.def (md_asm_clobbers): Replace with...
Add CCA to indicate that only the Above flag is valid.
Add CCC to indicate that only the Carry flag is valid.
Add CCO to indicate that only the Overflow flag is valid.
+ Add CCP to indicate that only the Parity flag is valid.
Add CCS to indicate that only the Sign flag is valid.
Add CCZ to indicate that only the Zero flag is valid. */
CC_MODE (CCA);
CC_MODE (CCC);
CC_MODE (CCO);
+CC_MODE (CCP);
CC_MODE (CCS);
CC_MODE (CCZ);
CC_MODE (CCFP);
case CCAmode:
suffix = "a";
break;
-
case CCCmode:
suffix = "c";
break;
-
case CCOmode:
suffix = "o";
break;
-
+ case CCPmode:
+ suffix = "p";
+ break;
case CCSmode:
suffix = "s";
break;
-
default:
suffix = "e";
+ break;
}
break;
case NE:
case CCAmode:
suffix = "na";
break;
-
case CCCmode:
suffix = "nc";
break;
-
case CCOmode:
suffix = "no";
break;
-
+ case CCPmode:
+ suffix = "np";
+ break;
case CCSmode:
suffix = "ns";
break;
-
default:
suffix = "ne";
+ break;
}
break;
case GT:
case CCAmode:
case CCCmode:
case CCOmode:
+ case CCPmode:
case CCSmode:
if (set_mode != req_mode)
return false;
case CCAmode:
case CCCmode:
case CCOmode:
+ case CCPmode:
case CCSmode:
case CCZmode:
switch (m2)
case CCAmode:
case CCCmode:
case CCOmode:
+ case CCPmode:
case CCSmode:
case CCZmode:
return CCmode;