diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/combine.c | 12 |
2 files changed, 10 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 72e19fc..54cc03c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2012-10-10 Jakub Jelinek <jakub@redhat.com> + PR middle-end/54879 + * combine.c (count_rtxs): Use RTX_BIN_ARITH resp. RTX_COMM_ARITH + instead of '2' resp. 'c' for GET_RTX_CLASS comparisons. + PR middle-end/54862 * simplify-rtx.c (simplify_truncation): Compare UINTVAL instead of INTVAL of second argument with precision resp. op_precision. diff --git a/gcc/combine.c b/gcc/combine.c index 4e0a579..c13d004 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -12015,8 +12015,8 @@ count_rtxs (rtx x) const char *fmt; int i, j, ret = 1; - if (GET_RTX_CLASS (code) == '2' - || GET_RTX_CLASS (code) == 'c') + if (GET_RTX_CLASS (code) == RTX_BIN_ARITH + || GET_RTX_CLASS (code) == RTX_COMM_ARITH) { rtx x0 = XEXP (x, 0); rtx x1 = XEXP (x, 1); @@ -12024,15 +12024,15 @@ count_rtxs (rtx x) if (x0 == x1) return 1 + 2 * count_rtxs (x0); - if ((GET_RTX_CLASS (GET_CODE (x1)) == '2' - || GET_RTX_CLASS (GET_CODE (x1)) == 'c') + if ((GET_RTX_CLASS (GET_CODE (x1)) == RTX_BIN_ARITH + || GET_RTX_CLASS (GET_CODE (x1)) == RTX_COMM_ARITH) && (x0 == XEXP (x1, 0) || x0 == XEXP (x1, 1))) return 2 + 2 * count_rtxs (x0) + count_rtxs (x == XEXP (x1, 0) ? XEXP (x1, 1) : XEXP (x1, 0)); - if ((GET_RTX_CLASS (GET_CODE (x0)) == '2' - || GET_RTX_CLASS (GET_CODE (x0)) == 'c') + if ((GET_RTX_CLASS (GET_CODE (x0)) == RTX_BIN_ARITH + || GET_RTX_CLASS (GET_CODE (x0)) == RTX_COMM_ARITH) && (x1 == XEXP (x0, 0) || x1 == XEXP (x0, 1))) return 2 + 2 * count_rtxs (x1) + count_rtxs (x == XEXP (x0, 0) |