diff options
author | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-29 22:31:27 +0000 |
---|---|---|
committer | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-11-29 22:31:27 +0000 |
commit | 4f08a7a593a098a43ce4f05ff57ae968db575245 (patch) | |
tree | 637e8bfec89cfd5c1ba0a2258d8c5d2afdfbff91 /gcc/config/s390 | |
parent | d51ca159d6978fd57fd4fed8a682a3524ae1fd0a (diff) | |
download | gcc-4f08a7a593a098a43ce4f05ff57ae968db575245.tar.gz |
* config/s390/s390.md ("movhi"): Do not emit extender pattern
when loading from a (MEM (ADDRESSOF ...)).
("movqi"): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@74037 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/s390')
-rw-r--r-- | gcc/config/s390/s390.md | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/s390/s390.md b/gcc/config/s390/s390.md index 3237f9c50ee..625d4b51c03 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]); |