aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/expr.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1cf51b4..639ec9b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2013-12-17 Jakub Jelinek <jakub@redhat.com>
+
+ * expr.c (convert_modes): For SUBREG_PROMOTED_VAR_P use SUBREG_REG (x)
+ instead of x as last gen_lowpart argument.
+
2013-12-16 Jakub Jelinek <jakub@redhat.com>
* predict.h (PROB_LIKELY): Fix the value.
diff --git a/gcc/expr.c b/gcc/expr.c
index cde0b85..1c56589 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -719,7 +719,7 @@ convert_modes (enum machine_mode mode, enum machine_mode oldmode, rtx x, int uns
if (GET_CODE (x) == SUBREG && SUBREG_PROMOTED_VAR_P (x)
&& GET_MODE_SIZE (GET_MODE (SUBREG_REG (x))) >= GET_MODE_SIZE (mode)
&& SUBREG_PROMOTED_UNSIGNED_P (x) == unsignedp)
- x = gen_lowpart (mode, x);
+ x = gen_lowpart (mode, SUBREG_REG (x));
if (GET_MODE (x) != VOIDmode)
oldmode = GET_MODE (x);