aboutsummaryrefslogtreecommitdiff
path: root/gcc/recog.c
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-07-08 13:03:38 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-07-08 13:03:38 +0000
commit0d44736e759f00ddadd0ab5188a86297fac5d284 (patch)
treed3cb9244ced6ff224a76525334a1a776a361f70c /gcc/recog.c
parent86cdf39313b1c1bd212037be84f9161eda0d4c7f (diff)
downloadgcc-0d44736e759f00ddadd0ab5188a86297fac5d284.zip
gcc-0d44736e759f00ddadd0ab5188a86297fac5d284.tar.gz
gcc-0d44736e759f00ddadd0ab5188a86297fac5d284.tar.bz2
optabs.c (expand_binop): Tighten conditions for doubleword expansions.
* optabs.c (expand_binop): Tighten conditions for doubleword expansions. (widen_bswap): Assert that mode bitsize and precision are the same. * stor-layout.c (get_best_mode): Skip modes that have lower precision than bitsize. * recog.c (simplify_while_replacing): Assert that bitsize and precision are the same. From-SVN: r176040
Diffstat (limited to 'gcc/recog.c')
-rw-r--r--gcc/recog.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/recog.c b/gcc/recog.c
index 0c26c0d..9331681 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -638,6 +638,8 @@ simplify_while_replacing (rtx *loc, rtx to, rtx object,
(GET_MODE_SIZE (is_mode) - GET_MODE_SIZE (wanted_mode) -
offset);
+ gcc_assert (GET_MODE_PRECISION (wanted_mode)
+ == GET_MODE_BITSIZE (wanted_mode));
pos %= GET_MODE_BITSIZE (wanted_mode);
newmem = adjust_address_nv (XEXP (x, 0), wanted_mode, offset);