i386: Add CCPmode

For testing parity coming out of asm flags.

From-SVN: r223026
This commit is contained in:
Richard Henderson 2015-05-11 16:33:28 -07:00 committed by Richard Henderson
parent 7ca35180e9
commit afc1c5fa0d
3 changed files with 19 additions and 8 deletions

View File

@ -1,3 +1,9 @@
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...

View File

@ -55,6 +55,7 @@ ADJUST_ALIGNMENT (XF, TARGET_128BIT_LONG_DOUBLE ? 16 : 4);
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. */
@ -64,6 +65,7 @@ CC_MODE (CCNO);
CC_MODE (CCA);
CC_MODE (CCC);
CC_MODE (CCO);
CC_MODE (CCP);
CC_MODE (CCS);
CC_MODE (CCZ);
CC_MODE (CCFP);

View File

@ -14997,21 +14997,21 @@ put_condition_code (enum rtx_code code, machine_mode mode, bool reverse,
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:
@ -15020,21 +15020,21 @@ put_condition_code (enum rtx_code code, machine_mode mode, bool reverse,
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:
@ -19765,6 +19765,7 @@ ix86_match_ccmode (rtx insn, machine_mode req_mode)
case CCAmode:
case CCCmode:
case CCOmode:
case CCPmode:
case CCSmode:
if (set_mode != req_mode)
return false;
@ -19913,6 +19914,7 @@ ix86_cc_modes_compatible (machine_mode m1, machine_mode m2)
case CCAmode:
case CCCmode:
case CCOmode:
case CCPmode:
case CCSmode:
case CCZmode:
switch (m2)
@ -19927,6 +19929,7 @@ ix86_cc_modes_compatible (machine_mode m1, machine_mode m2)
case CCAmode:
case CCCmode:
case CCOmode:
case CCPmode:
case CCSmode:
case CCZmode:
return CCmode;