summaryrefslogtreecommitdiff
path: root/gcc/config/s390
diff options
context:
space:
mode:
authoruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-29 22:31:27 +0000
committeruweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-29 22:31:27 +0000
commit4f08a7a593a098a43ce4f05ff57ae968db575245 (patch)
tree637e8bfec89cfd5c1ba0a2258d8c5d2afdfbff91 /gcc/config/s390
parentd51ca159d6978fd57fd4fed8a682a3524ae1fd0a (diff)
downloadgcc-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.md6
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]);