diff options
author | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | 2016-05-27 08:42:01 +0000 |
---|---|---|
committer | Kyrylo Tkachov <ktkachov@gcc.gnu.org> | 2016-05-27 08:42:01 +0000 |
commit | 2aca2504814648927ab560f75e564b69835e0514 (patch) | |
tree | 2e2787bc771e961927cd09ad8452197b6a3193cb /gcc/config | |
parent | 09867e186ea3a705abbdd095d793d6613d0609b6 (diff) | |
download | gcc-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.def | 2 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 14 |
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) |