summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-05-23 10:47:41 +0930
committerAlan Modra <amodra@gcc.gnu.org>2014-05-23 10:47:41 +0930
commitea9364db15e72bd9741bce7eab6bfcc1f296810f (patch)
treedb68e700351648785a0de9047bd9fb27efaa626f /gcc
parentbb3d4010c62b5729d33412141a85945950cc59aa (diff)
downloadgcc-ea9364db15e72bd9741bce7eab6bfcc1f296810f.tar.gz
re PR target/61231 (bootstrap comparision failure on powerpc64le-linux-gnu)
PR target/61231 * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode. * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell): Use "Y" constraint rather than "m". From-SVN: r210835
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/rs6000/rs6000.c3
-rw-r--r--gcc/config/rs6000/rs6000.md4
3 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0dd354fb114..5676c0313df 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2014-05-23 Alan Modra <amodra@gmail.com>
+
+ PR target/61231
+ * config/rs6000/rs6000.c (mem_operand_gpr): Handle SImode.
+ * config/rs6000/rs6000.md (extendsidi2_lfiwax, extendsidi2_nocell):
+ Use "Y" constraint rather than "m".
+
2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
* config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index f58ccd0936c..d8098a73e0a 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -6124,7 +6124,8 @@ mem_operand_gpr (rtx op, enum machine_mode mode)
return false;
extra = GET_MODE_SIZE (mode) - UNITS_PER_WORD;
- gcc_assert (extra >= 0);
+ if (extra < 0)
+ extra = 0;
if (GET_CODE (addr) == LO_SUM)
/* For lo_sum addresses, we must allow any offset except one that
diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md
index 300bd3698d6..03113657873 100644
--- a/gcc/config/rs6000/rs6000.md
+++ b/gcc/config/rs6000/rs6000.md
@@ -745,7 +745,7 @@
(define_insn "*extendsidi2_lfiwax"
[(set (match_operand:DI 0 "gpc_reg_operand" "=r,r,??wm,!wl,!wu")
- (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r,r,Z,Z")))]
+ (sign_extend:DI (match_operand:SI 1 "lwa_operand" "Y,r,r,Z,Z")))]
"TARGET_POWERPC64 && TARGET_LFIWAX"
"@
lwa%U1%X1 %0,%1
@@ -758,7 +758,7 @@
(define_insn "*extendsidi2_nocell"
[(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
- (sign_extend:DI (match_operand:SI 1 "lwa_operand" "m,r")))]
+ (sign_extend:DI (match_operand:SI 1 "lwa_operand" "Y,r")))]
"TARGET_POWERPC64 && rs6000_gen_cell_microcode && !TARGET_LFIWAX"
"@
lwa%U1%X1 %0,%1