OSDN Git Service

* config/alpha/alpha.c (alpha_expand_block_mode): Don't use
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Oct 2003 18:25:26 +0000 (18:25 +0000)
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 10 Oct 2003 18:25:26 +0000 (18:25 +0000)
gen_lowpart and company except for REG.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72309 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/alpha/alpha.c

index a9a8523..5908a42 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-10  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
+
+       * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
+       gen_lowpart and company except for REG.
+
 2003-10-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
index f7998cc..2da9f2b 100644 (file)
@@ -4452,7 +4452,8 @@ alpha_expand_block_move (rtx operands[])
         is held in the register.  Nor if there is not a mode that
         handles the exact size.  */
       mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 1);
-      if (mode != BLKmode
+      if (GET_CODE (tmp) == REG
+         && mode != BLKmode
          && GET_MODE_SIZE (GET_MODE (tmp)) >= bytes)
        {
          if (mode == TImode)
@@ -4572,7 +4573,7 @@ alpha_expand_block_move (rtx operands[])
       tmp = XEXP (XEXP (orig_dst, 0), 0);
 
       mode = mode_for_size (orig_bytes * BITS_PER_UNIT, MODE_INT, 1);
-      if (GET_MODE (tmp) == mode)
+      if (GET_CODE (tmp) == REG && GET_MODE (tmp) == mode)
        {
          if (nregs == 1)
            {