aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2003-11-29 22:31:27 +0000
committerUlrich Weigand <uweigand@gcc.gnu.org>2003-11-29 22:31:27 +0000
commitd71a8c3b200b60a796c260e6a3bd82d3435d9231 (patch)
tree637e8bfec89cfd5c1ba0a2258d8c5d2afdfbff91
parent65f0edec4b67b30d058bee3a16ac8cfdbb8eabd6 (diff)
downloadgcc-d71a8c3b200b60a796c260e6a3bd82d3435d9231.zip
gcc-d71a8c3b200b60a796c260e6a3bd82d3435d9231.tar.gz
gcc-d71a8c3b200b60a796c260e6a3bd82d3435d9231.tar.bz2
s390.md ("movhi"): Do not emit extender pattern when loading from a (MEM (ADDRESSOF ...)).
* config/s390/s390.md ("movhi"): Do not emit extender pattern when loading from a (MEM (ADDRESSOF ...)). ("movqi"): Likewise. From-SVN: r74037
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/s390/s390.md6
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3174814..b68897e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.md ("movhi"): Do not emit extender pattern
+ when loading from a (MEM (ADDRESSOF ...)).
+ ("movqi"): Likewise.
+
2003-11-29 Joseph S. Myers <jsm@polyomino.org.uk>
PR c/10333
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md
index 3237f9c..625d4b5 100644
--- a/gcc/config/s390/s390.md
+++ b/gcc/config/s390/s390.md
@@ -1313,7 +1313,8 @@
always sign-extends (at least) to SImode. */
if (optimize && !no_new_pseudos
&& register_operand (operands[0], VOIDmode)
- && memory_operand (operands[1], VOIDmode))
+ && GET_CODE (operands[1]) == MEM
+ && GET_CODE (XEXP (operands[1], 0)) != ADDRESSOF)
{
rtx tmp = gen_reg_rtx (SImode);
rtx ext = gen_rtx_SIGN_EXTEND (SImode, operands[1]);
@@ -1360,7 +1361,8 @@
is just as fast as a QImode load. */
if (TARGET_ZARCH && optimize && !no_new_pseudos
&& register_operand (operands[0], VOIDmode)
- && memory_operand (operands[1], VOIDmode))
+ && GET_CODE (operands[1]) == MEM
+ && GET_CODE (XEXP (operands[1], 0)) != ADDRESSOF)
{
rtx tmp = gen_reg_rtx (word_mode);
rtx ext = gen_rtx_ZERO_EXTEND (word_mode, operands[1]);