summaryrefslogtreecommitdiff
path: root/gcc/combine.c
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-16 22:30:19 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2010-11-16 22:30:19 +0000
commitd306bc629b7631aba0ef16083de747e1f6ec8e73 (patch)
tree1798120234e788be245c8b883c0ab40e1499142f /gcc/combine.c
parent0c0e49524ddba287697a28fd7269afa7fab53ed4 (diff)
downloadgcc-d306bc629b7631aba0ef16083de747e1f6ec8e73.tar.gz
PR rtl-optimization/46490
* combine.c (expand_compound_operation): Fix thinko. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166830 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/combine.c')
-rw-r--r--gcc/combine.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/combine.c b/gcc/combine.c
index ee26c905d46..d55ce3127d8 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6761,11 +6761,11 @@ expand_compound_operation (rtx x)
count. This can happen in a case like (x >> 31) & 255 on machines
that can't shift by a constant. On those machines, we would first
combine the shift with the AND to produce a variable-position
- extraction. Then the constant of 31 would be substituted in to produce
- a such a position. */
+ extraction. Then the constant of 31 would be substituted in
+ to produce such a position. */
modewidth = GET_MODE_BITSIZE (GET_MODE (x));
- if (modewidth + len >= pos)
+ if (modewidth >= pos + len)
{
enum machine_mode mode = GET_MODE (x);
tem = gen_lowpart (mode, XEXP (x, 0));