aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2016-05-27 08:42:01 +0000
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>2016-05-27 08:42:01 +0000
commit2aca2504814648927ab560f75e564b69835e0514 (patch)
tree2e2787bc771e961927cd09ad8452197b6a3193cb /gcc/config
parent09867e186ea3a705abbdd095d793d6613d0609b6 (diff)
downloadgcc-2aca2504814648927ab560f75e564b69835e0514.zip
gcc-2aca2504814648927ab560f75e564b69835e0514.tar.gz
gcc-2aca2504814648927ab560f75e564b69835e0514.tar.bz2
[AArch64] Delete obsolete CC_ZESWP and CC_SESWP CC modes
* config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete. * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition that returns CC_SESWPmode and CC_ZESWPmode. (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode and CC_SESWPmode. (aarch64_rtx_costs): Likewise. From-SVN: r236809
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/aarch64/aarch64-modes.def2
-rw-r--r--gcc/config/aarch64/aarch64.c14
2 files changed, 0 insertions, 16 deletions
diff --git a/gcc/config/aarch64/aarch64-modes.def b/gcc/config/aarch64/aarch64-modes.def
index 7de0b3f..de8227f 100644
--- a/gcc/config/aarch64/aarch64-modes.def
+++ b/gcc/config/aarch64/aarch64-modes.def
@@ -21,8 +21,6 @@
CC_MODE (CCFP);
CC_MODE (CCFPE);
CC_MODE (CC_SWP);
-CC_MODE (CC_ZESWP); /* zero-extend LHS (but swap to make it RHS). */
-CC_MODE (CC_SESWP); /* sign-extend LHS (but swap to make it RHS). */
CC_MODE (CC_NZ); /* Only N and Z bits of condition flags are valid. */
CC_MODE (CC_Z); /* Only Z bit of condition flags is valid. */
CC_MODE (CC_C); /* Only C bit of condition flags is valid. */
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 84dcb0b..51d2d50 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -4227,14 +4227,6 @@ aarch64_select_cc_mode (RTX_CODE code, rtx x, rtx y)
&& GET_CODE (x) == NEG)
return CC_Zmode;
- /* A compare of a mode narrower than SI mode against zero can be done
- by extending the value in the comparison. */
- if ((GET_MODE (x) == QImode || GET_MODE (x) == HImode)
- && y == const0_rtx)
- /* Only use sign-extension if we really need it. */
- return ((code == GT || code == GE || code == LE || code == LT)
- ? CC_SESWPmode : CC_ZESWPmode);
-
/* A test for unsigned overflow. */
if ((GET_MODE (x) == DImode || GET_MODE (x) == TImode)
&& code == NE
@@ -4303,8 +4295,6 @@ aarch64_get_condition_code_1 (enum machine_mode mode, enum rtx_code comp_code)
break;
case CC_SWPmode:
- case CC_ZESWPmode:
- case CC_SESWPmode:
switch (comp_code)
{
case NE: return AARCH64_NE;
@@ -6292,10 +6282,6 @@ aarch64_rtx_costs (rtx x, machine_mode mode, int outer ATTRIBUTE_UNUSED,
/* TODO: A write to the CC flags possibly costs extra, this
needs encoding in the cost tables. */
- /* CC_ZESWPmode supports zero extend for free. */
- if (mode == CC_ZESWPmode && GET_CODE (op0) == ZERO_EXTEND)
- op0 = XEXP (op0, 0);
-
mode = GET_MODE (op0);
/* ANDS. */
if (GET_CODE (op0) == AND)