From 0dd62597267bbe5c10c19f871fc6ba47abbbfbe7 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Fri, 10 Oct 2003 18:25:26 +0000 Subject: [PATCH] alpha.c (alpha_expand_block_mode): Don't use gen_lowpart and company except for REG. * config/alpha/alpha.c (alpha_expand_block_mode): Don't use gen_lowpart and company except for REG. From-SVN: r72309 --- gcc/ChangeLog | 5 +++++ gcc/config/alpha/alpha.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a9a8523167f..5908a422805 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-10-10 Richard Kenner + + * config/alpha/alpha.c (alpha_expand_block_mode): Don't use + gen_lowpart and company except for REG. + 2003-10-10 John David Anglin * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index f7998cc994c..2da9f2bc79b 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -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) { -- 2.30.2